Écrivez un programme pour calculer les 500 premiers chiffres de pi, en respectant les règles ci-dessous:
- Il doit comporter moins de 500 caractères.
- Il ne peut pas inclure "pi", "math.pi" ou des constantes pi similaires, ni appeler une fonction de bibliothèque pour calculer pi.
- Il ne peut pas utiliser les chiffres "3", "1" et "4" consécutivement.
- Il doit s'exécuter dans un délai raisonnable (moins de 1 minute) sur un ordinateur moderne.
Le programme le plus court gagne.
code-golf
restricted-source
pi
Thomas O
la source
la source
Réponses:
Golfscript - 29 caractères
Je posterai l'analyse plus tard
la source
Mathematica (34 caractères): (sans "tricher" avec trig)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Donc, pour expliquer la magie ici:
Integrate[function, lower, upper]
vous donne l'aire sous la courbe "fonction" de "inférieur" à "supérieur". Dans ce cas, cette fonction est[1-x^2]^.5
, qui est une formule qui décrit la moitié supérieure d'un cercle de rayon 1. Étant donné que le cercle a un rayon de 1, il n'existe pas pour les valeurs de x inférieures à -1 ou supérieures à 1. Par conséquent, nous trouvons l'aire de la moitié d'un cercle. Lorsque nous multiplions par 2, nous obtenons alors l'aire à l'intérieur d'un cercle de rayon 1, qui est égal à pi.la source
sqrt[1-x^2]
pour(1-x^2)^.5)
Python (83 caractères)
la source
PARI / GP, 14
Vous pouvez éviter le trig en remplaçant la deuxième ligne par
ou
ou
ou
ou
la source
bc -l (22 = 5 ligne de commande + 17 programme)
la source
Mathematica (17 octets)
Preuve de validité .
la source
Python3 136
Utilise la formule de Madhava .
Python3 164
Utilise cette formule.
la source
Mathematica - 50
la source
Pyth , 21
Utilise cet algorithme:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
trouvé dans les commentaires de la réponse Golfscript.la source
r
opération a été récemment modifiée d'une manière qui a brisé cette réponse. Changez le1
en a0
, et cela fonctionnera dans le Pyth actuel.Axiome, 80 octets
pour référence https://tuts4you.com/download.php?view.452 ; ce serait une appréciation à 6 * arctg (1 / sqrt (3)) =% pi et il utiliserait l'expansion de la série pour arctg
la source
JavaScript, 68 octets
Essayez-le en ligne!
la source