BigInteger 클래스를 사용하여 10-1000MB 범위의 숫자를 저장하려고 생각합니다. 누구도이 경험이 있습니까? 극도로 큰 숫자에 대해 실용적이거나 묵시적인 제한이 있습니까?매우 큰 숫자의 BigInteger 성능
2
A
답변
8
글쎄, documentation for BigInteger은 처리 할 수있는 메모리가 충분하면 숫자가 어떤 크기라도 될 수 있다고 말합니다.
BigInteger의 일반 연산 (일부 테스트에서는 50x 이상)이 일반 숫자 유형보다 훨씬 빠르지 만 실제로 그럴 수 있습니다.
또한 BigInteger 유형은 변경할 수 없으므로 BigInteger 유형에 대한 조작으로 인해 새 인스턴스가 생성됩니다. 따라서 2 개의 10MB 숫자를 추가하면 새로운 10MB 숫자가 생성됩니다. 기존 인스턴스를 수정하지 않습니다. 이는 코드를 구조화하는 방법에 영향을 줄 수 있습니다.
실제적인 제한 사항은 컴퓨터에서 사용할 수있는 메모리의 양과 프로그램에서 사용할 수있는 메모리의 양입니다. 이것은 32 비트 프로세스의 경우 3GB 이상, 64 비트의 경우 더 많아야하므로 필요한 숫자로 작업 할 수 있어야합니다.
2
계산상의 한계가 있습니다. 나는 한계에 부딪쳤다.
2 개의 거대한 숫자를 곱하면 사각형을 계산하는 데 걸리는 시간과 약간의 오버 헤드가 추가됩니다. 따라서 이전 계산보다 7 배 큰 숫자에 곱셈을 수행하면 약 50 배의 시간이 걸립니다. 1000 배 더 크게 만들면 약 1000000 배 이상 오래 걸릴 것입니다.
루프를 실행하면 평생 동안 프로그램이 완료되지 않을 수도 있습니다.
관련 문제
- 1. 매우 큰 숫자의 vb.net
- 2. 매우 큰 숫자의 파이썬
- 3. 매우 큰 숫자의 첫 번째 숫자 검색
- 4. 소수를 사용하는 매우 큰 숫자의 나머지
- 5. 매우 큰 숫자의 요인을 찾는 방법
- 6. pow 또는 ** Python에서 매우 큰 숫자의 경우
- 7. 문자열을 사용하는 매우 큰 숫자의 곱셈
- 8. C++에서 매우 큰 숫자의 숫자
- 9. 매우 큰 BigIntegers 인쇄
- 10. Python에서 매우 큰 사전의 성능 향상
- 11. python + 매우 큰 sqlite 데이터베이스의 성능 향상
- 12. 파이썬 성능 - 탭 파일에 문자열로 큰 숫자의 배열을 인쇄합니다.
- 13. 큰 숫자의 비트 비교
- 14. 매우 큰 숫자의 경우 숫자 가역 가용 숫자 생성기
- 15. 찾기 큰 BigInteger 로그가 올바르게 작동하지 않습니까?
- 16. BigInteger 메소드 성능 Android 폰에 'add'
- 17. ArrayIndexOutOfBoundsException 큰 숫자의 프로그램 추가
- 18. C# 형식 임의로 큰 끝없는 게임을위한 BigInteger
- 19. 큰 숫자의 부분
- 20. 큰 숫자의 요인
- 21. 큰 숫자의 Google 양식
- 22. 큰 숫자의 곱
- 23. 큰 숫자의 ConcurrentDictionary
- 24. 큰 숫자의 Factorials
- 25. 문자열에서 대문자로 큰 숫자의 변환
- 26. 매우 큰 신경망 훈련
- 27. 매우 긴 숫자의 문자열 만들기 (미학 quest'n)
- 28. 합리적인 시간에 문자열로 BigInteger
- 29. GPI를 사용하여 BigInteger 계산 속도 향상
- 30. PHP 큰 배열 성능
10 - 1000MB? 왜'int'에 안성맞춤 인 숫자에 BigInteger를 사용하겠습니까? 'BigInteger'가 어떻게 동작하는지 알고 싶다면'int'와'long'과 비교할 간단한 테스트를 작성하는 것이 어떻습니까? 너 10 분 걸릴거야? –
@JimMischel : 1000000000은'int'에 들어갈 것이지만, OP는 2^1000000000 – finnw
256^1000000000을 의미한다고 생각합니다 :) – mafu