Scrivi una funzione che accetta un elenco di numeri interi positivi e restituisce un elenco di numeri interi che si avvicinano alla percentuale del totale per il numero intero corrispondente nella stessa posizione.
Tutti i numeri interi nell'elenco di restituzione devono aggiungere esattamente fino a 100. Puoi supporre che la somma dei numeri interi passati sia maggiore di 0. Il modo in cui vuoi arrotondare o troncare i decimali dipende da te fintanto che ogni singolo numero intero risultante viene restituito in percentuale è disattivato di non più di 1 in entrambe le direzioni.
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]
Questo è code-golf , quindi vince il codice più breve in byte!
p([2,2,2,2,2,3])
. Ha molte possibili risposte legali, ma non tutte 2
possono essere associate allo stesso valore. Questo elimina molti algoritmi troppo semplici che funzionano su tutti i precedenti casi di test perché l'arrotondamento non è troppo male.
p([1000,1000]) -> [49,51]
?