Egy 100millió karakterű számot hány biten lehet tárolni?
ma 12:58-as hozzászóló!
(ma 15:02-es hozzászóló vagyok = előző)
A szabványos lebegőpontos számábrázolási módok se tetszőleges nagyságú számokat tárolnak. Nem ismerem a pyton-t, de 99% hogy nem fogja neked a fordítója ezt normálisan megcsinálni és tán még hibát se fog kiírni...
A Matlab-ot, meg ezeket valszeg' úgy írták meg, hogy tetszőleges nagyságú számot tud használni, letárolni (csak közben zabálja a memóriát... :-D). De el tudom képzelni, hogy ott is valamit trükközni kell ekkora számoknál, hogy ne kapjon hülyét a program.
15:17 Pythonban, mint fentebb is írtam, egy long nevű EGÉSZ típus van, ami _tetszőleges_ hosszúságú. Nem lebegőpontos.
Próbáld ki, persze elég nagy számnál már lassú lesz a műveletvégzés.
Ha nem ismered a Pythont, és ráadásul kifejezetten írtam, hogy tetszőleges pontosságú akkor minek okoskodsz bele?
ma 08:07-es hozzászóló!
tegmap 15:02-es, illetve tegnap 15:17-es hozzászóló vagyok! (az okoskodó)
Mondtam, hogy nem ismerem a Pythont és nem is 100%-osan jelentettem ki, amit kijelentettem.
Egyébként mindennek van határa (kivéve az űrnek és az emberi hülyeségnek :-D). Egyszer csak elfogy a memóriának a helye, meg az egyéb háttértárolók kapacitása... :-P
Ismét én vagyok... még az első oldalon lévő hozzászólásodra reagálva még...
100 millió számjegyből álló decimális számot akar leképezni a kérdező. Nem pedig 100 milliót...
Matematikailag nem 10^8 nagyságrendű decimális számot, hanem 10^(10^8) nagyságrendű decimális számot.
Ergo akkora számot, amekkorával még senki se számolt semmit.
És nem tudom, hogy tudod-e hogy képezi le azt a bazi hosszú számot neked a Phyton...
LEHET, hogy integereket pakolgat egymás mellé, amiket egy másik integerrel "címez", hogy éppen melyik-melyik... (hogy tudjon vele pl. számolni) (((nem ismerem, a függvényei felépítését, csak tippeltem egyet))). Ha pl. így van megoldva benne, akkor is (2^15)^(2^15) számot képezne le maximum, ami szintén bazi nagy szám, de még nem akkora. Viszont olyan bazi nagy, hogy azt lehet rá mondani, hogy "akármekkora".
Tudod hogyan írták meg a Phyton fordítóját? Mert én nem. És szerintem te sem.
Igazából szerintem az összes Python fordító opensource, szóval akár meg is nézheted. De valószínűleg valamiféle tömbben tárolja a számjegyeket, legyen az akármilyen számjegy (decimális, 8 bites (azaz 256-os számrendszer beli), 32 bites (azaz ~4 millárdos számrendszer), 64, akármi). Mint fentebb kiszámoltuk, ha 1 byte 1 számjegy, azaz szöveg formában tárolod, akkor lesz 95 MByte. Ami nem sok. 32 bittel simán megcímzel 4 GByte-t. És nyílván nem szövegesen tárolod le.
Ne hitetlenkedj meg tippelj, már kiszámoltuk előtted a frankót.
Kiszámoltam és ha mindenféle trükközés nélkül szeretnéd tárolni, akkor minimum 332 192 807 bitnyi hely kellene ahhoz, hogy egyáltalán tudj tárolni 100 millió számjeggyel rendelkező decimális számot.
Ha plusz 3 bitet hozzácsapsz, akkor már az összes létező 100 millió számjegyből álló decimális szám értékét tárolni tudod, és a 100 millió+1 db számjeggyel rendelkező decimális számok közül is "néhányat".
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!