1. Főoldal
  2. Cikkek
  3. Nagy számok közelről
  4. Egymillió összeadás, változatlan eredmény: hová tűnnek a kis tagok?

Egymillió összeadás, változatlan eredmény: hová tűnnek a kis tagok?

Induljunk 10 000 000 000 000 000-ról, és adjunk hozzá egymilliószor egyet. Egyszerű, lépésenként kerekítő binary64 számításban a tárolt érték minden alkalommal változatlan maradhat. Ha az egymillió egyest előbb külön összeadjuk, a teljes növekmény megmarad. Itt már az elvégzés módja is a számítás része.

Programkód egy monitoron közelről.
Illusztráció · Fotó: fancycrave1 / Pixabay
Ebben a cikkben

A nagy számok körül ritkábban vannak ábrázolható értékek

A cikk az elterjedt IEEE 754 binary64 formátummal számol, a legközelebbi értékre kerekítés szokásos, felező esetben párosra döntő szabályával. Ez 53 bites szignifikáns pontosságot ad. A szám nagysága növelhető a kitevővel, de a megőrzött értékes bitek száma véges. A Python hivatalos útmutatója is ebből vezeti le a lebegőpontos műveletek korlátait.

A 10 000 000 000 000 000 közelében a szomszédos ábrázolható számok távolsága 2. A kezdőérték maga pontosan tárolható, a kezdőérték plusz 1 azonban két ábrázolható szám közé esik. A megadott kerekítési szabállyal visszakerül a kezdőértékre. A kezdőérték plusz 2 már tárolható. Ez a belső számábrázolás tulajdonsága, a képernyőn mutatott tizedesjegyek számától függetlenül.

Minden apró növekmény külön elveszhet

Ha a kezdőértékhez egyenként adunk hozzá egymillió darab 1-et, minden művelet után ugyanarra a kezdőértékre kerekítünk vissza. A következő összeadás tehát újra ugyanabból a helyzetből indul. A ciklus végén 10 000 000 000 000 000 marad, miközben a pontos matematikai eredmény 10 000 000 001 000 000.

Ha előbb a kis tagok összegét képezzük, egymilliót kapunk, amelyet a nagy kezdőértékhez egyszer adunk hozzá. A 10 000 000 001 000 000 ebben a formátumban pontosan ábrázolható, így a teljes növekmény megmarad. Ez a saját példa egymillió egységnyi eltérést hoz létre pusztán az összeadások csoportosításával.

Három tagból is kijön két eltérő eredmény

Jelölje A a 10 000 000 000 000 000 értéket. A leírt formátumban (A + 1) − A = 0, mert a zárójeles összeadásban az 1 elveszik. Ezzel szemben (A − A) + 1 = 1. Valós számok pontos matematikájában a két kifejezés azonos eredményű lenne; a köztes kerekítések miatt a gépi műveletsorok eltérnek.

Közel azonos nagy mennyiségek kivonása különösen érzékeny lehet arra, hogy mennyire pontosak a bemenetek. Ha a kis különbség már a korábbi tárolásnál vagy összeadásnál eltűnt, a kivonás nem tudja visszahozni. Az eredmény kijelzése húsz tizedesjeggyel sem állítja helyre az elveszett információt.

A jobb összegzésnek is ismerni kell a korlátját

Több részösszeget követő vagy kompenzált összegzési módszerek csökkenthetik az összeadás közbeni információvesztést. Pythonban a math.fsum például az [A, 1, −A] külön átadott tagokra 1-et ad a vizsgált környezetben. A dokumentáció az ilyen összegzés pontossági előnyét és a lebegőpontos környezethez kötött korlátait is leírja.

Ha azonban már csak a kerekített A + 1 eredményt, vagyis A-t adjuk át egy későbbi algoritmusnak, az eredeti plusz egyes többé nincs jelen a bemenetben. A pontosabb összegzés az előtte elvesztett adatot nem találja ki. Ezért az adatok ábrázolását, az összegzést és a későbbi különbségképzést együtt kell megtervezni.

Mikor más számábrázolás a jó választás?

Egész darabszámhoz olyan egész típust válassz, amelynek tartománya elég nagy; szükség esetén tetszőleges pontosságú egészt. Előre meghatározott tizedes pontosságú feladathoz használható megfelelően beállított decimális vagy fixpontos számítás. Mérési és tudományos feladatoknál gyakran továbbra is a lebegőpontos ábrázolás praktikus, de a skálát és az elfogadható hibát is rögzíteni kell.

Egymilliárd környékén a binary64 szomszédos számai közötti távolság körülbelül 0,0000001192; az egész értékek ezért ott még pontosan megkülönböztethetők. A veszteség mértéke a nagyságrendtől függ. Ellenőrzéshez olyan bemenetet is válassz, amelyben nagy és kicsi, pozitív és negatív tagok keverednek, és hasonlítsd az eredményt egy pontosabban számolt referenciaértékhez.

A példák és a források

A számpéldák saját, szemléltető feladatok; a megadott feltételezésekből és képletekből újraszámolhatók. Valós vállalkozásra, országos statisztikára vagy jövőbeli eredményre nem vonatkoznak.

Forrásellenőrzés: 2026-11-09. A hivatkozások a fogalmakat és a módszert támasztják alá; a példaszámítások a cikk részei.

Négy kérdés a cikkhez

A válaszokból kiderül, melyik összefüggést érted már, és melyik részt érdemes újraolvasnod. A válaszokat és a pontszámot nem mentjük.

1. A cikk kezdőértékénél 2 a szomszédos binary64 értékek távolsága. Miért maradhat változatlan A + 1?
Megoldás és levezetés

Helyes válasz: Mert a pontos eredmény két ábrázolható érték közé esik, és visszakerekedik A-ra.

A + 1 félúton van A és A + 2 között. A megadott, felező esetben párosra döntő szabály ebben a példában A-t választja.

A kapcsolódó cikkrész újraolvasása ↑
2. Mi a pontos matematikai növekmény egymillió darab 1 összeadásakor?
Megoldás és levezetés

Helyes válasz: 1 000 000

Egymilliószor egy pontosan egymillió. A műveletsor gépi információvesztése nem változtatja meg a matematikailag helyes referenciaértéket.

A kapcsolódó cikkrész újraolvasása ↑
3. A cikk feltételeivel melyik párosítás helyes?
Megoldás és levezetés

Helyes válasz: (A + 1) − A = 0; (A − A) + 1 = 1

Az első műveletsorban a plusz 1 a köztes kerekítésnél elveszik. A másodikban A − A pontosan nulla, ehhez hozzáadva 1-et kapunk.

A kapcsolódó cikkrész újraolvasása ↑
4. Mit tud tenni egy pontosabb összegző, ha a bemenetéből a korábbi kerekítés már eltüntette az 1-et?
Megoldás és levezetés

Helyes válasz: A bemenetből hiányzó eredeti 1-et önmagában nem állítja vissza.

A jobb összegzés a kapott tagok feldolgozásakor csökkentheti a veszteséget. A korábban elvesztett eredeti értékhez nincs információja.

A kapcsolódó cikkrész újraolvasása ↑
Dajka Gábor Online Marketing és Pszichológia című könyve

Saját könyv · reklám

Értsd meg, mi történik
a számok mögött.

A kampányszámok megmutatják, mi történt. A vásárlói döntések megértéséhez a figyelem, az észlelés, a meggyőzés és a viselkedés mechanizmusait is érdemes vizsgálni. Az Online Marketing és Pszichológia ehhez ad gyakorlatias, a magyar piacon használható szemléletet.

Megnézem a könyvet Új lapon nyílik. Hivatalos webáruház · Új lapon nyílik