Pi Codice di calcolo Golf [chiuso]


17

La sfida

Devi calcolare il pi nella minor lunghezza possibile. È possibile partecipare a qualsiasi lingua e puoi utilizzare qualsiasi formula per calcolare pi. Deve essere in grado di calcolare pi con almeno 5 cifre decimali. Più breve, verrebbe misurato in caratteri. La competizione dura 48 ore. Inizio.


Nota : questa domanda simile afferma che il PI deve essere calcolato usando la serie 4 * (1 - 1/3 + 1/5 - 1/7 +…). Questa domanda non ha questa limitazione, e in effetti molte risposte qui (inclusa la più probabile da vincere) non sarebbero valide in quell'altra domanda. Quindi, questo non è un duplicato.


5
@hvd Perché pensi che dovrebbe essere squalificato? Si adatta alle specifiche ...
Dr. belisarius,

5
@hvd acos (-1). Io vinco!
Level River St,

4
Sembra strano, incoerente. Il calcolo di π deve essere la divisione di un cerchio per il suo diametro, o un'altra operazione che dà π. Se accettiamo di fare 355/113 - che non ha nulla a che fare con π tranne la fortuna -, come @ace, allora logicamente dovremmo accettare di fare 3.14159 .
Nicolas Barbulesco,

7
Non capisco perché alla gente piaccia questa domanda. Questa è una delle domande più mal definite e poco interessanti che ho visto qui. L'unica differenza tra questo e ciao mondo, è che questo ha qualcosa a che fare con Pi.
Cruncher,

8
Per rendere interessante questa domanda ha bisogno di una funzione di punteggio che premia le cifre di pi per byte di codice.
Ben Jackson,

Risposte:


56

Python3, 7

Funziona nella shell interattiva

355/113

Output:, 3.1415929203539825corretto con 6 decimali

E finalmente ho una soluzione che batte APL!

Oh, e nel caso vi stiate chiedendo, questo rapporto è chiamato 密 率 (letteralmente "rapporto preciso"), ed è proposto dal matematico cinese Zu Chongzhi (429-500 d.C.). Un articolo relativo a Wikipedia può essere trovato qui . Zu ha anche dato il rapporto 22/7 come "rapporto approssimativo", ed è noto per essere il primo matematico a proporre che 3.1415926 <= pi <= 3.1415927


12
mhmh - questa è in realtà una risposta poliglotta. Funziona anche in Smalltalk!
blabla999,

7
Bestemmia! È a malapena un calcolo!
mniip,

