| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/05/2006 16:42:46
|
caiozanchetti
JavaBaby
![[Avatar]](/images/avatar/075b24b68eb3cb44b3fa4e331d86db89.jpg)
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...
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/05/2006 16:59:35
|
andredeividi
Virtual Machine Man
![[Avatar]](/images/avatar/a2b8a85a29b2d64ad6f47275bf1360c6.jpg)
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/
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/05/2006 17:59:58
|
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 )
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 29/05/2006 18:27:54
|
louds
Moderador
![[Avatar]](/images/avatar/1e48c4420b7073bc11916c6c1de226bb.jpg)
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 |
|
|
 |
|
|