파이 500 자리 계산


25

pi의 처음 500 자리를 계산하는 프로그램을 작성하고 아래 규칙을 충족하십시오.

  • 길이는 500 자 미만이어야합니다.
  • "pi", "math.pi"또는 유사한 pi 상수를 포함 할 수 없으며 pi를 계산하기 위해 라이브러리 함수를 호출 할 수도 없습니다.
  • 숫자 "3", "1"및 "4"를 연속적으로 사용할 수 없습니다.
  • 최신 컴퓨터에서 적절한 시간 (1 분 미만)으로 실행해야합니다.

가장 짧은 프로그램이 승리합니다.


숫자가 정확한지 확인하려면 : eveandersson.com/pi/digits
Nellius

처음 500 회 이후 정확도가 떨어지고 500 자리 이상을 인쇄 할 수 있습니까?
Alexandru

@Alexandru, 나는 그렇게 생각하지만 잘린 것을 선호합니다.
Thomas O

@Joey 라이브러리 함수 없음 PI 계산하기-PI 상수 / 함수를 제외한 라이브러리의 모든 것을 사용할 수 있다고 가정합니다.
Aurel Bílý

1
HTTP 라이브러리를 사용하여 "digits of pi"웹 사이트를 다운로드 할 수 있습니까? ;-)
dan04

답변:


11

골프 스크립트-29 자

6666,-2%{2+.2/@*\/9)499?2*+}*

나중에 분석을 게시합니다


5
이것이 어떻게 작동하는지 설명해 주시겠습니까?
Thomas O

65
"나중에 분석을 게시하겠습니다". (3 년 동안 기다립니다.)
Justin Justin

14
"나중에 분석을 게시 할 것"* 6 년 이상 기다림 *
Erik the Outgolfer

1
@EriktheOutgolfer 나는 그것을 게시하려고했다. : P
Christopher

1
"나중에 분석을 게시합니다"(8 년 동안 대기)
Jono 2906

8

Mathematica (34 자) : (trig으로 "속임수"없이)

N[2Integrate[[1-x^2]^.5,-1,1],500]

그래서, 여기서 마술을 설명하기 위해 :
Integrate[function, lower, upper]"하단"에서 "상단"까지 "기능"곡선 아래 영역을 제공합니다. 이 경우 해당 함수는 [1-x^2]^.5반지름이 1 인 원의 상반부를 설명하는 공식입니다. 원의 반지름이 1이므로 x의 값이 -1보다 작거나 1보다 큰 경우에는 존재하지 않습니다. 따라서 우리는 원의 절반의 면적을 찾고 있습니다. 2를 곱하면 반지름 1의 원 내부 영역이 pi와 같습니다.


아마도 당신의 대답에 이것이 왜 효과가 있는지에 대한 설명을 삽입해야 할 것입니다 (비 수학 사람들을 위해).
저스틴

멋진 생각입니다. 나는 현재 그것을 볼 것이다. 관련된 수학에 대한 기본 설명을하겠습니다.
Stack Tracer

변화 : 어쩌면 당신은 그것을 줄일 수 sqrt[1-x^2](1-x^2)^.5)
저스틴

그리고 2. Mathematica가 훌륭하면 *를 제거 할 수 있습니다.
Stack Tracer

4

파이썬 (83 자)

P=0
B=10**500
i=1666
while i:d=2*i+1;P=(P*i%B+(P*i/B+3*i)%d*B)/d;i-=1
print'3.%d'%P

3

파리 / GP, 14

\p500
acos(-1)

두 번째 줄을

gamma(.5)^2

또는

(6*zeta(2))^.5

또는

psi(3/4)-psi(1/4)

또는

4*intnum(x=0,1,(1-x^2)^.5)

또는

sumalt(k=2,(-1)^k/(2*k-3))*4

2

bc -l (22 = 5 명령 줄 + 17 프로그램)

scale=500
4*a(1)

5
규칙은 "pi를 계산하기 위해 라이브러리 함수를 호출 할 수 없습니다"라고 말합니다.
피터 테일러

@Peter 내가 생각하는 문제는 "라이브러리 함수"가 항상 잘 정의 된 용어는 아니며 "Pi 계산"이라고 말하면 중간 결과를 계산하는 데 사용할 수 있으므로 Sqrt () Alexandru의 답변에서.
닥터 벨리 사리우스

나는 atan이 1/4 pi를 계산하기 때문에 이것이 부정 행위라고 생각하지만 그럼에도 불구하고 흥미로운 해결책입니다.
Thomas O

1
@ 토마스 O : 이것이 부정 행위라면, 한계는 어디입니까?
JB


1

파이썬 3 136

Madhava의 공식을 사용합니다 .

from decimal import *
D=Decimal
getcontext().prec=600
p=D(3).sqrt()*sum(D(2-k%2*4)/3**k/(2*k+1)for k in range(1100))
print(str(p)[:502])

파이썬 3 164

공식을 사용 합니다 .

from decimal import *
D=Decimal
getcontext().prec=600
p=sum(D(1)/16**k*(D(4)/(8*k+1)-D(2)/(8*k+4)-D(1)/(8*k+5)-D(1)/(8*k+6))for k in range(411))
print(str(p)[:502])


1

피 이스 , 21

u+/*GHhyHy^T500r^3T1Z

이 알고리즘을 사용합니다 pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...)))). Golfscript 답변의 의견에 있습니다.


이것은 다운 보트를받을 자격이 없습니다 ...
Beta Decay

이 대답은 잘못되어 34247779를 생성합니다 ... 내 지식으로는 pi가 아닙니다.
orlp

@orlp r최근에이 답변을 어기는 방식으로 작업이 변경되었습니다. 변경 1A를 0, 그리고 현재 Pyth에서 작동합니다.
isaacg

0

공리, 80 바이트

digits(503);v:=1./sqrt(3);6*reduce(+,[(-1)^k*v^(2*k+1)/(2*k+1)for k in 0..2000])

참조 https://tuts4you.com/download.php?view.452 ; 6 * arctg (1 / sqrt (3)) = % pi에 대한 근사값이고 arctg에 대해 serie 확장을 사용합니다.

  3.1415926535 8979323846 2643383279 5028841971 6939937510 5820974944 592307816
  4 0628620899 8628034825 3421170679 8214808651 3282306647 0938446095 505822317
  2 5359408128 4811174502 8410270193 8521105559 6446229489 5493038196 442881097
  5 6659334461 2847564823 3786783165 2712019091 4564856692 3460348610 454326648
  2 1339360726 0249141273 7245870066 0631558817 4881520920 9628292540 917153643
  6 7892590360 0113305305 4882046652 1384146951 9415116094 3305727036 575959195
  3 0921861173 8193261179 3105118548 0744623799 6274956735 1885752724 891227938
  1 8301194913 01

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.