Jakiś czas temu zbudowałem program testowy do sukcesywnego zaokrąglania, ponieważ jest to w zasadzie najgorszy test warunków skrajnych dla algorytmu zaokrąglania.
Dla każdej liczby od 0 do 9 999 zaokrągla najpierw do najbliższej 10, następnie do najbliższej 100, a następnie do najbliższej 1000. (Można również pomyśleć o tym, że 10 000 punktów w [0,1) jest zaokrąglanych do 3 miejsc, a następnie do 2, a następnie do 1.) Ten zestaw liczb ma średnią wartość 4999,5.
Jeśli wszystkie trzy zaokrąglenia są wykonywane przy użyciu metody „zaokrąglanie do połowy w górę”, wyniki są następujące (pierwsza kolumna to wynik zaokrąglania, druga kolumna to liczba liczb zaokrąglona do tego wyniku - tzn. Jest to histogram).
0 445
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 555
Wynik różni się od pojedynczej „zaokrąglonej połowy w górę” do najbliższego tysiąca 550 razy na 10 000, a średnia zaokrąglona wartość wynosi 5055 (więcej niż pierwotna średnia o 55,5).
Jeśli wszystkie trzy zaokrąglenia są wykonywane przez „zaokrąglenie do połowy w dół”, wówczas wyniki są następujące:
0 556
1000 1000
2000 1000
3000 1000
4000 1000
5000 1000
6000 1000
7000 1000
8000 1000
9000 1000
10000 444
Wynik różni się od pojedynczej „zaokrąglonej połowy w dół” do najbliższego tysiąca 550 razy na 10 000, a średnia zaokrąglona wartość wynosi 4944 (zbyt niska o 55,5).
Jeśli wszystkie trzy zaokrąglenia zostaną wykonane przy użyciu „nieparzystej połowy rundy”, wynik jest następujący:
0 445
1000 1111
2000 889
3000 1111
4000 889
5000 1111
6000 889
7000 1111
8000 889
9000 1111
10000 444
Wynik różni się od pojedynczego „nieparzystego półokrągłego” do najbliższego tysiąca 550 razy na 10 000, a średnia zaokrąglona wartość to 4999,5 (poprawnie).
Wreszcie, jeśli wszystkie trzy zaokrąglenia zostaną wykonane przy użyciu „zaokrąglenia do połowy”, wyniki są następujące:
0 546
1000 909
2000 1091
3000 909
4000 1091
5000 909
6000 1091
7000 909
8000 1091
9000 909
10000 1091
Wynik różni się od pojedynczego „zaokrąglonego pół parzystego” do najbliższego tysiąca 450 razy na 10 000, a średnia zaokrąglona wartość to 4999,5 (poprawnie).
Wydaje mi się, że oczywiste jest, że zaokrąglanie do połowy i zaokrąglanie do dołu odchyla zaokrąglone wartości, tak że średnia zaokrąglonych wartości nie ma już takich samych oczekiwań jak średnia z wartości pierwotnych oraz że „nieparzysta zaokrąglona połowa” i „nieparzysta zaokrąglona połowa” „usuń błąd, traktując 5 w jedną stronę w połowie czasu, a w drugą stronę w drugiej połowie. Kolejne zaokrąglanie zwielokrotnia odchylenie.
Okrągły parzysty parzysty i okrągły nieparzysty wprowadzają swój własny rodzaj odchylenia w rozkładzie: odchylenie odpowiednio do liczb parzystych i nieparzystych. W obu przypadkach, to uprzedzenie jest zwielokrotniane przez kolejne zaokrąglanie, ale jest gorsze dla nieparzystej połowy rundy. Myślę, że wyjaśnienie w tym przypadku jest proste: 5 jest liczbą nieparzystą, więc nieparzysta zaokrąglona połowa ma więcej wyników kończących się na 5 niż parzysta zaokrąglona - a zatem więcej wyników, które będą musiały być obsługiwane specjalnie przy następnym zaokrąglaniu.
Tak czy inaczej, spośród czterech opcji tylko dwie są obiektywne, a spośród dwóch niezależnych opcji, okrągła połowa daje nawet najlepiej zachowujący się rozkład, gdy podlega wielokrotnemu zaokrąglaniu.