3
beh, è ​​una divisione, e la sua precisione soddisfa il requisito ... (e anche la Bibbia è meno accurata; non
etichereresti

29
Il momento imbarazzante in cui ho scritto questo come una risposta seria, ma tutti lo interpretano come uno scherzo ...
user12205

20
Massima votato risposta: 355/113. Basso votato risposta: 3+.14159. Non vedo molta differenza, davvero.
primo

49

PHP - 132 127 125 124 byte

Simulazione di base Monte-Carlo. Ogni 10 M iterazioni, stampa lo stato corrente:

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";}

Grazie a cloudfeet e zamnuts per i suggerimenti!

Uscita campione:

$ 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
In cerca di una risposta che calcola davvero!
blabla999,

Non conosci PHP, ma in JS puoi fare qualcosa del genere: $j+=$x*$x+$y*$y<=1;che ti farebbe risparmiare quattro byte.
cloudfeet

1
Inoltre $k+=1/4;e print $j/$kpotrebbe essere ridotto a $k++;e print 4*$j/$kper un altro byte.
cloudfeet

@cloudfeet - Le modifiche apportate, il codice confermato funzionano ancora allo stesso modo. Grazie!

2
@MarkC - Concettualmente lancia le freccette a caso in un rettangolo da 0,0 a 1,1. Quelli inferiori o uguali alla distanza 1 da 0,0 sono considerati all'interno, altrimenti all'esterno. La forma di questa distanza 1 sembra essere un quarto di cerchio o π / 4. Il [numero di freccette all'interno del quarto di cerchio] / [numero totale di freccette] si avvicinerà a π / 4 all'aumentare del numero di campioni.

31

J 6

{:*._1

Spiegazione: *.fornisce lunghezza e angolo di un numero complesso. L'angolo di -1 è pi. {:prende la coda della lista [lunghezza, angolo]

Solo per i feticisti della serie che convergono lentamente, per 21 byte, una serie di Leibniz:

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

12
In altre parole, questo è atan(0) + pi. Non penso che l'uso delle funzioni trigonometriche e pi stesso debba essere considerato un "calcolo".
Jason C,

@JasonC Arg(ovvero argomento di un numero complesso) non è una funzione trigonometrica, nonostante abbia valori simili a quelli di
arctangent

1
@mniip Sì, lo è. È solo un sinonimo di atan (beh, atan2) sulle parti reali e immaginarie. Come puoi vedere lì, è esattamente uguale, per definizione, a atan(0) + pi.
Jason C,

25

Perl, 42 byte

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

Calcola π usando la formula di Leibniz :

Leipniz formula

999999 viene utilizzato come n più grande per ottenere la precisione di cinque cifre decimali.

Risultato: 3.14159165358977


Questo è fantastico! Mi ha ispirato a scriverne uno in Java 8.
David Conrad

19

Piet, molti codici

Non è la mia risposta, ma questa è la migliore soluzione che ho visto a questo problema:

Pi approximation in Piet

La mia comprensione è che somma i pixel nel cerchio e si divide per il raggio, e poi ancora una volta. Questo è:

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

Un approccio migliore nella mia mente è un programma che genera questa immagine a dimensioni arbitrarie e quindi la esegue attraverso un interprete Piet.

Fonte: http://www.dangermouse.net/esoteric/piet/samples.html


Potresti spiegare cosa fa realmente? (Conosco l'idea generale alla base di Piet, ma una spiegazione su come funziona questo particolare programma sarebbe una bella aggiunta alla tua risposta).
plannapus,

Non conosco davvero Piet, ma penso che questo misuri letteralmente l'area del cerchio rosso e poi si divida due volte per il raggio, risolvendo per π = A / (r * r)
Non che Charles il

Beh, l'area è abbastanza chiara, poiché quando il puntatore entra nel cerchio rosso, conta il numero di codici nell'area rossa e lo spinge nello stack quando si esce (poiché il punto di uscita è rosso scuro, quindi nessun cambiamento di tonalità ma un gradino più scuro ), è la parte "divisione per raggio quadrato" che ho avuto difficoltà a capire.
plannapus,

1
@plannapus Il raggio è "hardcoded" nella linea rosso scuro che si estende dall'angolo in alto a sinistra a metà del bordo sinistro (è difficile da vedere nell'immagine). Piet è difficile da seguire, ma l'essenza è che i blocchi di colore hanno un valore uguale alla loro area (la linea sul bordo sinistro ha pixel r , il cerchio ha pixel di area ) e le cose in mezzo sono solo un mucchio di operazioni pila e aritmetiche. I programmi iniziano in alto a sinistra. Il testo in alto a destra è essenzialmente un commento.
Jason C,

2
@JasonC ah ovviamente! Il cerchio tocca sia il lato superiore che quello inferiore, quindi la linea rosso scuro che scende dal lato superiore al centro esatto è necessaria nel raggio! Inteligente!
plannapus,

18

TECNICAMENTE STO CALCOLANDO, 9

0+3.14159

TECNICAMENTE STO ANCORA CALCOLANDO, 10

PI-acos(1)

STO CALCOLANDO COSÌ DURO, 8

acos(-1)

I ACCIDENTAMENTE PI, 12

"3.14"+"159"

E tecnicamente, questa risposta puzza.


31
Quindi intestazione, titolo molto importante, molto dolore ai miei occhi, wow.
Pierre Arlaud,

1
Grazie per molto lulz, grazie
Jonathan Van Matre,

Ehi piccola, vuoi espandere la mia serie di Taylor?
Jason C


@SimonT Non hai risposto alla mia domanda sulla serie Taylor. Ma mentre ci stai pensando, vedi i miei commenti sulla domanda e la maggior parte delle altre risposte qui. : P
Jason C,

14

APL - 6

2ׯ1○1

Uscite 3.141592654. Calcola il doppio dell'arcoseno di 1.

Una soluzione a 13 caratteri sarebbe:

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

Questo 3.141591654mi dà risultati che si adattano alla precisione richiesta.
Usa però le + 4/1 - 4/3 + 4/5 - 4/7 ...serie semplici per calcolare.


1
Wow, questa è una convergenza lenta!

Il mio primo pensiero è stato "perché no ¯2○¯1?" (Ovvero acos -1). Ma questo fornisce un'approssimazione complessa su repl.it ( 3.1415926425236J¯1.1066193467303274e¯8). Qualche idea sul perché? Tutte le implementazioni lo fanno?
James Wood,

+1 per la tua seconda soluzione. 2 * asin(1)è un po 'un imbroglio, però.
Jason C,

@JamesWood Non conosco APL ma se dovessi indovinare direi che ha provato a fare un sqrt(1-theta^2)(che si apre in molte identità di trigoni) ad un certo punto e ha perso una certa precisione da qualche parte, finendo con un po 'negativo 1-theta^2.
Jason C,

1
La cosa strana è che c'è ancora una piccola parte immaginaria per acos -0.75. Non è possibile calcolare 1 - 0.75 ^ 2in modo negativo.
James Wood,

14

J - 5 byte

|^._1

Questo significa |log(-1)|.


Uso intelligente dell'identità di Eulero.
primo

1
Fantastico, un'altra risposta identitaria algebrica. Circa intelligente come ln(e^(42*pi))/42o pi*113/113.
Jason C,

Funziona anche in TI-BASIC
Timtech,

1
(Totalmente indipendente, vorrei poter usare LaTeX su codegolf.)
Jason C

1
(Risposta a una domanda totalmente indipendente, mi capita di andare con i grafici di Google, ad esempio qui .) In tema, questa è la risposta più ordinata, e quindi avrebbe dovuto essere accettata.
primo

14

Google Calculator, 48

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

Prende un bastoncino di burro, esegue calcoli avanzati, ne ricava pi. Ho pensato che dal momento che tutti gli altri facevano semplici risposte matematiche, ne avrei aggiunto uno leggermente più unico.

Esempio


3
Il stick of butterè carino e divertente, ma questo è essenzialmente un'altra pi*x/x+y-yidentità algebrica.
Jason C,

10
Ci sono molti modi migliori per fare il pi usando un bastoncino di burro
Non che Charles il

Hai provato a fare il burro con un bastoncino di pi?
mbomb007,

12

Ottava, 31

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

Calcola l'area di un quarto di un cerchio con raggio 2, attraverso l'integrazione numerica.

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

1
Bello! +1 quando i miei voti si ricaricano.
Jason C,


10

Python, 88

Soluzione:

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

Output di esempio nella shell Python:

>>> print s
3.14159265359

Riesce a evitare qualsiasi importazione. Può essere facilmente scambiato per utilizzare la libreria decimale di precisione arbitraria; basta sostituire 3.con Decimal('3'), impostare la precisione prima e dopo, quindi unaria più il risultato per convertire la precisione.

E a differenza di un sacco di risposte qui, in realtà calcola π invece di affidarsi a built-in costanti o matematica falsità, vale a dire math.acos(-1), math.radians(180), etc.


9

linguaggio assembly x86 (5 caratteri)

fldpi

Se questo carica una costante dalla ROM o calcola effettivamente la risposta dipende comunque dal processore (ma almeno da alcuni, esegue effettivamente un calcolo, non solo caricando il numero dalla ROM). Per mettere le cose in prospettiva, è elencato come prendere 40 cicli di clock su un 387, il che è piuttosto più che sembra sensato se stesse caricando il valore dalla ROM.

Se vuoi davvero garantire un calcolo, potresti fare qualcosa del tipo:

fld1
fld1
fpatan
fimul f

f dd 4

[per 27 caratteri]


1
Puoi spiegarmi, per favore?
Nicolas Barbulesco,

E, su alcuni processori, quale calcolo farebbe fldpi?
Nicolas Barbulesco,

1
Non penso che usare un comando che carica pi (o addirittura lo calcola sulla base dell'implementazione asin di qualcun altro o di eventuali implementazioni di funzioni trig esistenti) conta davvero nello spirito di "calcolare" qualsiasi cosa (il fattore "omg assembler" non lo fa ' lo cambio davvero). Forse port questo all'implementazione dell'assemblatore più breve possibile, e può essere chiamato un "calcolo".
Jason C,

2
@JasonC: Mi sembra un'idea del tutto arbitraria, senza più un senso reale della mia decisione che le persone debbano implementare addizione, sottrazione, moltiplicazione e divisione da sole se stanno facendo per usarle.
Jerry Coffin,

3
@JerryCoffin Invece di discutere di tecnicismi, basti dire che né asin(-1)fldpisono né particolarmente interessanti o creativi. Non c'è molto scopo nel competere per vedere la cui lingua preferita ha il nome più breve per le funzioni trig e le costanti predefinite.
Jason C,

8

bc -l, 37 byte

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

Non vedo altre risposte usando il prodotto Wallis , quindi dal momento che prende il nome dal mio omonimo (il mio professore di Storia della Matematica ne è stato entusiasta), non ho potuto resistere.

Si scopre che è un algoritmo abbastanza carino dal punto di vista del golf, ma il suo tasso di convergenza è spaventoso - si avvicina a 1 milione di iterazioni solo per ottenere 5 cifre decimali:

$ 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 byte

In alternativa, possiamo usare Newton-Raphson per risolvere sin(x)=0, con un'approssimazione iniziale di 3. Poiché questo converge in così poche iterazioni, possiamo semplicemente codificare 2 iterazioni, che danno 10 cifre decimali:

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

La formula iterativa secondo Newton-Raphson è:

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

sin'=== cose cos(pi)=== -1, quindi approssimiamo semplicemente il costermine per ottenere:

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

Produzione:

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

+1 ora è più simile!
Jason C,

@JasonC Qual è la tua opinione sull'applicazione di Newton-Raphson per risolvere sin (x) = 0 (vedi modifica)?
Trauma digitale

6

pitone - 47 45

pi viene attualmente calcolato senza funzioni di trig o costanti.

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

risultato:

>>> a
3.1415907719167966

Dovrebbe essere in grado di salvare un byte rilasciando lo zero dopo la posizione decimale per l'interpretazione a virgola mobile forzata. :) Punti bonus per brevità, ma mi piace il mio per precisione arbitraria e minore utilizzo della memoria. (Modificato per cancellare l'idea tra parentesi; vedo cosa sta succedendo lì e il mio test isolato non ha riscontrato il problema.)
amcgregor,

Uh ... no. Dopo la modifica, ciò non fornisce più un output valido. (265723 ≭ π) Hai ancora bisogno del punto, non dello zero finale.
amcgregor,

@amcgregor usa python 3?
qwr

Lo faccio, anche se sviluppo principalmente sotto 2.7 e faccio funzionare il mio codice in entrambi. Tuttavia, nell'installazione stock di Mac 10.9 python3 il codice causa un errore di segmentazione.
amcgregor,

@amcgregor L'ho appena provato, funziona per me (python 3.3.4)
qwr,

6

C, 99

Calcola direttamente l'area / r ^ 2 di un cerchio.

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;}

Questa funzione calcolerà pi contando il numero di pixel in un cerchio di raggio rquindi dividendolo per r*r(in realtà calcola solo un quadrante). Con r10000, è preciso al 5 decimale (3.1415904800). I parametri della funzione vengono ignorati, li ho appena dichiarati lì per risparmiare spazio.


6

Javascript, 43 36

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

xdiventa zeta(2)=pi^2/6così sqrt(6*x)=pi. (47 caratteri)

Dopo aver usato la proprietà distributiva e aver eliminato le parentesi graffe dal forciclo si ottiene:

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

(43 caratteri)

Restituisce:

3.14159169865946

Modificare:

Ho trovato un modo ancora più breve usando il prodotto Wallis:

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

(36 caratteri)

Restituisce:

3.141591082792245

6

Python, Riemann zeta (58 41 caratteri)

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

O risparmia due personaggi, ma usa scipy

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

Modifica : salvati 16 (!) Caratteri grazie ad amcgregor


1
Può potenzialmente evitare l' mathimportazione e sqrtchiamare ruotando invece (6*sum(n**-2 for n in range(1,9**9)))**0.5
sull'esponenziazione

5

Javascript: 99 caratteri

Usando la formula data da Simon Plouffe nel 1996, funziona con 6 cifre di precisione dopo il punto decimale:

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)

