2009-05-04 5 views
0

저는 항상 궁금해했습니다. 예를 들어 pi를 3000 번째 소수 자리로 계산하는 (특히 명령형으로) 경우와 같이 매우 긴 십진수로 산술 연산을 수행하려면 어떻게해야합니까?극히 긴 십진법에 대한 산술 연산

+0

어떤 언어를 사용하고 있습니까? 이것은 bignum 조작에 사용할 수있는 API로 인해 언어에만 해당됩니다. – Noldorin

+0

C#/VB ......... – Daniel

답변

3

임의의 정밀도 숫자를 지원하는 언어 또는 라이브러리를 사용 하시겠습니까?

파이썬에서 ints는 임의의 크기 인 long으로 자동 승격됩니다. 일종의 임의의 정밀도 부동 소수점을 얻기 위해 얼마나 많은 소수 자리를 이동할지 추적하는 데 두 번째 값을 사용할 수 있습니다.

Java에서는 BigDecimal 클래스를 사용할 수 있습니다.이 클래스는 "변경할 수없는 임의의 정밀도로 부호가있는 10 진수"를 나타냅니다.

다른 언어로 된 예제가있을 것입니다.

0

숫자 수준의 데이터로 작업하거나 (예 : 점진적으로 또는 결정적으로 각 숫자 계산) 적절한 정밀도를 제공하기에 충분한 비트 수를 가진 새로운 데이터 구조를 정의해야합니다.

3

bignums에 대한 계산을 지원하지 않는 언어의 경우 종종 라이브러리가 있습니다. 예를 들어, GMP을 볼 수 있습니다. 문서는 일반적인 알고리즘 접근법에 대한 지침을 제공합니다.

bignum 산술을 빠르게 만드는 것은 어렵 기 때문에 거기에 몇 가지 복잡한 신호 알고리즘이 있습니다.