Schreiben Sie eine Funktion, die eine Liste positiver Ganzzahlen aufnimmt und eine Liste von Ganzzahlen zurückgibt, die in etwa dem Prozentsatz der Summe für die entsprechende Ganzzahl an derselben Position entspricht.
Alle Ganzzahlen in der Rückgabeliste müssen genau 100 ergeben. Sie können davon ausgehen, dass die Summe der übergebenen Ganzzahlen größer als 0 ist. Wie Sie Dezimalzahlen runden oder abschneiden möchten, bleibt Ihnen überlassen, solange eine einzelne resultierende Ganzzahl als Prozentsatz zurückgegeben wird ist um nicht mehr als 1 in beide Richtungen ausgeschaltet.
p([1,0,2]) -> [33,0,67] or [34,0,66]
p([1000,1000]) -> [50,50]
p([1,1,2,4]) -> [12,12,25,51] or [13,12,25,50] or [12,13,25,50] or [12,12,26,50]
p([0,0,0,5,0]) -> [0,0,0,100,0]
Das ist Code-Golf , also gewinnt der kürzeste Code in Bytes!
p([2,2,2,2,2,3])
. Es gibt viele mögliche rechtliche Antworten, aber nicht alle 2
können auf den gleichen Wert abgebildet werden. Dadurch entfallen viele zu einfache Algorithmen, die für alle vorherigen Testfälle verwendet werden, da die Rundung nicht allzu schlecht ist.
p([1000,1000]) -> [49,51]
?