Questa variante più lunga (130 caratteri) ha una precisione migliore, 15 cifre dopo il punto decimale:

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)

L'ho fatto basandomi sulle mie due risposte a questa domanda .


5

Rubino, 54 50 49

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

Versione online per il test.

Un'altra versione senza creare un array (50 caratteri):

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

Versione online per il test.


È interessante vedere le differenze linguistiche che possono offrire tali soluzioni compatte. Ad esempio, la traduzione di Python di cui sopra è di 105 caratteri (dopo aver usato alcuni trucchi di compressione del codice banali): a=__import__;reduce(a('operator').__add__,a('itertools').imap(lambda e:(-1.0)**e/(2*e+1)*4,xrange(9**6)))- nota l'uso di xrange / imap; in Python 3 puoi evitarlo; in pratica non voglio che tutta la tua RAM venga consumata costruendo un elenco con così tante voci.
amcgregor,

1
Hai assolutamente ragione. Spesso è molto conveniente usare le funzioni Array e Enumerable (specialmente di Ruby), anche se potrebbe non essere la migliore idea in termini di prestazioni e velocità ... Beh, a pensarci bene, dovrebbe essere possibile fare il calcolo con Metodo Range.each invece di creare una mappa.
David Herrmann,

Sì, è possibile - solo un personaggio in più ...
David Herrmann,

