"직접만든 프로그램으로 2의 1000000000 (10억)승 계산한게 자랑"
http://gall.dcinside.com/list.php?id=hit&no=10262&page=1&bbs=
apfloat for java 라이브러리(http://www.apfloat.org/apfloat_java/) 이용해서 만든 건 안 자랑.
대신 금방 짰음.
Apint twoPow = ApintMath.pow(new Apint(2), 10000); 를 10억으로 고치면 결과가 나옴.
100억으로 고치면 int 범위 넘는다고 에러.
Apint twoPow = ApintMath.pow(new Apint(2), new Long("10000000000"));
Long 으로 고치면,
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.apfloat.internal.IntMemoryDataStorage.implCopyFrom(IntMemoryDataStorage.java:63)
at org.apfloat.spi.DataStorage.copyFrom(DataStorage.java:611)
at org.apfloat.internal.Int3NTTConvolutionStrategy.autoConvoluteOne(Int3NTTConvolutionStrategy.java:196)
at org.apfloat.internal.Int3NTTConvolutionStrategy.autoConvolute(Int3NTTConvolutionStrategy.java:178)
at org.apfloat.internal.Int3NTTConvolutionStrategy.convolute(Int3NTTConvolutionStrategy.java:117)
at org.apfloat.internal.IntApfloatImpl.multiply(IntApfloatImpl.java:1156)
at org.apfloat.Apfloat.multiply(Apfloat.java:733)
at org.apfloat.Apint.multiply(Apint.java:313)
at org.apfloat.ApintMath.pow(ApintMath.java:66)
at twopow.main(twopow.java:13)
이런 에러가 남.
64bit 자바로 하니 다른 에러가 났음.
Exception in thread "main" org.apfloat.internal.TransformLengthExceededException: Maximum transform length exceeded: 100663296 > 50331648
at org.apfloat.internal.IntFactor3SixStepNTTStrategy.transform(IntFactor3SixStepNTTStrategy.java:132)
at org.apfloat.internal.Int3NTTConvolutionStrategy.autoConvoluteOne(Int3NTTConvolutionStrategy.java:197)
at org.apfloat.internal.Int3NTTConvolutionStrategy.autoConvolute(Int3NTTConvolutionStrategy.java:178)
at org.apfloat.internal.Int3NTTConvolutionStrategy.convolute(Int3NTTConvolutionStrategy.java:117)
at org.apfloat.internal.IntApfloatImpl.multiply(IntApfloatImpl.java:1156)
at org.apfloat.Apfloat.multiply(Apfloat.java:733)
at org.apfloat.Apint.multiply(Apint.java:313)
at org.apfloat.ApintMath.pow(ApintMath.java:66)
at twopow.main(twopow.java:13)
그래서 크기를 줄이니까 2의 15억(1504780000)승 정도까지 가능.
크기는 431메가 나오고, AMD Athlon II X3 440 에서 1분 45초 걸렸음.
근데 내가 이걸 왜 하고 있는 걸까? ㅠㅠ
'컴퓨터 기술' 카테고리의 다른 글
facemood란 프로그램이 내컴퓨터 두개에 깔려있는데 잘 안지워진다 (2) | 2011.11.12 |
---|---|
제 11회 2011 한국자바개발자 컨퍼런스 (1) | 2011.06.19 |
파이썬이 TIOBE 언어 인기순위에서 PHP를 최초로 추월했다 (1) | 2011.02.19 |
수차례 크래킹당한 마이센스 또 크래킹 당하다 (0) | 2011.02.12 |
제일 짧게 프로그래밍할 수 있는 언어는 무엇일까? (1) | 2011.01.30 |