Pi Calculation Code Golf [fermé]

17

Le défi

Vous devez calculer pi dans la plus courte longueur possible. N'importe quelle langue est la bienvenue pour rejoindre et vous pouvez utiliser n'importe quelle formule pour calculer pi. Il doit pouvoir calculer pi à au moins 5 décimales. Le plus court, serait mesuré en caractères. La compétition dure 48 heures. Commencer.


Remarque : Cette question similaire indique que PI doit être calculé en utilisant la série 4 * (1 - 1/3 + 1/5 - 1/7 +…). Cette question n'a pas cette restriction, et en fait beaucoup de réponses ici (y compris les plus susceptibles de gagner) seraient invalides dans cette autre question. Donc, ce n'est pas un doublon.

poseidon
la source
5
@hvd Pourquoi pensez-vous qu'il devrait être disqualifié? Il correspond aux spécifications ...
Dr. belisarius
5
@hvd acos (-1). Je gagne!
Level River St, le
4
Cela a l'air bizarre, incohérent. Le calcul de π doit diviser un cercle par son diamètre, ou toute autre opération donnant π. Si nous acceptons de faire 355/113 - qui n'a rien à voir avec π sauf la chance -, comme @ace, alors nous devrions logiquement accepter de faire 3.14159 .
Nicolas Barbulesco
7
Je ne comprends pas pourquoi les gens aiment cette question. C'est l'une des questions les plus mal définies et les moins intéressantes que j'ai vues ici. La seule différence entre ce monde et bonjour, c'est que cela a quelque chose à voir avec Pi.
Cruncher
8
Pour rendre cette question intéressante, il a besoin d'une fonction de notation qui récompense les chiffres de pi par octet de code.
Ben Jackson

Réponses:

56

Python3, 7

Fonctionne dans le shell interactif

355/113

Sortie:, 3.1415929203539825corriger à 6 décimales

Et enfin j'ai une solution qui bat APL!

Oh, et au cas où vous vous poseriez la question, ce rapport est appelé le 密 率 (littéralement "rapport précis"), et est proposé par le mathématicien chinois Zu Chongzhi (429-500 après JC). Un article wikipedia connexe peut être trouvé ici . Zu a également donné le ratio 22/7 comme le "ratio approximatif", et il est connu pour être le premier mathématicien à proposer que 3,1415926 <= pi <= 3,1415927

user12205
la source
12
mhmh - c'est en fait une réponse polyglotte. Fonctionne également dans Smalltalk!
blabla999
7
Blasphème! C'est à peine un calcul!
mniip
3
eh bien, c'est une division, et sa précision satisfait l'exigence ... (et même la Bible est moins précise; vous ne qualifieriez pas ce blasphème - voulez-vous? 3 * ;-)
blabla999
29
Le moment gênant où j'ai écrit cela comme une réponse sérieuse mais tout le monde l'interprète comme une blague ...
user12205
20
Réponse le plus voté: 355/113. Le plus bas voté réponse: 3+.14159. Je ne vois pas vraiment de différence.
primo
49

PHP - 132 127 125 124 octets

Simulation de base de Monte-Carlo. Toutes les 10 millions d'itérations, il imprime l'état actuel:

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

Merci à cloudfeet et zamnuts pour vos suggestions!

Exemple de sortie:

$ 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

