Numere rotunjite

Numerele rotunjitoare. Într-adevăr corectă.

Ieri am auzit de la cursurile profesorilor Bukh. următoarea regulă de rotunjire:
1. 15.746 -> 17.7
2. 15.764 -> 17.8
3. 17.752 -> 17.8
4. 17.252 -> 17.2
5. 17,052 -> 17,0

Declarația a fost emisă - dacă ultima cifră semnificativă este de 5, atunci ultima cifră este mărită dacă este ciudată și scade, dacă este egală.

Prima dată când am auzit despre asta? Chiar și numărul, ciudat. Am renunțat vreodată la o prelegere despre matematica computațională? Am studiat o mulțime de runde diferite, dar să facem asta.
Și la școală nu exista așa!

Există astfel de priavlo.

în sfârșit m-ai căzut în ochii mei
;))))))

Aceasta este așa-numita rotunjire "contabilă". Trebuie să fie un loc.

4. 17.252 -> 17.2
Acest lucru nu este adevărat, dar este întotdeauna posibil să se introducă în cadrul legii
Aceste reguli se aplică atunci când se află exact în mijloc, de exemplu
3. 17.750 -> 17.8
4. 17.250 -> 17.2


> Aceste reguli se aplică atunci când se află exact în mijloc, de exemplu
>

Dar pe parcursul turnului, subt. mat și despre științele matematice ale acestei declarații, nu am întâlnit-o. Am terminat specialul. software-ul Calc. și pentru un număr mic de ore de matematică nu am putut să ne plângem. Am fost ferm convins că, dacă ultima cifră semnificativă este de 5, atunci va fi rotunjită. Chiar dacă exact la mijloc (17,25 milioane).
Nu am dreptate?


> Aceasta este așa-numita rotunjire "contabilă". Are loc
> să fie.

Este o glumă sau serioasă? Dacă este gravă, atunci ar trebui să fie descrisă într-un document normativ. În ce?

>> Este o glumă sau serioasă?
Foarte serios. La ce ne-am obișnuit este rotunjirea matematică obișnuită. Și în calculele contabile, ceea ce scrieți despre este aplicat. Și în programele corespunzătoare. Și în ceea ce privește documentele normative, nu știu, nu sunt o "bibliotecă".

> Într-adevăr asemenea priavlo există.
și încercați să rotunjiți în Delphi acolo și obțineți

RoundTo utilizează "rotunjirea bancherului" pentru a determina cum să rotunjească valorile.

Următoarele exemple ilustrează utilizarea RoundTo:
Valoarea expresiei
RoundTo (1234567, 3) 1234000
RoundTo (1.234, -2) 1.23
RoundTo (1.235, -2) 1.24
RoundTo (1.245, -2) 1.24


> Aceasta este așa-numita rotunjire "contabilă".

Există, stopudovo.
Nu știu fundalul exact, dar, poate, cu o muncă frecventă de astfel de rotunjire la număr mare, rotunjirea în sus și în jos se compensează reciproc (ele vor fi aproximativ egale) și media aurie se dovedește :)


> Aceasta este o chestiune internă

Afaceri interne ale cui? Organizație sau industrie?

Dacă folosesc o singură rotunjire în organizația mea, iar taxa este diferită, atunci pe o serie de numere va exista un dezacord. Puțin dezacord, dar în mod oficial în ceea ce privește impozitul, mă voi dovedi a fi greșit? Sancțiuni, amenzi.

Această rotunjire este acceptată în contabilitate. Respectiv. taxa aplică și această rotunjire, deci totul ar trebui să se convertească, cel puțin pe hârtie :))

Oh-ho-ho. Încă o dată.
Să presupunem că distribuirea numerelor este aproape de un număr aleator uniform. Apoi, cu rotunjire "aritmetică", avem:

Așa cum este ușor de văzut, dacă există o gamă largă de numere pe care apoi trebuie să le însumezi (total pentru elementele documentelor, balanțele contului etc.), apoi cu rotunjire "aritmetică", se va acumula o eroare sistematică cu așteptări matematice
0,5 * 10 ^ n * 0,1 * N
în cazul în care:
n este greutatea zecimală a bitului la care se efectuează rotunjirea (până la două caractere n = -2, la întregi n = 0 etc.)
0,1 - probabilitatea fiecărei cifre
N - numărul de numere integrabile în matrice

Pentru a egaliza probabilitățile de eroare, este necesar să se compenseze singura eroare necompensată (vezi tabelul de mai sus) de +5. Pentru aceasta, este împărțită în mod artificial în două echilibrate +5 -5, în funcție de paritatea cifrei precedente.

Apropo, în cuvântul de stare FPU există o casetă de selectare care controlează modul de rotunjire (aritmetică / contabilitate).

În calculele aritmetice, chestiunea nu se sfârșește cu puținul pe care îl rotunjim. Cu o distribuție aleatorie uniformă, numărul 0 este urmat de o medie de 0,5. Prin urmare:

Dacă rezumăm totul, vom obține doar 0.

