Végezzük el a következő műveletet a Windows Számológéppel:

 

Mit várunk, mi lesz az eredmény? Gyök(4) az 2, ebből kettőt kivonva 0-át kapunk. Nézzük ezt meg a számológépben:

Írjuk be, hogy 4, majd kattintsunk a gyökvonás gombra. Ekkor megjelenik, hogy sqrt(4), ami az angol SQuare RooT (gyök) rövidítése. Ezután vonjunk ki belőle kettőt. Eredmény?

 

Furcsa... Még furcsább lesz, ha ugyanezt a Tudományos nézetben végezzük el. Váltsunk át erre: Nézet > Tudományos nézet.

Bug vagy Feature? Ki tudja... Hogy miből adódhat a hiba? A számábrázolási korlátokból. Ha megnézzük, akkor ezek a számok irtó kicsik. A processzornak nincs akkora kapacitása, hogy a teljes számot (az összes tizedessel) kiszámolja, főleg, ha végtelen nem szakaszos tizedes tört.

Na oké, rendben, ezt még elnézzük neki. Na de a következő számítás a legfurcsább:

Egyszerű nézetben: 3 + 4 * 5 = 35

Tudományos nézetben: 3 + 4 * 5 = 23

Azt hittem azért az altalános iskolás matekot még beleprogramozták a számológépbe. Lehet, hogy nem? Ki jön rá mi a probléma? Próbáljátok ki Ti is!

A bejegyzés trackback címe:

https://numlockholmes.blog.hu/api/trackback/id/tr122569919

Kommentek:

A hozzászólások a vonatkozó jogszabályok  értelmében felhasználói tartalomnak minősülnek, értük a szolgáltatás technikai  üzemeltetője semmilyen felelősséget nem vállal, azokat nem ellenőrzi. Kifogás esetén forduljon a blog szerkesztőjéhez. Részletek a  Felhasználási feltételekben és az adatvédelmi tájékoztatóban.

molnarm 2011.01.08. 17:26:48

"Egyszerű nézetben: 3 + 4 * 5 = 35
Tudományos nézetben: 3 + 4 * 5 = 23"

Egyszerű nézetben a számológép nem foglalkozik a műveletek sorrendjével (először összeadja a 3+4-et, és a kapott 7-et szorozza össze az 5-tel). Ez mindig is így volt, annak idején kb. első infó órán felhívta rá a tanár a figyelmünket...

Annyiban jogos a felvetés, hogy a Súgóban nem az egyszerű módnál hívják fel erre a figyelmet, hanem a tudományosnál ("Tudományos módban végzett számítások esetén a Számológép betartja a műveleti sorrendet.")

toxicdog.hu · http://www.toxicdog.hu 2011.01.08. 19:25:43

Facepalm. :) Melyik egyszerű [nemtudományos] számológép tartja be a műveleti sorrendet? :) eleve azonnal kiértékel minden részt :)

buGhunter · http://bamberg.blog.hu 2011.01.08. 20:40:21

Az igen fontos különbség, hogy amikor megnyomja az ember a * jelet, normál módban 7-et, tudományosban az utolsó számot (4) mutatja, így nem vezeti félre a usert!

Steve22 2011.01.09. 13:38:18

A linux okos, mert ott bizony jó a megoldás!

Egyébként a második valóban egyszerű, csak előttem már lelőtték a poént, hogy a műveletek sorrendjét figyelembe veszi a tud. nézetben...

kszaki2 2011.07.22. 15:39:54

Double facepalm...

A műveleti sorrend gondolom csak annak meglepő aki még életében nem használt igazi számológépet, ahogy előttem is leírták már néhányan.

Az elsőnek sincs semmi köze a windowshoz, a lebegőpontos számábrázolás sajátossága. Ez is kb. első órás tananyag ha valaki járt pl. fősulira. Súlyos kiegyszerűsödés (cancellation, extreme loss of accuracy) néven lehet utánanézni, például itt is: en.wikipedia.org/wiki/Floating_point#Accuracy_problems.

Persze linuxon gondolom már ezt is megoldották, ha mégsem, az csak a gonosz Bill Gates aknamunkája miatt lehet :)