la source
5
Prêt pour une réponse qui calcule vraiment!
blabla999
Je ne connais pas PHP, mais en JS vous pouvez faire quelque chose comme: $j+=$x*$x+$y*$y<=1;qui vous ferait économiser quatre octets.
cloudfeet
1
Aussi $k+=1/4;et print $j/$kpourrait être réduit à $k++;et print 4*$j/$kpour un autre octet.
cloudfeet
@cloudfeet - Modifications apportées, le code confirmé fonctionne toujours de la même manière. Je vous remercie!
2
@MarkC - Conceptuellement, il lance des fléchettes au hasard dans un rectangle 0,0 à 1,1. Celles inférieures ou égales à la distance 1 de 0,0 sont considérées à l'intérieur, sinon à l'extérieur. La forme de cette distance 1 se trouve être un quart de cercle ou π / 4. Le [nombre de fléchettes à l'intérieur du quart de cercle] / [nombre total de fléchettes] se rapprochera de π / 4 à mesure que le nombre d'échantillons augmente.
31

J 6

{:*._1

Explication: *.donne la longueur et l'angle d'un nombre complexe. L'angle de -1 est pi. {:prend la queue de la liste [longueur, angle]

Juste pour les fettishists de séries lentement convergentes, pour 21 octets, une série de Leibniz:

      +/(4*_1&^%>:@+:)i.1e6
 3.14159
jpjacobs
la source
12
En d'autres termes, c'est le cas atan(0) + pi. Je ne pense pas que l'utilisation des fonctions trigonométriques et de pi lui-même devrait compter comme un "calcul".
Jason C
@JasonC Arg(c'est-à-dire l'argument d'un nombre complexe) n'est pas une fonction trigonométrique, malgré des valeurs similaires à celles d'arctangent
mniip
1
@mniip Oui, ça l'est. C'est juste un synonyme d'atan (enfin, atan2) sur les parties réelles et imaginaires. Comme vous pouvez le voir, il est précisément égal, par définition, à atan(0) + pi.
Jason C
25

Perl, 42 octets

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

Il calcule π en utilisant la formule de Leibniz :

Leipniz formula

999999 est utilisé comme le plus grand n pour obtenir la précision de cinq chiffres décimaux.

Résultat: 3.14159165358977

Heiko Oberdiek
la source
C'est cool! Cela m'a inspiré d'en écrire un en Java 8.
David Conrad
19

Piet, de nombreux codels

Pas ma réponse, mais c'est la meilleure solution que j'ai vue à ce problème:

Pi approximation in Piet

Ma compréhension est qu'il additionne les pixels dans le cercle et divise par le rayon, puis encore une fois. C'est:

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

Une meilleure approche dans mon esprit est un programme qui génère cette image à une taille arbitraire, puis l'exécute via un interpréteur Piet.

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

Charles
la source
Pourriez-vous expliquer ce qu'il fait réellement? (Je connais l'idée générale derrière Piet mais une explication sur la façon dont ce programme particulier fonctionnerait serait un bon ajout à votre réponse).
plannapus
Je ne connais pas vraiment Piet, mais je pense que cela mesure littéralement l'aire du cercle rouge puis divise par le rayon deux fois, en résolvant pour π = A / (r * r)
Pas que Charles
Eh bien, la zone est assez claire, car lorsque le pointeur entre dans le cercle rouge, il compte le nombre de codels dans la zone rouge et le pousse vers la pile lors de la sortie (car le point de sortie est rouge foncé, donc pas de changement de teinte mais un pas plus sombre ), c'est la partie "division par le rayon carré" que j'ai eu du mal à comprendre.
plannapus
1
@plannapus Le rayon est "codé en dur" dans la ligne rouge foncé s'étendant du coin supérieur gauche jusqu'à la moitié du bord gauche (c'est difficile à voir dans l'image). Piet est difficile à suivre, mais l'essentiel est que les blocs de couleur ont une valeur égale à leur zone (la ligne sur le bord gauche a r pixels, le cercle a des pixels de zone ), et le truc entre les deux n'est qu'un tas d'opérations de pile et d'arithmétique. Les programmes démarrent en haut à gauche. Le texte en haut à droite est essentiellement un commentaire.
Jason C
2
@JasonC ah bien sûr! Le cercle touche à la fois le côté supérieur et inférieur, donc la ligne rouge foncé descendant du côté supérieur vers le milieu exact est nécessaire le rayon! Intelligent!
plannapus
18

TECHNIQUEMENT JE CALCULE, 9

0+3.14159

TECHNIQUEMENT, JE CALCULE ENCORE, 10

PI-acos(1)

JE CALCULE TELLEMENT, 8

acos(-1)

JE ACCIDENTELLEMENT PI, 12

"3.14"+"159"

Et techniquement, cette réponse pue.

Jason C
la source
31
Alors en-tête, très gros titre, très douloureux pour mes yeux, wow.
Pierre Arlaud
1
pluzz wan for much lulz, thankz
Jonathan Van Matre
Hé bébé, tu veux élargir ma série Taylor?
Jason C
@SimonT Vous n'avez pas répondu à ma question sur la série Taylor. Mais pendant que vous y réfléchissez, voyez mes commentaires sur la question et la plupart des autres réponses ici. : P
Jason C
14

APL - 6

2ׯ1○1

Sorties 3.141592654. Il calcule deux fois l'arc sinus de 1.

Une solution à 13 caractères serait:

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

Cela sort 3.141591654pour moi, ce qui correspond à la précision demandée.
Il utilise cependant la + 4/1 - 4/3 + 4/5 - 4/7 ...série simple pour calculer.

mniip
la source
1
Wow, c'est une convergence lente!
Ma première pensée a été «pourquoi pas ¯2○¯1?» (C'est-à-dire acos -1). Mais cela donne une approximation complexe sur repl.it ( 3.1415926425236J¯1.1066193467303274e¯8). Une idée pourquoi? Toutes les implémentations font-elles cela?
James Wood
+1 pour votre deuxième solution. 2 * asin(1)est un peu une triche, cependant.
Jason C
@JamesWood Je ne connais pas APL mais si je devais deviner, je dirais qu'il a essayé de faire un sqrt(1-theta^2)(qui apparaît dans de nombreuses identités trigonométriques) à un moment donné et a perdu une certaine précision quelque part, se terminant par un légèrement négatif 1-theta^2.
Jason C
1
Ce qui est étrange, c'est qu'il y a encore une petite partie imaginaire pour acos -0.75. Il n'y a aucun moyen que cela puisse 1 - 0.75 ^ 2être négatif.
James Wood
14

J - 5 octets

|^._1

Cela signifie |log(-1)|.

bruissement
la source
Utilisation intelligente de l'identité d'Euler.
primo
1
Cool, une autre réponse identitaire algébrique. À peu près aussi intelligent que ln(e^(42*pi))/42ou pi*113/113.
Jason C
Fonctionne
1
(Totalement indépendant, je souhaite que nous puissions utiliser LaTeX sur codegolf.)
Jason C
1
(Réponse à une question totalement indépendante, je me débrouille avec Google Maps, par exemple ici .) Sur le sujet, c'est la réponse la plus intéressante, et aurait donc dû être acceptée.
primo
14

Calculatrice Google, 48

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

Prend un bâton de beurre, fait des calculs avancés, en fait pi. J'ai pensé que puisque tout le monde faisait des réponses mathématiques simples, j'en ajouterais un peu plus unique.

Exemple

Danny
la source
3
Le stick of butterest mignon et drôle mais c'est essentiellement encore une autre pi*x/x+y-yidentité algébrique.
Jason C
10
Il y a tellement de meilleures façons de faire du pi en utilisant un bâton de beurre
Pas que Charles
Avez-vous essayé de faire du beurre avec un bâton de pi?
mbomb007
12

Octave, 31

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

Calcule l'aire d'un quart de cercle de rayon 2, par intégration numérique.

octave:1> quad(inline("sqrt(4-x^2)"),0,2)
ans =     3.14159265358979
dcsohl
la source
1
Agréable! +1 lorsque mes votes se rechargent.
Jason C
11

Mathematica 6

180N@° 
-->3.14159
Dr. belisarius
la source
10

Python, 88

Solution :

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

Exemple de sortie dans le shell Python:

>>> print s
3.14159265359

Permet d'éviter toute importation. Peut facilement être échangé pour utiliser la bibliothèque Decimal de précision arbitraire; il suffit de remplacer 3.par Decimal('3'), définir la précision avant et après, puis unaire plus le résultat pour convertir la précision.

Et contrairement à beaucoup de réponses ici, calcule en fait π au lieu de s'appuyer sur des constantes intégrées ou des faux mathématiques, c'est math.acos(-1)-à- dire math.radians(180), etc.

amcgregor
la source
9

langage d'assemblage x86 (5 caractères)

fldpi

Que cela charge une constante à partir de la ROM ou calcule réellement la réponse dépend du processeur (mais au moins pour certains, il effectue un calcul, pas seulement le chargement du nombre à partir de la ROM). Pour mettre les choses en perspective, il est répertorié comme prenant 40 cycles d'horloge sur un 387, ce qui est un peu plus que logique s'il ne s'agissait que de charger la valeur à partir de la ROM.

Si vous voulez vraiment assurer un calcul, vous pouvez faire quelque chose comme:

fld1
fld1
fpatan
fimul f

f dd 4

[pour 27 caractères]

Jerry Coffin
la source
1
Pouvez-vous expliquer, s'il vous plaît?
Nicolas Barbulesco
Et, sur certains processeurs, que ferait le calcul fldpi?
Nicolas Barbulesco
1
Je ne pense pas que l'utilisation d'une commande qui charge pi (ou même la calcule en fonction de l'implémentation asin de quelqu'un d'autre ou de toute implémentation de fonction trig existante) compte vraiment dans l'esprit de "calculer" quoi que ce soit (le facteur "omg assembler" ne fait pas '' t vraiment changer cela). Peut-être portez -le sur l'implémentation d'assembleur la plus courte possible, et cela peut être appelé un "calcul".
Jason C
2
@JasonC: Cela me semble être une notion tout à fait arbitraire, sans plus de sens réel que ma décision que les gens devaient mettre en œuvre l'addition, la soustraction, la multiplication et la division par eux-mêmes s'ils voulaient les utiliser.
Jerry Coffin
3
@JerryCoffin Au lieu de discuter de détails techniques, il suffit de dire que ni asin(-1)ni fldpisont particulièrement intéressants ou créatifs. Il n'y a pas grand-chose à rivaliser pour voir dont la langue préférée a le nom le plus court pour les fonctions trig et les constantes pi prédéfinies.
Jason C
8

bc -l, 37 octets

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

Je ne vois aucune autre réponse en utilisant le produit Wallis , donc comme il porte le nom de mon homonyme (mon histoire des mathématiques professeur d' tiré un gros coup), je n'ai pas pu résister.

Il s'avère que c'est un algorithme assez agréable du point de vue du golf, mais son taux de convergence est abyssal - approchant 1 million d'itérations juste pour obtenir 5 décimales:

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

Alternativement, nous pouvons utiliser Newton-Raphson pour résoudre sin(x)=0, avec une approximation de départ de 3. Parce que cela converge en si peu d'itérations, nous codons simplement en dur 2 itérations, ce qui donne 10 décimales:

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

La formule itérative selon Newton-Raphson est:

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

sin'=== coset cos(pi)=== -1, nous approximons donc simplement le costerme pour obtenir:

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

Production:

$ bc -l<<<'x=3+s(3);x+s(x)'
3.14159265357219555873
$ 
Traumatisme numérique
la source
+1 maintenant c'est plus comme ça!
Jason C
@JasonC Quelle est votre opinion de l'application de Newton-Raphson pour résoudre sin (x) = 0 (voir modifier)?
Digital Trauma
6

python - 47 45

pi est en fait calculé sans fonctions trigonométriques ni constantes.

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

résultat:

>>> a
3.1415907719167966
qwr
la source
Doit être en mesure d'enregistrer un octet en supprimant le zéro après la décimale pour l'interprétation flottante forcée. :) Points bonus pour la brièveté, mais j'aime le mien pour une précision arbitraire et une utilisation moindre de la mémoire. (Modifié pour éliminer l'idée de parenthèse; je vois ce qui se passe là-bas et mon test isolé n'a pas
détecté
Euh non. Après votre modification, cela ne donne plus de sortie valide. (265723 ≭ π) Vous avez toujours besoin du point, mais pas du zéro final.
amcgregor
@amcgregor utilise-t-il python 3?
qwr
Oui, bien que je développe principalement sous 2.7 et que mon code fonctionne dans les deux. Cependant, sur l'installation d'origine de Mac 10.9 python3, votre code provoque une erreur de segmentation.
amcgregor
@amcgregor Je viens de le tester, cela fonctionne pour moi (python 3.3.4)
qwr
6

C, 99

Calcule directement l'aire / r ^ 2 d'un cercle.

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

Cette fonction calculera pi en comptant le nombre de pixels dans un cercle de rayon rpuis en divisant par r*r(en fait, elle ne calcule qu'un quadrant). Avecr 10000, il est précis à 5 décimales près (3,1415904800). Les paramètres de la fonction sont ignorés, je viens de les déclarer pour économiser de l'espace.

Jason C
la source
6

Javascript, 43 36

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

xdevient zeta(2)=pi^2/6ainsi sqrt(6*x)=pi. (47 caractères)

Après avoir utilisé la propriété distributive et supprimé les accolades de la forboucle, vous obtenez:

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

(43 caractères)

Il renvoie:

3.14159169865946

Éditer:

J'ai trouvé un moyen encore plus court d'utiliser le produit Wallis:

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

(36 caractères)

Il renvoie:

3.141591082792245
Jens Renders
la source
6

Python, Riemann zeta (58 41 car.)

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

Ou épargnez deux caractères, mais utilisez scipy

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

Edit : 16 (!) Caractères enregistrés grâce à amcgregor

Evpok
la source
1
Peut potentiellement éviter l' mathimportation et l' sqrtappel en pivotant vers l'exponentiation à la place:(6*sum(n**-2 for n in range(1,9**9)))**0.5
amcgregor
5

Javascript: 99 caractères

En utilisant la formule donnée par Simon Plouffe en 1996, cela fonctionne avec 6 chiffres de précision après la virgule décimale:

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)

Cette variante plus longue (130 caractères) a une meilleure précision, 15 chiffres après la virgule décimale:

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)

J'ai fait ceci basé dans mes deux réponses à cette question .

Victor Stafusa
la source
5

Rubis, 54 50 49

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

Version en ligne pour les tests.

Une autre version sans créer de tableau (50 caractères):

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

Version en ligne pour les tests.

David Herrmann
la source
Il est intéressant de voir les différences linguistiques que ces solutions compactes peuvent apporter. Par exemple, la traduction Python de ce qui précède est de 105 caractères (après avoir utilisé quelques astuces de compression de code triviales): a=__import__;reduce(a('operator').__add__,a('itertools').imap(lambda e:(-1.0)**e/(2*e+1)*4,xrange(9**6)))- notez l'utilisation de xrange / imap; en Python 3, vous pouvez éviter cela; fondamentalement, je ne veux pas que toute votre RAM soit consommée en construisant une liste avec autant d'entrées.
amcgregor
1
Vous avez absolument raison. Il est souvent très pratique d'utiliser (en particulier Ruby) les fonctions Array et Enumerable, bien que ce ne soit vraiment pas la meilleure idée en termes de performances et de vitesse ... Eh bien, en y réfléchissant, il devrait être possible de faire le calcul avec le Méthode Range.each au lieu de créer une carte.
David Herrmann
Oui, c'est possible - juste un personnage de plus ...
David Herrmann
Votre première réponse n'est pas aussi précise que votre seconde.
Josh
Pourriez-vous élaborer, s'il vous plaît? Même algorithme, même sortie pour moi?
David Herrmann
5

TI CAS, 35

lim(x*(1/(tan((180-360/x)/2))),x,∞)
Le docteur
la source
1
J'ai repensé à cela et j'ai complètement oublié comment cela fonctionne: P
TheDoctor
5

Perl - 35 octets

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

Produit une précision en virgule flottante complète. Une dérivation de la formule utilisée peut être vue ailleurs .

Exemple d'utilisation:

$ perl pi.pl
3.14159265358979

Version de précision arbitraire

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

Prolongez au besoin. La longueur de l'itération (par exemple -329..-1) doit être ajustée pour être environ log 2 (10)3,322 fois le nombre de chiffres.

3.14159265358979323846264338327950288419716939937510582097494459230781640628620899862803482534211707

Ou, en utilisant à la bigintplace:

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

Cela s'exécute sensiblement plus rapidement, mais n'inclut pas de point décimal.

3141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117067
primo
la source
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]);}}