De fapt, o astfel de okuglenie este mai corectă, dacă mai târziu este necesar să rezumăm rezultatele circumlocuției, dacă vom acționa într-un mod convențional (rotunjim dacă ultima cifră este de 5) va da o eroare mare în suma numerelor. Pentru a minimiza eroarea sumei și a aplica o astfel de rotunjire. Se utilizează nu numai în calcule contabile, ci și în cele geodezice la prelucrarea rezultatelor anchetelor instrumentale.

Cum poate fi aceasta? Segmentul de la 0 la 5-d este exact egal cu segmentul de la 5 la 10-d, unde d este determinat de lungimea mașinii. Mi se pare că algoritmul dificil luat în considerare este prejudecata contabililor - troechnikov.

> uw
Probabilitatea ca un număr par sau par să fie aproximativ același înainte de cele cinci. Dacă vă apropiați mereu tot timpul, eroarea viitoare va crește, iar cu această abordare, dezavantajul va fi îndoit, apoi scăzut, ceea ce ar trebui să îl minimalizeze în cele din urmă. Și dacă acest lucru nu este făcut, atunci ar trebui să fie fie o pierdere financiară, fie o incapacitate de a funcționa în mod normal sau chiar să se prăbușească clădirea aflată în construcție. Un agloritm viclean considerat nu este prejudiciul triochnikov-ului contabil și metodologia propusă pentru calculele statistice de Gauss (dacă aveți acest nume despre ceva care spune)

> uw
raționați ca un matematician. iar pentru contabili toate numerele au un număr finit de semne. dacă 1 cifră este aruncată, atunci DS ți-a dat un semn. dacă două cifre sunt aruncate, atunci eroarea este mai apropiată de ale dvs., dar nu este încă 0,5, dar 0,45 = (suma este de la 0 la 9) / 10. astfel încât atunci când însumarea erorii medii va fi nonzero. Cu cât mai multe semne au fost în numerele originale, cu atât mai puțin această eroare, dar niciodată zero. regula contabilă face să fie zero pentru orice număr de cifre aruncate.

Nu înțeleg ce se elimină. Să presupunem că am cântărit cârnați, numărat, primit 32.1234567. freca. Închidem. În loc de adevărata valoare cu o perioadă, obținem 32,12 ruble. Și ce?

- nu funcționează în nici un fel.
prețul cârnaților este cu 2 zecimale.
scale - 4 zecimale.
Total - 6, rotunjit la 2.
face o estimare a erorii în această situație.

Ne pare rău, cântare - 3 caractere. Total - 5.

Algoritmul de rotunjire a școlii nu se învârte tot timpul. Figurile 1, 2, 3, 4 se rotunjesc în jos, iar figurile 5, 6, 7, 8, 9 - Și aceia și alții chiar cinci. Dacă Gauss are alte considerente, arată-mi-le, nu am găsit pe Internet.

> uw
exemplu:
1,245 + 1,115 = 2,36

Aproximativ două caractere în partea mare, deoarece ultima cifră din 5 este:
1.25 + 1.12 = 2.3 7 (avem o eroare în sumare)

Și acum în jurul valorii de Gauss:
1.24 + 1.12 = 2.36 (nu există nici o eroare)

1,244 + 1,245 = 2,489 = 2,49

În modul școlar:
1,24 + 1,25 = 2,49


Figurile 1, 2, 3, 4 se rotunjesc în jos, iar figurile 5, 6, 7, 8, 9 -

Cifra 0 nu este rotunjită deloc.

Rezolvați exemplul
1,25 + 1,35 + 1,45 + 1,55 =.

a) cu precizie
b) rotind fiecare summand la # # aritmetic
b) rotunjind fiecare summit la #. # într-un mod contabil

Comparați răspunsurile și trageți o concluzie.

Dar, de asemenea, am pomodeliroval și am văzut că școala nu este în cel mai rău caz:

procedura de testare;
var
a, b: dublu;
s1, s2: dublu;
i: Integer;
începe
s1: = 0; s2: = 0;
Randomizează;
a: = RoundTo (1,235, -2);
a: = RoundTo (1,245,2);
a: = RoundTo (1,255, -2);
a: = RoundTo (1,265, -2);
pentru i: = 1 până la 1000 începe
a: = Random (10000) / 1000;
b: = Random (10000) / 1000;
s1: = s1 + rotundă ((a + b) * 1000) / 1000 -
(Rotundă (a * 100) / 100 + rotundă (b * 100) / 100);
s2: = s2 + Runda ((a + b) * 1000) / 1000 - (RoundTo (a, -2) + RoundTo (b, -2));
se încheie;
se încheie;

> uw
se pare ca un alt avion;) dar cu matematica, cred ca este mai usor sa intelegi.

să luăm în considerare, pentru simplitate, rotunjirea aritmetică a unui număr zecimal cu n zecimale în ansamblu. avem o distribuție distributivă foarte uniformă, toate numerele de la 0 la 0.99..99:
0.00. 00
0.00. 01
0.00. 02
0.00. 03
.
0.49. 99 - rotunjit la 0
0,50. 00
0,50. 01
.
0.99. 99 - rotunjit la 1

