Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: OverflowError suurta taulukkoa luotaessa

Ansy [09.10.2013 14:05:55]

#

Tulisko mieleen mitn. ratkaisua seuraavaan:

Pythonin virheilmoitus:

--> 18 neliot = [nelio] * nelioiden_lkm
OverflowError: cannot fit 'long' into an index-sized integer

Eli yritän alustaa "taulun" samalla luvulla monta kertaa.
nelio ja lkm ovat suuruusluokkaa:

89020571855401265512289573339484371018905006900175

Pienimmillä luvuilla toimii hienosti...

neliot.append(x) tuntuu varmaan hieman köykäiseltä?

Mod. aloitti uudesta kysymyksestä uuden aiheen!

Metabolix [10.10.2013 22:36:45]

#

Sinulta taitaa olla nyt jokin perustavanlaatuinen asia hukassa. Yrität luoda taulukkoa, jossa on 89 oktiljoonaa lukua. Tällainen tietomäärä ei mitenkään voi mahtua tietokoneen muistiin, onhan modernissakin tietokoneessa vain miljardeja tavuja keskusmuistia.

Virheilmoitus kertoo, että antamasi long-tyyppinen arvo (suuri luku) on niin iso, ettei sitä voi edes muuttaa sopivaan muotoon taulukon kokona tai indeksinä käytettäväksi.

Jos yrität luoda vaikka biljoonan alkion taulukon, luku on (64-bittisellä Pythonilla) mahdollista muuttaa sopivaan muotoon mutta muisti ei riitä ja tulee MemoryError. Jos koneessasi on reilusti muistia, miljardin alkion taulukko saattaa vielä juuri onnistua.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta