Pi 계산 코드 골프 [닫기]


17

도전

가장 짧은 길이로 pi를 계산해야합니다. 모든 언어에 참여할 수 있으며 모든 공식을 사용하여 pi를 계산할 수 있습니다. pi를 소수점 5 자리 이상으로 계산할 수 있어야합니다. 가장 짧은 문자로 측정됩니다. 경쟁은 48 시간 동안 지속됩니다. 시작하십시오.


참고 : 이 비슷한 질문에 따르면 PI는 계열 4 * (1 – 1/3 + 1/5 – 1/7 +…)를 사용하여 계산해야합니다. 이 질문 에는 이러한 제한 이 없으며 , 실제로 여기에 많은 답변이있을 가능성이 높은 답변이 다른 질문에서 유효하지 않습니다. 따라서 이것은 복제본이 아닙니다.


5
@hvd 왜 실격 처리해야한다고 생각하십니까? 그것은 사양에 맞습니다 ...
Dr. belisarius

5
@ hvd acos (-1). 내가 이겼다!
Level River St

4
이상하고 일관되지 않은 것 같습니다. π계산 하는 것은 원을 지름으로 나눠야하거나 π를주는 다른 연산이어야합니다. 우리가하고 받아 들인다면 113분의 355을 - 행운을 제외하고 π와는 아무 상관이없는 - @ace처럼 논리적으로 우리는 일을 받아 들여야 3.14159를 .
Nicolas Barbulesco

7
왜 사람들이이 질문을 좋아하는지 모르겠습니다. 이것은 내가 여기서 본 가장 잘못 정의되고 흥미로운 질문 중 하나입니다. 이것과 hello world의 유일한 차이점은 이것이 Pi와 관련이 있다는 것입니다.
Cruncher 2019

8
이 질문을 흥미롭게 만들려면 코드 바이트 당 pi의 자릿수를 보상하는 스코어링 기능이 필요합니다.
벤 잭슨

답변:


56

파이썬 3, 7

대화식 쉘에서 실행

355/113

출력 : 3.1415929203539825소수점 이하 6 자리까지 수정

그리고 마지막으로 APL을 능가하는 솔루션이 있습니다!

아, 궁금 하시다면이 비율을 密 率 (문자 그대로 "정확한 비율")이라고하며, 중국 수학자 Zu Chongzhi (429-500 AD)가 제안합니다. 관련 위키 백과 기사는 여기 에서 찾을 수 있습니다 . Zu는 또한 22/7 비율을 "거친 비율"로 제공했으며, 3.1415926 <= pi <= 3.1415927을 제안한 최초의 수학자로 알려져 있습니다.


12
mhmh-이것은 실제로 폴리 글 로트 답변입니다. 스몰 토크에서도 작동합니다!
blabla999

7
신성 모독! 간신히 계산입니다!
nini

3
물론, 그것은 부문이며, 그것의 정밀도를 만족 요구 사항은 (심지어 성경은 덜 정확, 당신은 신성 모독 레이블 않을 것이다 - 것 당신은 3 * ;-)?
blabla999

29
내가 이것을 진지한 답변으로 썼지 만 모두가 그것을 농담으로 해석하는 어색한 순간
user12205

20
최고 투표 답변 : 355/113. 최저 투표 답변 : 3+.14159. 정말 큰 차이가 보이지 않습니다.
primo

49

PHP — 132 127 125 124 바이트

기본 몬테카를로 시뮬레이션. 10M 반복마다 현재 상태를 인쇄합니다.

for($i=1,$j=$k=0;;$i++){$x=mt_rand(0,1e7)/1e7;$y=mt_rand(0,1e7)/1e7;$j+=$x*$x+$y*$y<=1;$k++;if(!($i%1e7))echo 4*$j/$k."\n";}

제안에 대한 cloudfeet 및 zamnuts에 감사합니다!

샘플 출력 :

