2012-10-18 4 views
3

나는 PI의 소수에서 특정 숫자의 자리수를 찾고 싶다. 그리고 PI를 (아마도) 무한대로 계산하는 것을 포함한다. 문제는 변수를 여러 자리에 저장하는 방법이나 새로 계산 된 숫자를 사용하는 방법을 모르기 때문에 시퀀스와 비교할 수 있다는 것입니다.PI의 소수 자릿수 내에서 특정 시퀀스를 찾는 방법은 무엇입니까?

그래서 PI를 계산하고 마지막 십진수 만 정수로 유지할 수 있습니까?

미리 감사드립니다.

+5

무한대로, ㅎ?) –

+0

숫자의 순서는 어느 정도입니까? – starblue

+0

[Pi를 마지막 자리까지 계산 하시겠습니까?] (http://www.youtube.com/watch?v=RN5aQSN7qo8) – Beta

답변

0

Pi 계산에 반복 알고리즘을 사용할 수 있습니다 (예 : Gauss–Legendre algorithm).

이를 구현하려면 임의 정밀도 산술 연산을 수행하는 라이브러리가 필요합니다. 그러한 라이브러리 중 하나는 GMP입니다.

분명히, 누군가가 당신을 위해 대부분의 작업을하고있다 : 문제의 http://gmplib.org/pi-with-gmp.html

3

이런 종류의 하스켈에서 발견 된 것과 같은, 게으른 평가를 사용하여 매우 우아하게 해결 될 수있다. 또는 파이썬에서 생성기를 사용하여 한 번에 최대 하나의 Pi를 생성하고 검색중인 대상 값의 해당 위치를 확인합니다.

두 방법의 장점은 (잠재적으로) 무한한 숫자 시퀀스를 생성 할 필요가 없으며 찾고자하는 것을 찾을 때까지 필요한만큼만 생성한다는 것입니다. 물론, 특정 시퀀스 이 실제로이 Pi에 나타나지 않는다면, 알고리즘은 영원히 반복 될 것이지만 적어도 프로그램을 실행하는 컴퓨터는 메모리가 부족하지 않을 것입니다.

또는 BBP Formula 또는 Pi의 특정 자릿수 추출을 허용하는 유사한 알고리즘을 사용할 수 있습니다.

+0

이것은 PI의 n 번째 자릿수를 반환하는 f (n) 메소드가있는 경우에만 작동합니다. 너? – IVlad

+0

@IVlad 첫 번째 옵션은 다음과 같습니다. 아니요. 다음 숫자로 넘어 가기 전에 느리게 "모든 숫자"를 계산할 수 있지만 특히 하나만 봅니다. 두 번째 옵션의 경우 : 예, 이것은 n 번째 숫자를 계산하는 것을 의미하지만, 위에서 언급 한 것처럼 그러한 알고리즘이 존재합니다. –

+0

BBP와 같은 자릿수 추출 알고리즘은 정말로 내가 생각하는 방법이지만 처음 두 단락은 혼란스럽고 실제로는 관련이 없습니다. 마지막 문장은 내가 생각하는 모든 OP 요구 사항입니다. +1도 마찬가지입니다. – IVlad