Jump to content
Sign in to follow this  
VitorGarcia

Python - Gerar numeros de 16 algarismos

Recommended Posts

VitorGarcia

Boa noite a todos,

Tento programar nos meus tempos livres e estou a experimentar o Python.

O meu objectivo é gerar uma lista com numeros de 1 a 16 algarismos,mas dá um erro "OverflowError: Python int too large to convert to C long".  :wallbash:

Consegui que criasse um numero com 8 algarismos mas nada mais que isso.Os numeros que estou a criar estao a ser inseridos num ficheiro de texto.Faz algum sentido criar uma 2ª lista num novo ficheiro de texto e juntá-las ??Do tipo:

Lista1.txt        Lista2.txt        Lista1.txt(depois de criada a lista2.txt)

0                    0                    0+99999999

1                    1                    1+99999999

...                    ...                  ...

99999999      99999999      99999999+99999999

Talvez a lógica não seja a melhor e o tamanho do ficheiro( 😲) dificil, mas como disse, TENTO programar nos tempos livres..

Share this post


Link to post
Share on other sites
pmg

O meu objectivo é gerar uma lista com numeros de 1 a 16 algarismos,mas dá um erro "OverflowError: Python int too large to convert to C long".  :wallbash:

16 algarismos? Não estarás a exagerar? ???

http://en.wikipedia.org/wiki/Orders_of_magnitude_%28numbers%29#1015

Para que é  que queres a lista de números? Talvez haja outra solução para o que queres fazer ...

De qualquer maneira, podes sempre usar caracteres (em vez de números) para ultrapassar o problema do overflow ... atenção: um ficheiro com os números todos de 1 a 9999999999999999 ocupa ~10,000 Teras!!


What have you tried?

Não respondo a dúvidas por PM

A minha bola de cristal está para compor; deve ficar pronta para a semana.

Torna os teus tópicos mais atractivos e legíveis usando a tag CODE para colorir o código!

Share this post


Link to post
Share on other sites
VitorGarcia

Boas,

obrigado pela resposta.Realmente é um ficheiro muito grande,a mim dava-me ~13 teras!!!

Em relação á tua sugestão..o que eu queira mesmo era usar algarismos.. =), mas pensei que o problema se prendia com o fato do python não conseguir gerar inteiros tão grandes e que houvesse maneira de contornar isto..

Share this post


Link to post
Share on other sites
KTachyon

Boas,

obrigado pela resposta.Realmente é um ficheiro muito grande,a mim dava-me ~13 teras!!!

Deves estar a fazer mal as contas. Se gastasses 1 byte por número (o que implica que não conseguisses representar os valores no ficheiro), ficarias com 9.999.999.999.999.999 bytes num ficheiro. Só isso dá 9095 TB. Com 8 bytes por número já irias conseguir representar, mas o valor ficaria 8x maior e ainda terias que contabilizar 9.999.999.999.999.998 separadores entre valores... E nem vou entrar nos valores que irias obter caso decidisses representar em texto.


“There are two ways of constructing a software design: One way is to make it so simple that there are obviously no deficiencies, and the other way is to make it so complicated that there are no obvious deficiencies. The first method is far more difficult.”

-- Tony Hoare

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.