Ülesanded täielikult lahendatud
-
1000 summa ümardamine lähima täisühikuni 98 351,63 tegeliku kogusummaga 7 sammu
Pood ümardab 1 000 rahasummat lähima täisühikuni ja liidab need kokku. Tegelik summa on 98 351,63. Arvuta välja, milline on ümardatud summa iga reegli puhul, ja otsusta, millist reeglit peaks pood kasutama.
-
Enne veeru analüüsimist tuleb reegel selgeks teha. Võtame arvu 2,5. Koolireegel saadab selle üles 3-ks. Paarisarvuni ümardamine annab tulemuseks 2, sest see on lähim paarisarv.
-
Kontrolli, kas paarisarvuni ümardamine pigem vaheldub, mitte ei vii alati alla. Arv 3,5 muutub mõlema reegli puhul 4-ks, sest seekord asub paarisarvuline naaber üleval.
-
Nüüd aga veeru juurde. Kõigist 1 000 summast vaid 11 asuvad täpselt poole peal. Mõlemad reeglid on seega 989 väärtuse osas ühel meelel ja saavad erineda ülimalt 11 võrra. See teeb üks ühik iga keskkoha kohta.
-
Liidame ümardatud väärtused kokku. Koolireegel annab 98 360, mis on tegelikkusest 8,37 võrra suurem. Paarisarvuni ümardades saame 98 354 ehk 2,37 võrra suurema tulemuse. Nende vaheline 6 ühikut tuli just neist 11 keskkohale sattunud arvust.
-
Suurem osa sellest triivist ei tulene aga keskel asuvatest arvudest. See on hoopis tavaline ümardamine, mis võib 1 000 tavalise väärtuse puhul minna üsna võrdselt kummaski suunas. Et näha selgelt reegleid, mitte taustamüra, muuda veerg selliseks, kus iga arv asub täpselt keskel. Koolireegel on siis 500 võrra liiga kõrgel ja paarisarvuni ümardamine on mööda vaid 6 ühikut.
-
Võrdluseks proovi algsel veerul allapoole ümardamist. Tulemuseks on 97 866, mis on 486 võrra väiksem. See reegel kärbib midagi pea igalt väärtuselt, mitte ainult täpselt poole peal asuvatelt. Seega ei vaja selle reegli triiv kuhjumiseks keskel asuvaid arve.
-
Millist reeglit kasutada, sõltub seega sellest, mida me kaitsta püüame. Üksiku kviitungi puhul sobib mis tahes keskkohareegel, sest erinevus ei ületa iial poole ühikut. Suures pearaamatus jätab aga ainult ilma eelistatud suunata reegel lõppsumma sinna, kust see algas.
Vastus
Koolireegli järgi 98 360, paarisarvuni ümardades 98 354 ning allapoole ümardades 97 866, võrreldes tegeliku summaga 98 351,63. Pood peaks valima paarisarvuni ümardamise. Mitte seetõttu, et see oleks üksikute summade puhul täpsem (mõnikord on see isegi halvem), vaid seetõttu, et sellel veal puudub suund ja see ei kuhju. Koolireegel eksib aga iga ettejuhtuva keskkohaga alati poole ühiku võrra, ja seda eranditult ülespoole.
-
-
1,005 kahe komakohani ja keskkoht, mis ei ole keskkoht 7 sammu
Ümarda 1,005 kahe komakohani. Arvuta välja, mida masin päriselt hoiab, kui sa selle sisse trükid, ja otsusta seejärel, kas tabelarvutus, mis vastab 1,00, on eksinud.
-
Kümnendmurruna on see keskkoht: 1,005 seisab 1,00-st sama kaugel kui 1,01-st, seega saadab koolireegel ta ülespoole ja paneel trükib 1,01.
-
Masin ei hoia kümnendmurdu. Ujukomaarv on kahe astmete summa, ja 0,005 on üks kahesajandik, mille nimetajas on 5², mida ükski kahe aste anda ei suuda. Kahendesitus ei lõpe kunagi.
-
Salvestatakse lähim ujukomaarv, ja see asub 1,005-st allpool umbes 1,07 × 10⁻¹⁶ võrra. Täpselt võrreldes ei ole see üldse keskkoht, ja koolireegel saadaks ta alla 1,00 peale.
-
Vahe muutub nähtavaks hetkel, mil väärtust võrdlemiseks skaleeritakse. 1,005 × 100 on 100,49999999999999, mille murdosa jääb poolest puudu 1,42 × 10⁻¹⁴ võrra.
-
Just seepärast siinne ümardamine napsatab. Kõike, mis on poolest 8 masinasammu kaugusel, käsitletakse poolena, ja selles suurusjärgus on see aken 1,79 × 10⁻¹³, üle kümne korra laiem kui vahe. Paneel vastab küsimusele, mille sina esitasid kümnendmurru kohta, mitte sellele, mille esitas kahendkuju.
-
Tolerants ei ole tasuta, ja veerg näitab, mis ta maksab. Tuhat väärtust, mis lõpevad .005-ga, igaüks pool sajandikku ülespoole lükatud, viivad kogusumma tõest 5,00 võrra kõrgemale. Paarisarvuni ümardamine jagab samad keskkohad ära ja tuleb sisse 0,07-ga.
-
Kaks ülejäänud eelseadistust on teist laadi. 2,5-l ja 12,5-l on täpne kahendkuju, seega on nad keskkohad ka masina sees, mitte ainult paberil, ja mingit tolerantsi siin ei kasutata. „Täpselt pooleks“ on selle kümnendmurru omadus, mille sa sisse trükkisid, ja masinasse jääb see alles ainult nende poolte puhul, mis päriselt on pooled.
Vastus
1,01, ja tabelarvutus, mis vastab 1,00, on selle arvu kohta, mida ta hoiab, õige ja selle kohta, mille sa sisse trükkisid, vale. Salvestatud väärtus on 1,005-st 1,07 × 10⁻¹⁶ võrra allpool, seega ei näe täpne võrdlus kunagi keskkohta, ja napsatus paneb vastuse tagasi sinna, kuhu lugeja teda ootab. Ükski ümardamisreegel ei paranda selle all olevat probleemi. Raha koht on täisarvulistes sentides või kümnendtüübis, kus 1,005 on 1,005 ja küsimus ei kerkigi.
-
Õpitee
Kuidas arvu kirja panna
Allikad (2)
- Why half-to-even is the default rather than the rule taught in school, and what else the standard fixes: IEEE, "IEEE Standard for Floating-Point Arithmetic." IEEE Std 754-2019, 2019.
- The long-form explanation of why 1.005 is not stored as 1.005, and what follows from it: D. Goldberg, "What Every Computer Scientist Should Know About Floating-Point Arithmetic." ACM Computing Surveys 23(1), 5–48, 1991.