Este ușor de observat că eroarea medie de rotunjire este de 5 * 10 ^ (- n)


> Dar eu, de asemenea, am pomodeliroval și am văzut asta într-un mod școlar deloc
> nu mai rău:

Prostii pe care i-ai modelat.

var
Tabel: matrice [cuvânt] de dublu;
i: întreg;
S, S1, S2: prelungit;
începe
randomiza;
S: = 0;
pentru i: = scăzut (tabel) până la mare (tabel)
începe
Tabelul [i]: = Random * 10;
S: = S + Tabelul [i]; // aceasta va fi suma exactă
se încheie;

Set8087CW (1372 dolari); // permite "rotunjirea" contabilității
S1: = 0;
pentru i: = scăzut (tabel) până la mare (tabel)
S1: = S1 + Runda (tabelul [i]);

Set8087CW ($ 1B72); // permite "rotunjirea" școlii
S2: = 0;
pentru i: = scăzut (tabel) până la mare (tabel)
S2: = S2 + rotundă (tabelul [i]);

writeln (S: 20: 0, S1: 20: 0, S2: 20: 0);
dacă S2 <= S1 then writeln("DS должен мне $1000. ");

Rulați, bucurați-vă de eroare.
Puteți închide corpul programului într-o buclă infinită, scrieți răspunsul aici nu mai devreme decât câștigați 1000 $.

> uw
> De fapt, v-am înțeles ideea după ce am vorbit despre cârnați.
Duc, dacă ai fi spus așa, nu m-aș fi întâlnit cu el. ;)

Reprezentăm numărul X în formular
X = A + a * 10 ^ (n + 1) + b * 10 ^ n + R, unde:
A> = 10 ^ (n + 1)
a, b in
R <10^n
n =. -2, -1, 0, 1, 2. greutatea descărcării aruncate

Apoi, numărul rotunjit X "va fi obținut sub forma
X "= A + a" * 10 ^ (n + 1),
iar regulile de rotunjire descriu primirea unui ".
Pentru "rotunjirea" școlii
a "= a pentru b <5
a "= a + 1 pentru b> = 5

eroare
d = X - X "= (A + a * 10 ^ (n + 1) + b * 10 ^ n + R) ^ (n + 1) + b * 10 ^ n + R
d = b * 10 ^ n + R pentru b <5
d = -1 * 10 ^ (n + 1) + b * 10 ^ n + R = -1 * (10b)

Are cineva încă întrebări?

Mai ales pentru uw
Problema de zeroare, cred, este rezolvată? Gama de erori a nouă rotunjite, așa cum este ușor de văzut, depășește intervalul rotunjit de zero și unul. Și intervalul celor cinci este singurul care nu are o gamă simetrică de alt semn.
Este greu să vorbim cu mine din punctul de vedere al "am fost profund convins", dar este extrem de ușor, așa cum ați observat în mod corect, să vorbiți cu dovadă.

amenințare
Numărul de mesaj, în cazul în care cuvântul "măgar" este folosit, sper, nu va fi greu de indicat?

Șters de moderator
Notă: corespondență personală

Explicați-mi un singur lucru: de ce

dacă d = b * 10 ^ n + R pentru b <5, а R <10^n?

> Explicați-mi un singur lucru: de ce
dar acesta este răspunsul pe care trebuie să-l primiți :)
dacă să faci adevărul, se va întoarce
b
-----------------------------
0 [0; 10 ^ n)
1 [10 ^ n; 2 * 10 ^ n)
2 [2 * 10 ^ n; 3 * 10 ^ n)
3 [3 * 10 ^ n; 4 * 10 ^ n)
4 [4 * 10 ^ n; 5 * 10 ^ n)
5 [-5 * 10 ^ n; -4 * 10 ^ n)
6 [-4 * 10 ^ n; -3 * 10 ^ n)
7 [-3 * 10 ^ n; -2 * 10 ^ n)
8 [-2 ^ 10 ^ n; -10 ^ n)
9 [-10 ^ n; 0)
în medie 0. și vor exista în continuare întrebări. ))

Mi-a fost teamă atât de precis (:

Humanum erare est. Dar nu contează.
fum Sf. Ești complet spălat de creierul meu.

rotund (2.5) = 2
rotund (2,500000000000000001) = 3

Regula "contabilă" se aplică nu doar dacă b = 5 (în notația introdusă anterior), ci și dacă R = 0. Și pentru cazul R = 0, erorile variază degenerate în cifre, am citat deja acest tabel:
b d
---------------------
0 +0
1 + 1 * 10 ^ n
2 + 2 * 10 ^ n
3 + 3 * 10 ^ n
4 + 4 * 10 ^ n
5 -5 * 10 ^ n
6 -4 * 10 ^ n
7 -3 * 10 ^ n
8 -2 * 10 ^ n
9 -1 * 10 ^ n

Totul este OK. Acum pot merge la Bulghachters. dar în mic :)

Articole similare