Numeros Gigantes...  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
caiozanchetti
JavaBaby
[Avatar]

Membro desde: 27/10/2004 00:17:24
Mensagens: 90
Offline

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...
[MSN]
andredeividi
Virtual Machine Man
[Avatar]

Membro desde: 20/08/2005 10:55:12
Mensagens: 635
Localização: Joinville Sc
Offline

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 )

http://andrecaetano.blogspot.com/

[Email] [WWW] [MSN]
thingol
Moderador

Membro desde: 29/07/2004 16:10:13
Mensagens: 17543
Offline

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 )
[WWW]
louds
Moderador
[Avatar]

Membro desde: 29/04/2003 23:09:15
Mensagens: 4061
Localização: São Paulo
Offline

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.


http://www.kumpera.net/blog/
http://www.mono-project.com/
"Each individual should work for himself. People will not sacrifice themselves for the company. They come to work at the company to enjoy themselves."
Soichiro Honda
[ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team