Aká presná je moja kalkulačka?

Každý máme nejakú tú „uchýlku“. V mojom prípade je to zbierka vedeckých a programovateľných kalkulačiek. Striktne povedané, by teda mal názov tohto článku obsahovať tento nástroj na výpočty v množnom čísle.

Nedocenená kalkulačka

Žijeme v dobe nadbytku počítačového výkonu. Dnešný smartfón strednej triedy počíta rýchlejšie ako Cray-2, najvýkonnejší počítač z doby, keď som študoval na gymnáziu (druhá polovica 80. rokov minulého storočia). Výkon súčasných bežných domácich počítačov by dobovým odborníkom pripadal ako niečo nepredstaviteľné. My ním plytváme na kryptomeny, či pozeranie videí s mačiatkami na Youtube (prehrávanie videa je nesmierne komplikovaný výpočet).

Nie vždy to tak bolo. Fyzik a laureát Nobelovej ceny Richard Feynman mal počas vývoja jadrovej bomby v projekte Manhattan na starosti organizáciu výpočtov. Zariadenia, ktoré mal vtedy k dispozícii, boli mechanické kalkulačky, ktoré umožňovali pomaly a hlučne uskutočňovať základné aritmetické operácie. Čo by v tej dobe dal za lacnú vedeckú kalkulačku?

Elektronické kalkulačky zažili svoju zlatú éru tesne pred príchodom dostupných domácich počítačov, teda hlavne v 70. a na začiatku 80. rokoch minulého storočia. Aj dnes však majú svoju úlohu. Počítač, či smartfón, dokáže pracovať bez nabíjania len niekoľko hodín maximálne dní. Kalkulačka vydrží na svoju batériu mesiace až roky. So solárnym napájaním sa dá používať, až kým sa mechanicky neopotrebuje. Svoju rolu zahrala programovateľná kalkulačka aj v mojej postapokalyptickej sci-fi poviedke.     

Ako presne počíta?

Dá sa však kalkulačke veriť? Áno aj nie. Je síce možné vytvoriť kalkulačku, ktorá počíta prakticky s nekonečnou presnosťou, reálne konštrukcie majú presnosť limitovanú. V prípade jednoduchých výpočtov to problém nie je, ak ale počítame komplikovanejšie sústavy operácii, môže dôjsť z dôvodu obmedzenej presnosti k zaokrúhľovaniu a výsledok sa môže od skutočnosti výrazne líšiť. Výrobca ale väčšinou maximálnu presnosť svojej kalkulačky, danú počtom číslic s ktorými vnútorne počíta, neuvádza.

Našťastie sa to dá jednoducho zistiť. Zámerne vykonám komplikovaný výpočet a porovnám presný výsledok s tým čo mi ukáže testovaná kalkulačka. Podľa toho, koľko číslic z údaja zobrazeného na displeji bude zhodné s presným  výsledkom, viem porovnať presnosť jednotlivých modelov kalkulačiek.

Ako konkrétne treba postupovať? Do testovanej kalkulačky zadám číslo 1,0000001 (za desatinou čiarkou je šesť núl a jednotka). Následne toto číslo umocním na druhú presne 27-krát. Na vedeckých kalkulačkách môžem použiť funkciu  , na  „obyčajných“ treba striedavo stláčať klávesu násobenia x a klávesu =. Ak mám model s tzv. obrátenou poľskou logikou (RPN – Reverse Polish Notation), tak musím stlačiť ENTER, ktorý zduplikuje číslo zobrazené na displeji a následne x pre vynásobenie týchto dvoch čísiel.

Výsledok tejto operácie je: 674 530,4707410846 

Ako viem, že je presný? Na jeho výpočet som použil kalkulačku s „nekonečnou“ presnosťou (číslo je zaokrúhlené na 16 číslic, na testy bežných kalkulačiek to stačí, hodnota zobrazená na 45 číslic je 674530.470741084559382689178029746812844444143, úplne presná hodnota by pravdepodobne mala viac ako 200 číslic). Väčšina z vás k nej má prístup. Je to program Kalkulačka vo Windows 10. Pozor, táto, prakticky neobmedzená, presnosť je používaná len pri základných operáciách. Pri komplikovanejších funkciách je limit presnosti „len“ 32 číslic. Aj to je však oveľa viac ako dosahujú prakticky všetky vreckové kalkulačky.    