$ php pi.php
3.1410564
3.1414008
3.1413388
3.1412641
3.14132568
3.1413496666667
3.1414522857143
3.1414817
3.1415271111111
3.14155092
...
3.1415901754386
3.1415890482759
3.1415925423731

5
실제로 계산하는 답을 찾으십시오!
blabla999

PHP는 모르지만 JS에서는 다음과 같은 작업을 수행 할 수 있습니다 $j+=$x*$x+$y*$y<=1;. 이렇게하면 4 바이트가 절약됩니다.
cloudfeet

1
또한 $k+=1/4;print $j/$k감소 할 수 $k++;print 4*$j/$k다른 바이트를 위해.
cloudfeet

@cloudfeet-변경 사항, 확인 된 코드는 여전히 동일하게 실행됩니다. 감사합니다!

2
@MarkC-개념적으로 0,0에서 1,1의 사각형으로 무작위로 다트를 던지고 있습니다. 0에서 0까지의 거리 1보다 작거나 같은 것은 내부, 다른 외부로 간주됩니다. 이 거리 1의 형상은 1/4 원 또는 π / 4이다. [쿼터 서클 안의 다트 수] / [총 다트 수]는 샘플 수가 증가함에 따라 약 π / 4입니다.

31

J 6

{:*._1

설명 : *.복소수의 길이와 각도를 제공합니다. -1의 각도는 파이입니다. {:리스트의 꼬리를 취함 [길이, 각도]

느리게 수렴하는 시리즈 페티시 스트, 21 바이트 동안 Leibniz 시리즈 :

      +/(4*_1&^%>:@+:)i.1e6
 3.14159

12
다시 말해 이것은입니다 atan(0) + pi. 삼각 함수의 사용과 파이 자체는 "계산"으로 간주되어야한다고 생각하지 않습니다.
Jason C

@JasonC Arg(즉, 복소수의 인수)는 arctangent와 비슷한 값을 가지고 있음에도 불구하고 삼각 함수가 아닙니다
mniip

1
@mniip 그렇습니다. 그것은 실제와 상상의 부분에서 atan (well, atan2)의 동의어 일뿐입니다. 보시다시피, 정의와 정확히 동일합니다 atan(0) + pi.
Jason C

25

펄, 42 바이트

map{$a+=(-1)**$_/(2*$_+1)}0..9x6;print$a*4

Leibniz 공식을 사용하여 π를 계산합니다 .

Leipniz formula

999999는 소수점 다섯 자리의 정밀도를 얻기 위해 가장 큰 n 으로 사용됩니다 .

결과: 3.14159165358977


이것은 멋지다! Java 8로 글을 쓰도록 영감을주었습니다.
David Conrad

19

Piet, 많은 코덱

내 대답은 아니지만 이것이이 문제에 대해 본 최고의 솔루션입니다.

Pi approximation in Piet

내 이해는 원의 픽셀을 합산하고 반지름으로 나눈 다음 다시 한 번 나눈다는 것입니다. 그건:

A = πr²  # solve for π
π = A/r²
π = (A/r)/r

내 마음에 더 나은 접근 방식은이 이미지를 임의의 크기로 생성 한 다음 Piet 인터프리터를 통해 실행하는 프로그램입니다.

출처 : http://www.dangermouse.net/esoteric/piet/samples.html


실제로 무엇을하는지 설명해 주시겠습니까? (Piet의 일반적인 개념을 알고 있지만이 특정 프로그램이 어떻게 작동하는지에 대한 설명은 귀하의 답변에 좋은 추가 기능이 될 것입니다).
plannapus

나는 Piet를 정말로 모른다. 그러나 나는 이것이 문자 그대로 빨간 원의 면적을 측정 한 다음 반지름으로 두 번 나눠서 π = A / (r * r)를 해결한다
Charles

포인터가 빨간색 원에 들어가면 빨간색 영역의 코덱 수를 계산하고 종료 할 때 스택으로 밀어 넣습니다 (종료 점이 어두운 빨간색이므로 색조가 변경되지 않고 한 단계 어두워지기 때문에) ), 내가 이해하기 어려운 "반지름 제곱으로 나누기"부분입니다.
plannapus

1
@plannapus 왼쪽 위 모서리에서 왼쪽 가장자리의 절반까지 짙은 빨간색 선으로 반지름이 "하드 코딩되어"있습니다 (이미지에서는보기 어렵습니다). Piet은 따르기가 쉽지 않지만 요점은 색상 블록의 영역과 동일한 값을 가지고 있습니다 (왼쪽 가장자리의 선은 r 픽셀, 원은 영역 픽셀을 가짐 ). 프로그램은 왼쪽 상단에서 시작합니다. 오른쪽 상단의 텍스트는 본질적으로 주석입니다.
Jason C

2
물론 @JasonC 아! 원은 상단과 하단에 닿아 있으므로 상단에서 정확한 중간까지 내려 오는 진한 빨간색 선이 반지름이 필요합니다! 똑똑한!
plannapus

18

기술적으로 저는 계산입니다, 9

0+3.14159

기술적으로 나는 아직도 계산, 10

PI-acos(1)

나는 너무 열심히 계산, 8

acos(-1)

나는 우연히 파이, 12

"3.14"+"159"

그리고 기술적으로이 답변은 악취가납니다.


31
헤더, 큰 제목, 눈에 매우 고통 스럽습니다.
Pierre Arlaud

1
많은 lulz에 대한 pluzz wan, thankz
Jonathan Van Matre

자기야, 내 테일러 시리즈를 확장하고 싶니?
Jason C


@SimonT 테일러 시리즈에 대한 내 질문에 대답하지 않았습니다. 그러나 당신이 그것에 대해 생각하는 동안, 질문에 대한 나의 의견과 대부분의 다른 답변을 여기에서보십시오. : P
Jason C

14

APL-6

2ׯ1○1

출력 3.141592654. 아크 사인 1의 두 배를 계산합니다.

13 문자 솔루션은 다음과 같습니다.

--/4÷1-2×⍳1e6

이것은 3.141591654요청 된 정밀도에 맞는 출력 입니다. 그래도
간단한 + 4/1 - 4/3 + 4/5 - 4/7 ...시리즈를 사용하여 계산합니다.


1
와우, 그것은 하나의 느린 수렴입니다!

나의 첫번째 생각은“왜 그렇지 ¯2○¯1않은가?”(즉, acos -1)였다. 그러나 그것은 repl.it ( 3.1415926425236J¯1.1066193467303274e¯8) 에 대한 복잡한 근사치를 제공합니다 . 왜 그런지 알아? 모든 구현이 그렇게합니까?
James Wood

두 번째 솔루션에 +1 2 * asin(1)그래도 약간의 속임수입니다.
Jason C

@JamesWood 나는 APL을 모른다. 그러나 추측해야한다면 sqrt(1-theta^2)어느 시점에서 (많은 trig identity에서 팝업) 시도를 시도하고 어딘가에서 약간의 정밀도를 잃어 약간 부정적으로 끝났다 1-theta^2.
Jason C

1
이상한 점은에 대한 작은 가상의 부분이 여전히 있다는 것입니다 acos -0.75. 1 - 0.75 ^ 2음수로 계산할 수있는 방법이 없습니다 .
제임스 우드

14

J-5 바이트

|^._1

이 의미 |log(-1)|합니다.


오일러의 정체성을 영리하게 사용합니다.
primo

1
쿨하고 또 다른 대수적 정체성 답변. ln(e^(42*pi))/42또는 만큼 영리합니다 pi*113/113.
Jason C

TI-BASIC에서도 활동
Timtech

1
(완전히 관련이 없기 때문에 코드 골프에서 LaTeX를 사용할 수 있기를 바랍니다.)
Jason C

1
(완전히 관련이없는 질문에 대한 대답은 Google 차트를 사용하는 입니다. 예를 들어 여기 에서)
primo

14

구글 계산기, 48

stick of butter*(26557.4489*10^-9)/millimeters^3

버터 스틱을 가져 와서 고급 계산을 수행하고 파이를 만듭니다. 나는 다른 모든 사람들이 간단한 수학 답변을하고 있었기 때문에 조금 더 독특한 답변을 추가 할 것이라고 생각했습니다.


3
stick of butter귀엽고 재미 있지만, 이것은 본질적으로 또 다른입니다 pi*x/x+y-y대수 정체성.
Jason C

10
버터를 사용하여 파이를 만드는 더 좋은 방법 이 많이 있습니다
Charles Charles

파이 막대기로 버터를 만들어 보셨습니까?
mbomb007

12

옥타브, 31

quad(inline("sqrt(4-x^2)"),0,2)

수치 적분을 통해 반지름이 2 인 원의 1/4 영역을 계산합니다.

octave:1> quad(inline("sqrt(4-x^2)"),0,2)
ans =     3.14159265358979

1
좋은! 내 투표가 재충전되면 +1
Jason C


10

파이썬, 88

해결책 :

l=q=d=0;t,s,n,r=3.,3,1,24
while s!=l:l,n,q,d,r=s,n+q,q+8,d+r,r+32;t=(t*n)/d;s+=t
print s

파이썬 쉘의 샘플 출력 :

>>> print s
3.14159265359

수입을 피하기 위해 관리합니다. 임의 정밀도 Decimal 라이브러리를 사용하기 위해 쉽게 교체 할 수 있습니다. 바로 교체 3.와 함께 Decimal('3')전에 정밀도를 설정 한 후, 다음 단항 플러스 변환 정밀도 결과.

그리고 여기에 답변을 훨씬 달리, 실제로 계산 하는 대신에 의존 π 내장 상수 또는 수학 속임수, 즉 math.acos(-1), math.radians(180)


9

x86 어셈블리 언어 (5 자)

fldpi

이것이 ROM에서 상수를로드하는지 또는 실제로 답을 계산하는지 여부는 프로세서에 따라 다릅니다 (그러나 적어도 일부에서는 실제로 ROM에서 숫자를로드하는 것이 아니라 계산을 수행합니다). 사물을 원근법으로 표현하기 위해 387에서 40 클럭 사이클을 취하는 것으로 나열되어 있습니다 .ROM에서 값을로드하는 것만으로는 의미가 없습니다.

정말로 계산을 원한다면 다음과 같이 할 수 있습니다.

fld1
fld1
fpatan
fimul f

f dd 4

[27 자]


1
설명해 주시겠습니까?
Nicolas Barbulesco

그리고 일부 프로세서에서는 어떤 계산이 fldpi수행됩니까?
Nicolas Barbulesco

1
필자는 pi를로드하는 명령 (또는 다른 사람의 asin 구현 또는 기존의 trig 함수 구현을 기반으로 계산하는 명령)을 사용하는 것이 실제로 "계산"이라는 개념으로 간주된다고 생각하지 않습니다 ( "omg assembler"요소는 정말 변경). 아마도 이것을 가능한 가장 짧은 어셈블러 구현으로 포팅 하고 "계산"이라고 부를 수 있습니다.
Jason C

2
@JasonC : 사람들이 덧셈, 뺄셈, 곱셈 및 나눗셈을 사용하려고한다면 스스로 구현해야한다고 결정하는 것 이상의 의미가 전혀없는 나에게 전적으로 임의적 인 개념처럼 들립니다.
Jerry Coffin

3
대신 교칙을 주장의 @JerryCoffin, 어느 쪽도 말할 그것을 충분 asin(-1)하거나하는 것은 fldpi특히 흥미 나 창조적 없습니다. 사전 정의 된 삼각 함수 및 파이 상수에 대해 가장 선호하는 언어의 이름이 가장 짧은 사람을 확인하기 위해 경쟁하는 데별로 목적이 없습니다.
Jason C

8

bc -l, 37 바이트

for(p=n=2;n<7^7;n+=2)p*=n*n/(n*n-1);p

내가 사용하는 다른 답변이 표시되지 않습니다 월리스 제품을 지금의 이름을 따서 그 이후, 내 이름이 같은 사람 (내 수학의 역사 강사는 그 중 큰 좋아했다), 나는 저항 할 수 없었다.

골프 관점에서 상당히 좋은 알고리즘을 보여 주지만 수렴 속도는 엄청납니다. 소수점 5 자리를 얻기 위해 백만 번 반복됩니다.

$ time bc -l<<<'for(p=n=2;n<7^7;n+=2)p*=n*n/(n*n-1);p'
3.14159074622629555058

real    0m3.145s
user    0m1.548s
sys 0m0.000s
$ 

bc -l, 15 바이트

또는 Newton-Raphson을 sin(x)=0사용하여 시작 근사치 3 으로 해결할 수 있습니다 . 이렇게 적은 반복 횟수로 수렴하기 때문에 단순히 2 개의 반복을 하드 코딩하여 소수 10 자리를 제공합니다.

x=3+s(3);x+s(x)

Newton-Raphson에 따른 반복 공식은 다음과 같습니다.

x[n+1] = x[n] - ( sin(x[n]) / sin'(x[n]) )

sin'=== cosand cos(pi)=== -1이므로 간단히 cos용어를 구합니다.

x[n+1] = x[n] + sin(x[n])

산출:

$ bc -l<<<'x=3+s(3);x+s(x)'
3.14159265357219555873
$ 

+1 이제 더 좋아집니다!
Jason C

@JasonC sin (x) = 0을 해결하기 위해 Newton-Raphson을 적용한 것에 대해 어떻게 생각하십니까?
Digital Trauma

6

파이썬- 47 45

pi는 실제로 삼각 함수 또는 상수없이 계산됩니다.

a=4
for i in range(9**6):a-=(-1)**i*4/(2*i+3)

결과:

>>> a
3.1415907719167966

강제 부동 소수점 해석을 위해 소수점 이하 자릿수 0을 삭제하여 바이트를 저장할 수 있어야합니다. :) 간결함을위한 보너스 포인트이지만 임의의 정확성과 낮은 메모리 사용률을 선호합니다. (괄호 아이디어를 긁어 편집; 거기에서 무슨 일이 일어나고 있는지와 내 고립 테스트는 문제를 포착하지 못했습니다.)
amcgregor

어 ... 아니 수정 후 더 이상 유효한 출력을 제공하지 않습니다. (265723 ≭ π) 마침표가 아닌 마침표가 여전히 필요합니다.
amcgregor

@amcgregor는 파이썬 3을 사용합니까?
qwr

나는 주로 2.7 미만으로 개발하고 코드를 모두 작동시킵니다. 그러나 기본 Mac 10.9 python3 설치에서는 코드에 세그먼테이션 오류가 발생합니다.
amcgregor

@amcgregor 방금 테스트했는데, 그것은 나를 위해 작동합니다 (python 3.3.4)
qwr

6

C, 99

원의 면적 / r ^ 2를 직접 계산합니다.

double p(n,x,y,r){r=10000;for(n=x=0;x<r;++x)for(y=1;y<r;++y)n+=x*x+y*y<=r*r;return(double)n*4/r/r;}

이 함수는 반지름의 원 안에있는 픽셀 수를 세어 r나눠서 pi를 계산합니다 r*r(실제로는 사분면을 계산합니다). 으로 r만, 그것은 5 소수점 (3.1415904800)에 정확합니다. 함수에 대한 매개 변수는 무시됩니다. 공간을 절약하기 위해 방금 선언했습니다.


6

자바 스크립트, 43 36

x=0;for(i=1;i<1e6;i++){x+=1/i/i};Math.sqrt(6*x)

x되고 zeta(2)=pi^2/6그래서 sqrt(6*x)=pi. (47 자)

분배 특성을 사용하고 for루프 에서 중괄호를 삭제하면 다음을 얻을 수 있습니다.

x=0;for(i=1;i<1e6;i++)x+=6/i/i;Math.sqrt(x)

(43 자)

다음을 반환합니다.

3.14159169865946

편집하다:

Wallis 제품을 사용하여 더 짧은 방법을 찾았습니다.

x=i=2;for(;i<1e6;i+=2)x*=i*i/(i*i-1)

(36 자)

다음을 반환합니다.

3.141591082792245

6

파이썬, 리만 제타 (58 41 자)

(6*sum(n**-2for n in range(1,9**9)))**0.5

또는 두 문자를 절약하지만 scipy를 사용하십시오.

import scipy.special as s
(6*s.zeta(2,1))**0.5

편집 : amcgregor 덕분에 16 (!) 문자 저장


1
대신 지수로 피벗 하여 math가져 오기 및 sqrt호출을 피할 수 있습니다 .(6*sum(n**-2 for n in range(1,9**9)))**0.5
amcgregor

5

자바 스크립트 : 99 자

1996 년 Simon Plouffe가 제공 한 공식을 사용하면 소수점 다음에 6 자리의 정밀도로 작동합니다.

function f(k){return k<2?1:f(k-1)*k}for(y=-3,n=1;n<91;n++)y+=n*(2<<(n-1))*f(n)*f(n)/f(2*n);alert(y)

이 긴 변형 (130 자)은 소수점 뒤 15 자리의 정밀도가 더 좋습니다.

function e(x){return x<1?1:2*e(x-1)}function f(k){return k<2?1:f(k-1)*k}for(y=-3,n=1;n<91;n++)y+=n*e(n)*f(n)*f(n)/f(2*n);alert(y)

나는 이 질문에 대한 두 가지 답변 을 바탕으로 이것을 만들었습니다 .


5

루비, 54 50 49

p (0..9**6).map{|e|(-1.0)**e/(2*e+1)*4}.reduce :+

테스트를위한 온라인 버전 .

배열을 생성하지 않은 다른 버전 (50 자) :

x=0;(0..9**6).each{|e|x+=(-1.0)**e/(2*e+1)*4}; p x

테스트를위한 온라인 버전 .


그러한 소형 솔루션이 제공 할 수있는 언어 차이를 보는 것은 흥미 롭습니다. 예를 들어, 위의 파이썬 번역은 105 자 (사소한 코드 압축 트릭을 사용한 후)입니다. a=__import__;reduce(a('operator').__add__,a('itertools').imap(lambda e:(-1.0)**e/(2*e+1)*4,xrange(9**6)))-xrange / imap 사용에 유의하십시오. 파이썬 3에서는 이것을 피할 수 있습니다. 기본적으로 모든 RAM이 너무 많은 항목이있는 목록을 작성하는 데 소비되는 것을 원하지 않습니다.
amcgregor

1
당신 말이 맞아요 성능 및 속도 측면에서 실제로는 최고의 아이디어가 아닐 수도 있지만 (특히 Ruby의) 배열 및 열거 가능 함수를 사용하는 것이 매우 편리합니다. 지도를 만드는 대신 Range.each 메서드
David Herrmann

네, 가능 - 하나의 문자를 더 ...
데이비드 헤르만

첫 번째 대답은 두 번째 대답만큼 정확하지 않습니다.
Josh

좀 더 자세히 설명해 주시겠습니까? 같은 알고리즘, 같은 결과?
David Herrmann

5

TI CAS, 35

lim(x*(1/(tan((180-360/x)/2))),x,∞)

1
나는 이것을 되돌아 보았고 그것이 어떻게 작동하는지 완전히 잊었다. : P
TheDoctor

5

펄-35 바이트

$\=$\/(2*$_-1)*$_+2for-46..-1;print

완전한 부동 소수점 정밀도를 생성합니다. 사용 된 공식의 파생물은 다른 곳에서 볼 수 있습니다 .

샘플 사용법 :

$ perl pi.pl
3.14159265358979

임의 정밀 버전

use bignum a,99;$\=$\/(2*$_-1)*$_+2for-329..-1;print

필요에 따라 확장하십시오. 반복 길이 (예 :) 는 자릿수의 약 3.322 배인 로그 2 (10)-329..-1 로 조정되어야합니다 .

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211707

또는 bigint대신 사용하십시오.

use bigint;$\=$\/(2*$_-1)*$_+2e99for-329..-1;print

이것은 눈에 띄게 빠르게 실행되지만 소수점은 포함하지 않습니다.

3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067

5

C # 192

class P{static void Main(){var s=(new System.Net.WebClient()).DownloadString("http://www.ctan.org/pkg/tex");System.Console.WriteLine(s.Substring(s.IndexOf("Ver&shy;sion")+21).Split(' ')[0]);}}

출력 :

3.14159265

수학이 필요하지 않습니다. TeX현재 버전을 조회 하고 결과 HTML의 기본 구문 분석을 수행하십시오. 결국 Wikipedia 에 따르면 그것은 π가 될 것입니다 .


나는 5 년 늦었지만 이 답변 4 일 전에 만들어진 표준 허점 입니다.
Benjamin Urquhart

5

파이썬 3 몬테카를로 (103 문자)

from random import random as r
sum(1 for x,y in ((r(),r()) for i in range(2**99)) if x**2+y**2<1)/2**97

5

게임 메이커 언어, 34

초기화되지 않은 모든 변수를 0으로 가정합니다. 일부 버전의 Game Maker에서는 기본값입니다.

for(i=1;i<1e8;i++)x+=6/i/i;sqrt(x)

결과:

3.14159169865946

아주 좋아요 또한, C에서 float k(){double x=0,i=0;for(;i++<999999;)x+=6/i/i;return sqrt(x);}보다 짧은 이 한
izabera

1e8999999 대신에 더 짧음
izabera

당신이 사용할 수 for(i=1;i<1e8;)x+=6/i/i++;sqrt(x)바이트 (또는 대안을 저장 for(i=1;i++<1e8;))?
mbomb007

@ mbomb007 불행히도 GML에는 3 개의 매개 변수가 모두 필요합니다.
Timtech

4

자바- 83 55

Navin 덕분에 더 짧은 버전.

class P{static{System.out.print(Math.toRadians(180));}}

구 버전:

class P{public static void main(String[]a){System.out.print(Math.toRadians(180));}}

이것은 계산을 수행하지 않습니다.
Hosch250

I don't understand the downvote, although - I'd answered with "Math.toRadians(180)". It is also questionable, who computes pi: the compiler or the program. But that was not part of the question.
blabla999

2
@user2509848 It most certainly does: it multiplies 180 by pi/180.
AJMansfield

You mean it multiplies pi by 1? It is essentially the same thing. I did not downvote it, but I don't think it really counts.
Hosch250


4

R: 33 characters

sqrt(8*sum(1/seq(1,1000001,2)^2))
[1] 3.141592

Hopefully this follows the rules.


3

Ruby, 82

q=1.0
i=0
(0.0..72).step(8){|k|i+=1/q*(4/(k+1)-2/(k+4)-1/(k+5)-1/(k+6))
q*=16}
p i

Uses some formula I don't really understand and just copied down. :P

Output: 3.1415926535897913


3

Ruby, 12

p 1.570796*2

I am technically "calculating" pi an approximation of pi.


No, you are not technically calculating pi. You are technically calculating 3.141592, which happens to be close to pi, but will never converge to exactly acos(-1).
wchargin

@Wchar Ok, edited
Doorknob

3
I don't think hard-coding pi/2 then multiplying it by 2 really counts; the point is to calculate pi, not obfuscate a numeric literal.
Jason C

3

JavaScript - 19 bytes

Math.pow(29809,1/9)

Calculates the 9th root of 29809.

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