La tua prima risposta non è precisa come la seconda.
Josh

Potresti elaborare, per favore? Stesso algoritmo, stesso output per me?
David Herrmann,

5

TI CAS, 35

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

1
Ho guardato indietro e ho completamente dimenticato come funziona: P
TheDoctor

5

Perl - 35 byte

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

Produce la massima precisione in virgola mobile. Una derivazione della formula utilizzata può essere vista altrove .

Esempio di utilizzo:

$ perl pi.pl
3.14159265358979

Versione arbitraria di precisione

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

Estendere se necessario. La lunghezza dell'iterazione (ad es. -329..-1) Deve essere regolata per essere approssimativamente log 2 (10)3.322 volte il numero di cifre.

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211707

Oppure, usando bigintinvece:

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

Funziona notevolmente più velocemente, ma non include un punto decimale.

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]);}}

Uscite:

3.14159265

Nessuna matematica coinvolta. Cerca la versione corrente di TeX e analizza in modo primitivo l'html risultante. Alla fine diventerà π secondo Wikipedia .


Sono in ritardo di 5 anni, ma questa è una scappatoia standard creata 4 giorni prima di questa risposta.
Benjamin Urquhart,

5

Python 3 Monte Carlo (103 caratteri)

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

Game Maker Language, 34

Presuppone tutte le variabili non inizializzate come 0. Questo è predefinito in alcune versioni di Game Maker.

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

