Grote getallen in rekenmachine ?

Moderators: dirkwb, Xilvo

Forumregels
(Middelbare) school-achtige vragen naar het forum "Huiswerk en Practica" a.u.b.
Zie eerst de Huiswerkbijsluiter
Gebruikersavatar
Berichten: 13

Grote getallen in rekenmachine ?

Als ik de volgende berekening maak met mijn rekenmachine (op dit moment met Windows Calculator)...

231710 = 1,4605139969427623512132934337402e+1678

Is het volledige getal dan daadwerkelijk aanwezig is in mijn rekenmachine?

Of is het slechts een benadering ?

Re: Grote getallen in rekenmachine ?

Het is m.i. slechts een benadering.

De preciese uitkomst kan je berekenen op :

http://world.std.com/~reinhold/BigNumCalc.html

Je computer heeft zijn beperkingen. Ik kan wel niet zeggen tot hoeveel cijfers hij het getal kent. Je kan van die uitkomst eens de cijfers die hij toont opnieuw aftrekken. Als in het geheugen nog meer beduidende cijfers zitten, dan zal er op de display niet nul staan, maar de (eersten van de) overige beduidende cijfers, nu met een andere exponent voor erachter.

Gebruikersavatar
Berichten: 13

Re: Grote getallen in rekenmachine ?

aah zo. hmm, handig dat te weten :wink:

ben ik weer een stapje verder

Gebruikersavatar
Berichten: 1.107

Re: Grote getallen in rekenmachine ?

Of is het slechts een benadering ?
Een rekenmachine kan niets anders dan benaderen. Exact berekenen is per definitie onmogelijk. Zelfs als je intypt: 5+3 en er komt 8 uit, is dat nog een benadering.

Is mij verteld

Gebruikersavatar
Berichten: 13

Re: Grote getallen in rekenmachine ?

he ?

als ik 3 appels heb en krijg er 5 bij dan heb ik toch gewoon 8 appels ?

verklaar je nader..

Gebruikersavatar
Berichten: 7.224

Re: Grote getallen in rekenmachine ?

rheffels schreef:he ?

als ik 3 appels heb en krijg er 5 bij dan heb ik toch gewoon 8 appels ?

verklaar je nader..
Zo kan jij denken, maar een rekenmachine niet. Ik weet niet hoe oude rekenmachines werken, maar wel hoe de nieuwe (in feite computers) werken. Dit gebeurt namelijk allemaal binair. Met kleine getallen (zoals 3 en 8) kan de computer het exact uitrekenen. Echter met grotere getallen (vanaf 211, ongeacht waar de komma staat) kan een normale computer niet meer exact rekenen omdat deze niet genoeg bits hiervoor heeft.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 5.679

Re: Grote getallen in rekenmachine ?

Computers werken met twee soorten getallen: "integer" en "floating point", en het hangt van de software af hoeveel ruimte (bits) zo'n getal maximaal kan innemen. Integers zijn het makkelijkste, dat zijn gewoon gehele getallen. Dus 0, 1, 2, etc. (maximum hangt af van aantal bits)

Rekenmachines, zowel calc.exe in windows als je casio zakrekenmachine, werken met floating point getallen. Zo'n getal bestaat eigenlijk uit twee integers, een lang getal M (d.w.z. een getal dat veel bits in kan nemen) en een wat korter (minder bits) getal E, en het getal waar dit voor staat is dan: M·10E

(of eigenlijk grondtal 2 in plaats van 10, en de mantissa zijn eigenlijk binaire decimalen achter de komma, maar laten we het even makkelijk houden)

M heet de mantissa, en E heet de exponent. 3+5=8 kun je dus exact weergeven in een rekenprogramma of rekenmachine, dat is gewoon M=8 en E=0 (dus 8·100=8 ). Of je moet een programma hebben dat zó weinig bits voor M gebruikt dat zelfs 8 er niet in past, maar dat is ondenkbaar.

Dat grote getal 231710 is een getal van 1679 cijfers, de meeste software (of rekenmachines) zullen dat niet exact kunnen weergeven. Het wordt dan opgeslagen als M=1460513997 en E=1669, een benadering dus.

Soms kun je hele grote getallen toch exact weergeven, 1000710 past bijvoorbeeld wel: M=1 en E=2130, dat is geen benadering maar het exacte getal. Als er veel cijfers er op het eind nul zijn van het oorspronkelijke getal, kun je die bij M weglaten (die daardoor korter wordt) en bij E optellen. 568000 sla je bijvoorbeeld niet op als M=568000 en E=0, maar als M=568 en E=3.