Les sorties:

3.14159265

Aucun calcul impliqué. Recherche simplement la version actuelle de TeX et effectue une analyse primitive du code HTML résultant. Finalement, il deviendra π selon Wikipedia .

BryanJ
la source
J'ai 5 ans de retard, mais c'est une échappatoire standard qui a été créée 4 jours avant cette réponse.
Benjamin Urquhart
5

Python 3 Monte Carlo (103 caractères)

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
Evpok
la source
5

Langue de Game Maker, 34

Suppose que toutes les variables non initialisées sont égales à 0. C'est la valeur par défaut dans certaines versions de Game Maker.

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

Résultat:

3.14159169865946
Timtech
la source
très agréable. aussi, en C float k(){double x=0,i=0;for(;i++<999999;)x+=6/i/i;return sqrt(x);}est plus court que celui-ci
izabera
encore plus court avec 1e8au lieu de 999999
izabera
Pourriez-vous utiliser for(i=1;i<1e8;)x+=6/i/i++;sqrt(x)pour enregistrer un octet (ou alternativement for(i=1;i++<1e8;))?
mbomb007
@ mbomb007 Malheureusement non, GML nécessite les 3 paramètres.
Timtech
4

Java - 83 55

Shorter version thanks to Navin.

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

Old version:

class P{public static void main(String[]a){System.out.print(Math.toRadians(180));}}
TroyAndAbed
la source
This doesn't do any calculation.
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.

Mark Miller
la source
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

Doorknob
la source
3

Ruby, 12

p 1.570796*2

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

Doorknob
la source
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
primo
la source