Qualche tempo fa ho costruito un programma di test per l'arrotondamento successivo, perché è fondamentalmente uno stress test nel caso peggiore per un algoritmo di arrotondamento.
Per ogni numero compreso tra 0 e 9.999, per prima cosa si arrotondano ai 10 più vicini, quindi ai 100 più vicini, quindi ai 1000 più vicini. a 2, quindi a 1.) Questo set di numeri ha un valore medio di 4999,5.
Se tutti e tre gli arrotondamenti vengono eseguiti utilizzando il metodo "arrotondare per metà", i risultati sono i seguenti (la prima colonna è il risultato dell'arrotondamento, la seconda colonna è il numero di numeri arrotondati a quel risultato, ovvero un istogramma).
0 445
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 555
Il risultato differisce da una singola "metà arrotondata per eccesso" alle migliaia 550 volte più vicine su 10.000 e il valore medio arrotondato è 5055 (superiore alla media originale di 55,5).
Se tutti e tre gli arrotondamenti vengono eseguiti per "metà arrotondata verso il basso", i risultati sono:
0 556
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 444
Il risultato differisce da una singola "metà arrotondata verso il basso" alle migliaia 550 volte più vicine su 10.000 e il valore medio arrotondato è 4944 (troppo basso di 55,5).
Se tutti e tre gli arrotondamenti vengono eseguiti utilizzando "arrotondato a metà dispari", il risultato è:
0 445
1000 1111
2000 889
3000 1111
4000 889
5000 1111
6000 889
7000 1111
8000 889
9000 1111
10000 444
Il risultato differisce da una singola "metà dispari arrotondata" alle migliaia 550 volte più vicine su 10.000 e il valore medio arrotondato è 4999,5 (corretto).
Infine, se tutti e tre gli arrotondamenti vengono eseguiti utilizzando "metà arrotondata", i risultati sono:
0 546
1000 909
2000 1091
3000 909
4000 1091
5000 909
6000 1091
7000 909
8000 1091
9000 909
10000 1091
Il risultato differisce da una singola "metà arrotondata" alla migliaia più vicina 450 volte su 10.000 e il valore medio arrotondato è 4999,5 (corretto).
Penso che sia ovvio che arrotondare per metà e arrotondare per metà distorca i valori arrotondati, in modo che la media dei valori arrotondati non abbia più la stessa aspettativa della media dei valori originali e che "metà arrotondata pari" e "metà arrotondata dispari "rimuovi la distorsione trattando 5 in un modo per metà del tempo e nell'altro modo nell'altra metà. L'arrotondamento successivo moltiplica il pregiudizio.
La metà rotonda e la metà rotonda dispari introducono il proprio tipo di distorsione nella distribuzione: una propensione verso le cifre pari e dispari, rispettivamente. In entrambi i casi, ancora una volta, questo pregiudizio viene moltiplicato per arrotondamenti successivi, ma è peggio per il round dispari. Penso che la spiegazione in questo caso sia semplice: 5 è un numero dispari, quindi la metà rotonda dispari ha più risultati che terminano con 5 della metà rotonda pari - e quindi, più risultati che dovranno essere gestiti appositamente dal prossimo arrotondamento.
Quindi, delle quattro scelte, solo due sono imparziali, e delle due scelte imparziali, la metà rotonda fornisce anche la distribuzione meglio comportata quando soggetta a ripetuti arrotondamenti.