Risultato:

3.14159169865946

molto bella. inoltre, in C float k(){double x=0,i=0;for(;i++<999999;)x+=6/i/i;return sqrt(x);}è più breve di questo
izabera

ancora più corto con 1e8invece di 999999
izabera

Potresti usare for(i=1;i<1e8;)x+=6/i/i++;sqrt(x)per salvare un byte (o in alternativa for(i=1;i++<1e8;))?
mbomb007,

@ mbomb007 Sfortunatamente no, GML richiede tutti e 3 i parametri.
Timtech,

4

Java - 83 55

Versione più corta grazie a Navin.

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

Vecchia versione:

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

Questo non fa alcun calcolo.
Hosch250,

Non capisco il downvote, anche se - avevo risposto con "Math.toRadians (180)". È anche discutibile, chi calcola pi: il compilatore o il programma. Ma questo non faceva parte della domanda.
blabla999,

2
@ user2509848 Lo fa sicuramente: si moltiplica 180per pi/180.
AJMansfield,

Vuoi dire che moltiplica pi per 1? È essenzialmente la stessa cosa. Non l'ho sottovalutato, ma non credo che conta davvero.
Hosch250,


4

R : 33 caratteri

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

Speriamo che questo segua le regole.


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

Usa una formula che non capisco davvero e che ho appena copiato. : P

Produzione: 3.1415926535897913


3

Ruby, 12

p 1.570796*2

Io sto tecnicamente "Calcolo" pi greco un'approssimazione di pi greco.


No, non stai calcolando tecnicamente pi. Tecnicamente stai calcolando 3.141592, che sembra essere vicino a pi, ma non converge mai esattamente acos(-1).
mercoledì

@Wchar Ok, modificato
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
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.