VitorGarcia Posted April 19, 2012 at 02:44 AM Report #449865 Posted April 19, 2012 at 02:44 AM 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". 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..
pmg Posted April 19, 2012 at 08:17 AM Report #449871 Posted April 19, 2012 at 08:17 AM 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". 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!
VitorGarcia Posted April 22, 2012 at 01:23 AM Author Report #450472 Posted April 22, 2012 at 01:23 AM 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..
KTachyon Posted April 22, 2012 at 10:44 AM Report #450476 Posted April 22, 2012 at 10:44 AM 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
VitorGarcia Posted April 24, 2012 at 10:03 PM Author Report #451251 Posted April 24, 2012 at 10:03 PM Tens razao,peco desculpa...tava a ver para 12 algarismos...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now