Video Delen door 0 op een mechanische rekenmachine.

maarten70

Gevestigd lid
Lid geworden
16 jan 2018
Berichten
416
Reaction score
79
Punten
28
Leeftijd
17
Website
github.com
Hier is een video over wat een delen door 0 operatie doet op een mechanische rekenmachine (Engels):

Voor zij die geen zin of tijd hebben voor de video, hier de gebrekkige uitleg:

Delen door een getal zoals bijvoorbeeld 10 / 5, is steeds 10 - 5. Het antwoord is dan hoe vaak dat kan. Van 10 kan je 2 keer 5 aftrekken, dus het antwoord is 2.

De rekenmachine doet dat ook, het bepaalt de startplek waar het begint met tellen (dus bijv. de enkele, tientallen of honderdtallen) door steeds het getal *10 te doen en het dan van het originele getal af te trekken totdat het door heeft dat het teveel heeft afgetrokken (dus als het een negatief getal wordt, wat het niet kan hebben) en dan gaat het één plek terug.

Dat gaat dan bijvoorbeeld zo:

plek 1: 5 * 0.001 (we beginnen bij een decimaal, begin) [kan]
plek 2: 5 * 0,01 [kan]
plek 3: 5 * 0,1 [kan]
plek 4: 5 * 1 [kan]
plek 5: 5 * 10 (eind) [kan niet want dat wordt een negatief getal]

Op het moment dat het op plek 5 komt weet het dat het teveel heeft afgetrokken, dus gaat het één plek terug, naar plek 4. Op plek 4 komt dus een 1 te staan. Dus nu heb je daar 01,000 staan. Nu probeert het nog een keer 5 af te trekken en dat kan dus komt er te staan: 02,000. Het probeert het nog een keer, kan niet meer dus is het klaar met die plek. Hierna probeert het 5 * 0,1 af te trekken, kan niet, één plek opschuiven. 5 * 0,01 hetzelfde. Enz.

Eigenlijk hetzelfde zoals iedereen leert rekenen (onder elkaar aftrekken).

Bij het delen van 0, dus bijvoorbeeld 10 / 0, kan de rekenmachine altijd 0 blijven aftrekken van 10 zonder dat het teveel wordt. 0 * 100, blijft 0. Hierdoor komt het in een 'oneindige' herhaling waarbij het zijn start plek probeert te vinden maar dat lukt niet want je kan er steeds 0 * n vanaf halen. De machine komt dan op de laatste beschikbare plek terecht en blijft daar doortellen.

Is best leuk om te zien hoe zo'n machine dat doet.
 

Kate

Senior
Lid geworden
18 aug 2017
Berichten
4.125
Reaction score
1.121
Punten
113
Leeftijd
79
Pittige kost, Maarten!
 

Black Tiger

Enthousiast
Lid geworden
6 aug 2018
Berichten
2.140
Reaction score
299
Punten
0
Website
www.satellitefun.org
Lachen. Zo was ik eens met enkele vrienden naar een van de HCC dagen. In de tijd van toen de Soundblaster 2 OPL3 net op de markt was.
Toen was er ook een nieuwe Amiga (dacht een 800 maar weet 't niet meer, nooit Amiga's gehad behalve C64). En er stond een verkoper zo heel trots aan iemand te vertellen dat die nu zo goed was dat ie nooit meer vast kon lopen en de beste mooiste computer was.

Echter een van die twee vrienden die dus mee waren, wist ook een sommetje waar de toenmalige computers op vastliepen, althans Amiga's.
Dat wilde hij dan wel even proberen. Zo gezegd zo gedaan. Ondertussen dat die verkoper nog aan het opscheppen was tegen die klant vroeg ie zo terloops "mag ik 'ns kijken"? Ja hoor dat mocht.
Hij even typen en kort daarop starten een oneindige berekening op die Amiga, daar kon ie niet tegen geheugen liep vol en hups vast.

Wij zo van "euh.... meneer... volgens mij hangt ie", "Ja leuke grap jongens, dat kan niet". "Maarreh... echt wel, kijk maar". Die man kijken en zijn mond viel letterlijk open van verbazing... "ja maar... dat kan niet.. wat hebben jullie gedaan? Nee jullie kunnen niets gedaan hebben, alleen hij zat er aan en dat was nog geen minuut... wat is er... huh??? Ik snap 't niet".
Die man waar ie tegen aan het vertellen was moest eens grinniken en liep verder. Einde verkooppraatje dus. En wij lagen in een deuk en liepen ook verder.

Tja... met die oude machines was inderdaad wel eens lol te hebben, net zoals met dat mechanische ding van jouw post Maarten! Leuk!
 

maarten70

Gevestigd lid
Lid geworden
16 jan 2018
Berichten
416
Reaction score
79
Punten
28
Leeftijd
17
Website
github.com
Haha. Ja, dat moet een vervelende situatie zijn geweest voor de verkoper.

Delen door 0 op een computer doet zo'n CPU exception eruit gooien, zodat de OS het 'slot erop zet' of het probleem oplost. Maar ik was wel eens benieuwd wat het zou doen als je die exception 'vangt' (dat moet anders krijg je best snel een Triple Fault, waarbij de CPU de computer laat crashen) maar niks doet. Dus ik had een keer 10 / 0 en dan liet ik het resultaat op het scherm zien. Dit was niet in een loop, maar ik kreeg wel steeds hetzelfde getal te zien.

Dus ik geloof dat de computer dan automatisch terug gaat naar de plek waar de berekening staat en het opnieuw probeert. Op die manier krijg je ook een 'oneindige' loop waarbij het 10 / 0 probeert uit te rekenen.
 
Laatst bewerkt:

Black Tiger

Enthousiast
Lid geworden
6 aug 2018
Berichten
2.140
Reaction score
299
Punten
0
Website
www.satellitefun.org
Ik ben geen programmeur dus ik heb geen flauw idee, maar het zou zomaar kunnen dat die vriend toen ook van een rekensommetje gebruik maakte wat dan op een delen door 0 uit kwam. Ik weet alleen maar dat die Amiga compleet vast hing.

Maar ik kan me wel voorstellen dat als je er iets van weet, je ook eens wilt kijken waar het op uit draait als je dat af vangt zoals jij zegt.
Voor mij is het hoe dat moet gebeuren dan wel weer koeterwaals (lees: geen programmeerkennis en routines), maar begrijp de gedachtengang en een beetje waar het dan op uitdraait.
Technische nieuwsgierigheid noemen ze dat.... en da's iets waar ik ook aan lijdt en daarom soms dingen tot op de bodem uit zoek, terwijl ik misschien veel sneller klaar geweest was met een systeemherstel, bijvoorbeeld.
 
Bovenaan Onderaan