Hoe nauwkeurig de getallen precies worden opgeslagen hangt af van de grootte van de mantissa en de exponent - van je software dus.
In theory, there's no difference between theory and practice. In practice, there is.

Berichten: 226

Re: Grote getallen in rekenmachine ?

Een rekenmachine kan niets anders dan benaderen. Exact berekenen is per definitie onmogelijk. Zelfs als je intypt: 5+3 en er komt 8 uit, is dat nog een benadering.
Is niet waar.

Zelfs een simpele computer kan 231710 exact uitrekenen als het moet. Niets makkelijker dan dat, want het spaart een afronding uit!

De berekeningen gaan recursief, dus bewerkingen met grote getallen zijn niet "moeilijker". Het kost hoogstens veel tijd om alles tot de laatste cijfer uit te rekenen.

In de praktijk zijn berekeningen tot op de laatste decimaal doorgaans niet interessant. Berekeningen worden omwille van tijdbesparing met een beperkte resolutie uitgevoerd.

Om maar te zwijgen van de praktische moeilijkheid om een getal van honderden cijfers op een display weer te geven.

edit: Zie verder commentaar Rogier

Gebruikersavatar
Berichten: 13

Re: Grote getallen in rekenmachine ?

oooh. da's niet zo mooi :shock:

Nu valt mijn berekening in het water ;)

dus met een getal als (261715)550 is het al helemaal niet mogelijk om exact te rekenen ?

Ik bedoel hier dus (261-tot-de-macht-715)tot-de-macht-550...

Gebruikersavatar
Berichten: 7.224

Re: Grote getallen in rekenmachine ?

rheffels schreef:dus met een getal als (261715)550 is het al helemaal niet mogelijk om exact te rekenen ?

Ik bedoel hier dus (261-tot-de-macht-715)tot-de-macht-550...
Zoals roger al heeft gezegd, er zijn speciale getallen waarmee dat wel kan, maar in het algemeen kan een computer niet exact rekenen met grote getallen.

Ik heb even Mathematica gechecked, en deze rekent wel het volledige getal uit (recursief berekend):

261^715 = 790610807682126175102409805341027806143321835057445233752639259067844956412532

726785553310964359725733570743041061384659114438879819517695233147617696986007

092611881600540298299217596515541530995859627817232807677493190687957011682504

762554217214155779337986134068027655839142477804467676139278757279221065372682

686824169694140494024531901866792346545899296880220848210727911331558584437854

750354300369943015084924177497869545909650747262091165093563479618651092159644

327116151563941631778051691208446555520352702985783962696961003866818147607628

079138937050413254360404139923726349142664689673344271335234659840959559368237

826180186033419624220238399616365374337463210015356311944503298625653689667318

308462012443811204969015640421467695461340751553981127990715903950416855668764

627231349135906774231855892387307117322443221084720405058974346703392365198628

916518623166908812047675711334140357557914340174630734415886882464321661397253

677013364810552140681443060661559480630928575308488420025737201421673142721616

556655550614873450718362272505094960132672549795991554292646052014052195285896

580980526937908460313156586000760311019356931523143203401259300543810311715150

207744356505573761788750504045271153968917479211798953782747417797906325706131

965479233427532961460196155434265630488678314730076014533409848097532937684825

653309369282366804118502248607378251441606893253672674959549153336877864503924

707581242729002343725998721654945697743457400634775914269634942802833068880184

038748618578100078047699064006907673995031613410307171937560660851219858451296

972713521373114805768590550633135504518931637307359964934990357948048733307399

432659668595577736494701896118191322198931917964865862939616098280443890267827

259540103901

:wink:
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Re: Grote getallen in rekenmachine ?

Dan heb jij wel een speciale computer want 261^715 kan jouw computer wel berekenen.

Het ligt allemaal aan de manier waarop floating point getallen worden voorgesteld. De Intel processor gebruikt bv de IEEE standaard om floating point getallen voor te stellen. Een floating point getal bestaat steeds uit de exponent (mantissa) en het getal (number). De IEEE heeft drie standaarden:

- single precision (M=8, N=24)

- double precision(M=11, N=53)

- double extended precision (M=15, N=64)

De getallen duiden het aantal bits aan.

