Classe Bignum do Ruby

Olá,

só por curiosidade: a linguagem Ruby trata automaticamente a conversão de números inteiros normais para uma estrutura de dados de números grandes (big numbers, números que são representados como strings, vetores ou outras estruturas por não "caber" em estruturas comuns).

Precisei calcular 2 ^ 20000, e a linguagem Ruby foi a que resolveu o problema mais rápido. Já tinha ela instalada, não precisei importar/carregar nenhuma biblioteca extra para fazer a conta.

E o resultado é gigante. Veja:

2**20000 = 398… (muitos números)… 376. Pra ser mais preciso, é um número com nada mais nada menos que 6021 dígitos.

Tentei no PowerShell (C#, .Net) e mesmo no R, mas ambos não conseguem fazer a conta nativamente, e retornam +Infinito. Até onde eu sei, .Net não possui mesmo uma biblioteca nativa para cálculos com números grandes. Talvez o R tenha, mas ela deveria ser importada antes do cálculo. Com o Ruby foi simples: resultado = 2**20000.

Até a próxima!

Categorias dessa postagem:

Comentários

Clayton : Python também trata números grandes facilmente.... Experimente 2**20000 no python...... [24/11/08 09:12 - link]

Vinicius Canto : Sim. Aliás, se não me engano a implementação do Bignum do Ruby é um port da que existe no Python.

Obrigado!

Vinicius [25/11/08 14:17 - link]