2013-03-22 2 views
1

이것이 Eclipse, Java 또는 내 컴퓨터의 문제인지 정확하게 알 수는 없습니다. 내가하려는 일은 기본적으로 2^57885161-1입니다. 그러나 슬프게도 Eclipse가 출력하는 모든 것은 "Infinity"입니다. 내 추론은 Java가 계산 된 방정식의 최대 한계를 설정하거나, Eclipse가 수행하거나, 내 컴퓨터가 필요한 계산 능력을 처리 할 수 ​​없다는 것입니다.Java의 전산 능력을 향상 시키십시오.

Java 또는 Eclipse 인 경우 상황을 해결할 수있는 방법이 있습니까?

감사합니다.

+0

왜 ???? ???? 0xFF의 7Mb를 얻는 것은 sooooo 복잡하지 않아야합니다 ... –

+0

대답은 17million + 자릿수이므로 알고 있습니다 ... – Kinz

+1

물론입니다. 정확하게 말하면 "integer"는 값이 0xFF 인 이진수로 7235645 바이트로 표현됩니다. 아직도 매우 흥미로운 이유가 필요합니다. –

답변

4

매우 큰 숫자의 경우 java.math.BigDecimal (또는 java.math.BigInteger) 클래스를 사용하십시오.

아마도 int 또는 double을 사용하고 있으며 그 수는 Java의 데이터 유형에 비해 너무 많습니다. 임의로 길 수있는 BigDecimal을 사용하면 주어진 시간에 문제를 해결할 수 있습니다.

편집 - 이전에 잘못된 패키지 인 "java.util.BigDecimal"을 작성했습니다.

+0

이 번호만으로도 17MB를 채우게됩니다. –

+0

나는 이것이 효과가있을 것이라고 믿는다. 그러나 요청 된 숫자의 크기를 감안할 때, 나는 그것이 equate하기에 아주 오랜 시간이 걸릴 것이라고 확신한다. 답변 해 주셔서 감사합니다. 나는이 굉장한 꾸러미를 완전히 모르고 있었다! – Kinz

+1

예. 계산을하는 데 오랜 시간이 걸릴 것입니다. 그러나 모든 것이 될 것이라는 것을 알고 있기 때문에, 바로 가기가 있습니다 : 바이트 []에 필요한 수의 0xff를 채우고 BigInteger의 byte [] 생성자를 사용할 수 있습니다. 다소 빨라지 겠지만 여전히 다루기 힘들 것입니다. –

관련 문제