Há algum tempo atrás eu construí um programa de teste para arredondamentos sucessivos, porque é basicamente um teste de estresse do pior caso para um algoritmo de arredondamento.
Para cada número de 0 a 9.999, primeiro arredonda para o 10 mais próximo, depois para o 100 mais próximo, depois para o 1000 mais próximo. (Você também pode pensar nisso como 10.000 pontos em [0,1) sendo arredondados para 3 coloca, em seguida, para 2, em seguida, para 1.) Este conjunto de números tem um valor médio de 4999,5.
Se todos os três arredondamentos forem feitos usando o método "round half up", os resultados serão os seguintes (a primeira coluna é o resultado do arredondamento, a segunda coluna é como muitos números arredondados para esse resultado - ou seja, é um histograma).
0 445
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 555
O resultado difere de um único "round half up" para o milhar de 550 vezes de 10.000 e o valor médio arredondado é 5055 (maior que a média original de 55.5).
Se todos os três arredondamentos forem feitos até a metade do intervalo, os resultados serão:
0 556
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 444
O resultado difere de um único "round half down" para o próximo mil 550 de cada 10.000 e o valor médio arredondado é de 4944 (muito baixo de 55.5).
Se todos os três arredondamentos forem feitos usando "round half odd", o resultado é:
0 445
1000 1111
2000 889
3000 1111
4000 889
5000 1111
6000 889
7000 1111
8000 889
9000 1111
10000 444
O resultado difere de um único "round half odd" para o milhar de 550 vezes mais próximo de 10.000 e o valor médio arredondado é de 4999.5 (correto).
Finalmente, se todos os três arredondamentos forem feitos usando "round half even", os resultados serão:
0 546
1000 909
2000 1091
3000 909
4000 1091
5000 909
6000 1091
7000 909
8000 1091
9000 909
10000 1091
O resultado difere de um único "round half even" para o milhar mais próximo de 450 vezes de 10.000 e o valor médio arredondado é de 4999.5 (correto).
Eu acho óbvio que a metade para cima e a metade para baixo distorcem os valores arredondados, de modo que a média dos valores arredondados não tenha mais a mesma expectativa que a média dos valores originais, e que "metade da metade até" e " round half odd "remova o viés tratando 5 uma metade do tempo e a outra metade. Arredondamento sucessivo multiplica o viés.
A metade redonda e a metade da odd apresentam seu próprio tipo de viés na distribuição: um viés para dígitos pares e ímpares, respectivamente. Em ambos os casos, mais uma vez, esse viés é multiplicado por arredondamentos sucessivos, mas é pior para metade da rodada. Eu acho que a explicação neste caso é simples: 5 é um número ímpar, então meia rodada ímpar tem mais resultados terminando em 5 do que a metade da rodada - e portanto, mais resultados que terão que ser tratados especialmente pelo próximo arredondamento.
De qualquer forma, das quatro escolhas, apenas duas são imparciais, e das duas escolhas não tendenciosas, a metade redonda até dá a distribuição mais bem comportada quando sujeita a arredondamentos repetidos.