Wil je grotere getallen dan zal je dus zelf de software moeten schrijven om grote getallen op te tellen. Gelukkig bestaan hiervoor de nodige algoritmes. Zo heb ik onlangs nog een stukje software moeten schrijven dat integer getallen van 200 cijfers lang moest kunnen vermenigvuldigen. Het nadeel hiervan is dat je de floating point gedeelte van de processor niet (of nauwelijks) kunt gebruiken, maar het kan wel degelijk hoor.

Gebruikersavatar
Berichten: 7.224

Re: Grote getallen in rekenmachine ?

Wil je grotere getallen dan zal je dus zelf de software moeten schrijven om grote getallen op te tellen. Gelukkig bestaan hiervoor de nodige algoritmes. Zo heb ik onlangs nog een stukje software moeten schrijven dat integer getallen van 200 cijfers lang moest kunnen vermenigvuldigen.  Het nadeel hiervan is dat je de floating point gedeelte van de processor niet (of nauwelijks) kunt gebruiken, maar het kan wel degelijk hoor.


En dat stukje software heb ik toevallig op mijn computer staan. Mathematica is op dit moment een van de (zoniet dé) krachtigste wiskunde software.
If I have seen further it is by standing on the shoulders of giants.-- Isaac Newton

Gebruikersavatar
Berichten: 24.578

Re: Grote getallen in rekenmachine ?

Puur numeriek is MatLab sneller, maar Mathematica is dan weer veel beter op vlak van symbolische wiskunde.

Het geldt inderdaad als een van de beste wiskundige software op dit moment, verder is ook Maple redelijk populair.

Gebruikersavatar
Berichten: 13

Re: Grote getallen in rekenmachine ?

En bestaan daar ook demo of freeware versies van ? :shock:

Gebruikersavatar
Berichten: 5.679

Re: Grote getallen in rekenmachine ?

rheffels schreef:oooh.  da's niet zo mooi   ;)

Nu valt mijn berekening in het water   :shock:

dus met een getal als (261715)550 is het al helemaal niet mogelijk om exact te rekenen ?

Ik bedoel hier dus (261-tot-de-macht-715)tot-de-macht-550...
Theoretisch wel, het is een getal dat met een eindig aantal decimalen (en dus exact) kan worden weergegeven, in tegenstelling tot bijvoorbeeld 1/3.

Het getal is daarentegen wel 450982 cijfers lang (decimaal, binair 31569740 bits, een getal van ruim 30MB dus) en dat is groter dan wat zelfs gangbare mathematische software nog aankan.

Maar weet je zeker dat je met dat enorme getal moet rekenen? Misschien kun je het als macht in je berekening laten staan die dan later weer wegvalt.

Stel dat je verderop van dat hele grote getal de 143ste-machtswortel moet hebben. Die uitkomst past dan bijvoorbeeld weer wél in een rekenprogramma.
Dan heb jij wel een speciale computer want 261^715 kan jouw computer wel berekenen.
Ligt aan de software natuurlijk, in theorie kan een computer met 512 MB geheugen getallen tot 512·220 bits aan, oftewel getallen van meer dan 160 miljoen decimalen.
Het ligt allemaal aan de manier waarop floating point getallen worden voorgesteld. De Intel processor gebruikt bv de IEEE standaard om floating point getallen voor te stellen. Een floating point getal bestaat steeds uit de exponent (mantissa) en het getal (number). De IEEE heeft drie standaarden:

- single precision (M=8, N=24)

- double precision(M=11, N=53)

- double extended precision (M=15, N=64)

De getallen duiden het aantal bits aan.

Wil je grotere getallen dan zal je dus zelf de software moeten schrijven om grote getallen op te tellen. Gelukkig bestaan hiervoor de nodige algoritmes.


Precies, een computer rekent het snelste met die IEEE standaard getallen, daarbuiten heb je speciale software nodig. Het ene programma doet dat beter dan het andere, maar er hoeft in principe geen beperking aan te zitten.

(overigens is de "mantissa" het getal zelf en de "exponent" het getal in de exponent, en 32 en 64 bit floats hebben een mantissa van 23 en 52 bits - er gaat ook nog 1 bit naar het +/- teken!)
En bestaan daar ook demo of freeware versies van ?   ;)
Ik gebruik zelf wel eens Maple, en daar kun je een demo / trial versie van aanvragen ja, die kun je volgens mij zelfs gratis op CD toegestuurd krijgen.

Dat soort software is trouwens wel een stuk ingewikkelder dan calc.exe ;)
In theory, there's no difference between theory and practice. In practice, there is.

Reageer