GUJ
Notícias, artigos e o maior fórum brasileiro sobre Java
home
fórum
notícias
tópicos recentes
empregos
artigos
Bem-vindo ao GUJ.
Crie seu login
, ou digite-o para logar no site.
Usuário:
Senha:
BigInteger - raiz quadrada
Índice dos Fóruns
»
Java Avançado
Autor
Mensagem
16/09/2010 11:48:03
Assunto:
BigInteger - raiz quadrada
elias_era
Thread.start()
Membro desde: 15/09/2010 11:36:49
Mensagens: 27
Localização: Campinas - SP
Offline
Para um algoritimo preciso pegar o resultado da raiz quadrada de 600851475143, mas o Math.sqrt() não suporta o tamanho do arquivo =/. E o BigInteger não tem nenhuma operação de raiz quadrada. Alguém conhece outra api?
Gnu/linux user and web developer =)
16/09/2010 12:40:08
Assunto:
BigInteger - raiz quadrada
ricardosoares
JavaEvangelist
Membro desde: 03/12/2004 09:49:13
Mensagens: 318
Localização: São Paulo, SP, Brasil
Offline
double res = Math.pow(600851475143d, 1/2);
Ricardo Soares
16/09/2010 14:14:40
Assunto:
Re:BigInteger - raiz quadrada
bezier curve
JavaEvangelist
Membro desde: 28/11/2009 17:55:58
Mensagens: 411
Offline
package guj; import java.math.BigInteger; public class ISqrt { /** * http://en.wikipedia.org/wiki/Integer_square_root * @param n The integer value * @return isqrt (n) */ public static BigInteger isqrt (BigInteger n) { if (n.signum() == -1) throw new ArithmeticException("Can't evaluate square roots of negative numbers"); else if (n.signum() == 0) return BigInteger.ZERO; BigInteger xk = n, xk1; BigInteger two = BigInteger.valueOf(2L); while (true) { xk1 = xk.add(n.divide(xk)).divide(two); if (xk1.subtract(xk).abs().compareTo(BigInteger.ONE) <= 0) break; xk = xk1; } return xk1; } /** * @param args */ public static void main(String[] args) { System.out.println (ISqrt.isqrt(BigInteger.valueOf (1234).multiply(BigInteger.valueOf(1236)))); System.out.println (ISqrt.isqrt(BigInteger.valueOf (123456789).multiply(BigInteger.valueOf(123456789)))); } }
16/09/2010 16:17:47
Assunto:
Re:BigInteger - raiz quadrada
elias_era
Thread.start()
Membro desde: 15/09/2010 11:36:49
Mensagens: 27
Localização: Campinas - SP
Offline
Valeu pessoal =), tenho que pegar algum livro de Teoria dos Números para fazer certas coisas na mão.
Gnu/linux user and web developer =)
Índice dos Fóruns
»
Java Avançado
Ir para:
Selecione um Fórum
Notícias
Assuntos gerais (Off-topic)
MundoJ - Artigos, Notícias e Debates
Artigos e Tutoriais
Java Básico
Java Avançado
Ferramentas, Frameworks e Utilitários
Desenvolvimento Web
Interface Gráfica
Google Android e Java Micro Edition (ME)
Certificação Java
Persistência: Hibernate, JPA, JDBC e outros
Java Enterprise Edition (Java EE)
Frameworks e Bibliotecas brasileiros
RIA - Flex, JavaFX e outros
Arquitetura de Sistemas
Metodologias de Desenvolvimento e Testes de Software
JavaScript
Ruby & Ruby on Rails
Outras Linguagens
Powered by
JForum 2.1.8
©
JForum Team