V jednoduchosti je krása?

Pozrime sa teraz na príklady, ako presne počítajú jednotlivé kalkulačky. Začneme tými jednoduchými, „nevedeckými“, ktoré majú len základné aritmetické operácie.

Jednoduchá osemmiestna

Tu vidíme, že výsledok sa líši od toho presného už na treťom mieste zobrazenom na displeji. Výsledná presnosť komplikovaného výpočtu sú teda len dve platné číslice. Pričom samotná kalkulačka počíta s presnosťou na osem, možno až deväť miest.

Kalkulačka v pravítku

Kalkulačka umiestnená v pravítku. Výsledok je presne rovnaký ako pri predchádzajúcom modeli. Tak funguje digitálna technika. Ak sa mýli, tak sa mýli „úplne presne“.

Dvanásťmiestna kalkulačka

Dvanásťmiestna kalkulačka so základnými operáciami. Slúži napríklad na to, aby si aj hyperinflační miliardári v Zimbabwe mohli spočítať výplatu. Vnútorne teda počíta minimálne na dvanásť miest, čo sa prejavilo na presnosti výsledku. S tým skutočne presným sa zhoduje na štyri číslice.   

Nie je všetko zlato, čo sa blyští

Opustime kalkulačky pre „plebs“ s pozrime na tie „skutočné“, ktoré obsahujú funkcie pre vedecké a inžinierske výpočty. Začneme modelmi od Hewlett-Packard. Táto firma priniesla na trh v roku 1972 prvú vreckovú vedeckú kalkulačku, HP-35, a v roku 1974 prvú programovateľnú vreckovú kalkulačku, HP-65.

HP 50G

Jeden z klenotov mojej zbierky. Grafická, programovateľná RPN kalkulačka HP 50G. Výsledok je presný na štyri číslice, čo predpovedá, že kalkulačka počíta na asi 12 miest. Oproti predchádzajúcemu dvanásťmiestnemu modelu je ale výsledok iný. Pravdepodobne je to spôsobené inými algoritmami, ktoré sa používajú pri výpočte. Rovnaký výsledok dáva aj najnovšia grafická programovateľná kalkulačka od tejto firmy – HP Prime. 

DM-15

DM-15 je švajčiarsky klon legendárneho RPN modelu HP-15C, vyrábaného v rokoch 1982-89. Jedna z mojich stredoškolských túžob. Beží na ňom v emulátore originálny software z HP-15. Firma HP do neho „zabudla“ napísať informáciu o copyrighte a tak sa považuje za voľne kopírovateľný. Výsledok výpočtu sa zhoduje na tri platné číslice, kalkulačka počíta pravdepodobne s presnosťou na desať číslic.

V čase zlatej éry kalkulačiek bola hlavným konkurentom Hewlett-Packard firma Texas Instruments. Legendárne sú napríklad TI-57, TI-58 a TI-59 z druhej polovice 70. rokov minulého storočia. Posledný z menovaných modelov obsahoval zariadenie na čítanie a zápis na malé magnetické štítky, kam bolo možné ukladať programy alebo výsledky výpočtov.

TI-89

Vzácnym exemplárom v zbierke je tiež TI-89. Je to grafická kalkulačka, programovateľná v jazyku podobnému BASIC-u, pričom vrcholom jej schopností sú symbolické výpočty. Vie teda vypísať výsledok rovnice 2x=a ako x=a/2. Vidíme, že presnosť je podobná HP 50G, teda výsledok je správny na prvé štyri číslice aj keď je k nemu o niečo bližšie ako kalkulačka od HP. Odhadovaná interná presnosť je 12 alebo 13 číslic. Existuje tu však možnosť ako presnosť zvýšiť. Nadšenci vytvorili pre túto kalkulačku neoficiálny C kompilátor TIGCC. Ak sa použijú premenné typu double, bude výsledná presnosť približne 16 číslic. Takúto techniku som využil (aj keď primárnym dôvodom bola rýchlosť) vo svojom astronomickom programe Skymap 89.

Najtypickejším výrobcom kalkulačiek na súčasnom trhu je firma Casio.

Casio fx-350EX

Vidíme výsledok presný na štyri číslice. Odhadovaná vnútorná presnosť 12 alebo 13 číslic. Rovnaký výsledok vypočítajú prakticky všetky modely od  tejto firmy.       

Tajné poklady

Pri kalkulačkách známych značiek to nebola „žiadna sláva“, ako na tom teda budú menej známe alebo úplne neznáme značky.

Začneme firmou Canon. Hoci samotná značka je známa, v oblasti kalkulačiek nepatrí medzi typických predstaviteľov.

Canon X Mark I Pro

Som nesmierne milo prekvapený. Musel som si dokonca pomôcť fintou ako „vidieť za roh“ a odpočítal som od výsledku jeho celočíselnú časť. Výsledok sa zhoduje na desať miest. Canon si uvedomuje presnosť svojich kalkulačiek a aj v reklamných materiáloch uvádza, že počítajú na 18 miest.

A čo marketingovo prakticky nevýznamné značky?

Supermarketová kalkulačka

Túto kalkulačku som kúpil v u nás rozšírenej sieti supermarketov. Spomínam si, že stála 2,50 €. Displej ukazuje zhodu na deväť číslic. Odhadovaná vnútorná presnosť je 16 miest.

Porovnanie končím naozajstným pokladom s pomerom výkonu k cene, kde neexistuje žiadna konkurencia.

Catiga

Výsledok rovnaký ako má Canon. Teda vnútorná presnosť je pravdepodobne tiež 18 číslic. Cena však bola nulová. Kalkulačku som dostal ako darček k nákupu u „zeleného mimozemšťana.“ 

Má to zmysel?

Vo väčšine prípadov nie. V inžinierskej praxi sa častokrát pracuje maximálne s hodnotami na štyri platné čísla. Napríklad v oblasti elektroniky voltmeter, ktorý dokáže merať s presnosťou na 0,01%, stojí stovky eur. Teda na väčšinu takýchto výpočtov bohato postačuje bežná vedecká kalkulačka, ktorá vnútorne počíta dvanásťmiestne.

Ak miesto kalkulačky používam program na smartfóne, môžem si vyberať z obrovského množstva aplikácií. V mojom mobile sú štyri. Napríklad Free42 je emulátor legendárnej programovateľnej RPN kalkulačky HP-42S. Oproti originálu je však vylepšený. Počíta s presnosťou na 32 miest. Je zadarmo a bez reklamy dostupný pre Android, iOS, Windows, Linux a aj macOS. 

Na komplikované výpočty slúži počítač. Tu sa väčšinou pracuje s tzv. dvojitou presnosťou, ktorá zodpovedá 16 čísliciam. V prípade špeciálnej dôležitosti presného výpočtu je k dispozícii aj štvoritá presnosť, zodpovedajúca 32 čísliciam. Vrcholom je „ľubovoľná“ presnosť, kde je počet číslic limitovaný len kapacitou pamäti počítača a požadovanou rýchlosťou výpočtov. Moja prvá aplikácia napísaná pre Android bola kalkulačka počítajúca na 100 miest. Limitom bola veľkosť obrazovky na zobrazenie celého výsledku, mobil by dokázal počítať aj s tisícovkami číslic.

Tento základný test presnosti kalkulačky treba brať s rezervou. Ukazuje len presnosť základných operácií. V prípade komplikovanejších funkcií môže byť presnosť iná. Prakticky vždy však horšia ako tá základná.

P.S.: Ak by mal niekto nutkanie po prečítaní tohto článku napísať do diskusie „Nájdi si babu!“, tak upozorňujem, že moja priateľka toleruje túto moju relatívne lacnú a priestorovo nenáročnú „zábavku.“ Ak by som miesto starých kalkulačiek zbieral napríklad staré autá, bolo by to oveľa horšie.