Numeros Gigantes

3 respostas
caiozanchetti

Pessoal estou resolvendo um problema que deve extrair a raiz quadrada de um numero até: 10^1000 (dez elevado na potencia 1000).
Estou usando a BigInteger, ateh ai tdo bem mas esta classe nao extrai raiz quadrada entao fui atras de um algoritmo maluco que faz isso (Newton-Raphson-Babylonian method), mas queria saber se nao tem um caminho mais curto…
Se alguem jah passou por essa situacao…

Obrigado…

3 Respostas

andredeividi

Bem eu nunca passei por um a situção como essa
mas um conselho que dou a você e usar caminhos que a matemantica ja da a vc por exemplo( 10 elevado a 1000 as raiz quadrada disso e 10 elevado a 998 )

T

Use Newton-Raphson mesmo.

(É claro que você pode usar uns truques para fazer Newton-Raphson convergir mais rápido, como calcular a primeira aproximação quase correta. Aí é com você.)

Bom, a raiz quadrada de 10 ^ 1000 é, como todos sabemos, 10 ^ 500.
(Não consegui descobrir como chegou ao valor 10 ^ 998 )

louds

Use a sugestão do thingol mesmo, Nenton-Raphson é bem facil de implementar, como estimativa inicial tente calcular ela com double, se a precisão permitir.

Cuidado também com números muito grandes, o JDK usa multiplicação trivial e o algoritmo C do TAOCP, que tem complexidade alta.

Criado 29 de maio de 2006
Ultima resposta 29 de mai. de 2006
Respostas 3
Participantes 4