Schreiben Sie ein Programm, um die ersten 500 Stellen von pi zu berechnen. Beachten Sie dabei die folgenden Regeln:
- Es muss weniger als 500 Zeichen lang sein.
- Es darf weder "pi", "math.pi" oder ähnliche pi-Konstanten enthalten, noch darf es eine Bibliotheksfunktion zur Berechnung von pi aufrufen.
- Möglicherweise werden die Ziffern "3", "1" und "4" nicht nacheinander verwendet.
- Es muss in einer angemessenen Zeit (unter 1 Minute) auf einem modernen Computer ausgeführt werden.
Das kürzeste Programm gewinnt.
code-golf
restricted-source
pi
Thomas O.
quelle
quelle
Antworten:
Golfscript - 29 Zeichen
Ich werde die Analyse später veröffentlichen
quelle
Mathematica (34 Zeichen): (ohne "Schummeln" mit Trigger)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Um die Magie hier zu erklären:
Integrate[function, lower, upper]
Gibt Ihnen den Bereich unter der Kurve "Funktion" von "Unter" nach "Ober". In diesem Fall ist dies[1-x^2]^.5
die Formel, die die obere Hälfte eines Kreises mit dem Radius 1 beschreibt. Da der Kreis einen Radius von 1 hat, ist er für Werte von x kleiner als -1 oder größer als 1 nicht vorhanden. Daher finden wir die Fläche eines halben Kreises. Wenn wir mit 2 multiplizieren, erhalten wir die Fläche innerhalb eines Kreises mit dem Radius 1, der pi entspricht.quelle
sqrt[1-x^2]
zu(1-x^2)^.5)
Python (83 Zeichen)
quelle
PARI / GP, 14
Sie können das Auslösen vermeiden, indem Sie die zweite Zeile durch ersetzen
oder
oder
oder
oder
quelle
bc -l (22 = 5 Befehlszeile + 17 Programm)
quelle
Mathematica (17 Bytes)
Gültigkeitsnachweis .
quelle
Python3 136
Verwendet die Madhava- Formel.
Python3 164
Verwendet diese Formel.
quelle
Mathematica - 50
quelle
Pyth , 21
Verwendet diesen Algorithmus:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
in den Kommentaren der Golfscript-Antwort gefunden.quelle
r
Operation wurde kürzlich auf eine Weise geändert, die diese Antwort gebrochen hat. Ändern Sie das1
in ein0
, und es wird in aktuellen Pyth funktionieren.Axiom, 80 Bytes
als Referenz https://tuts4you.com/download.php?view.452 ; Dies wäre eine Annäherung an 6 * arctg (1 / sqrt (3)) =% pi und es würde eine Reihenerweiterung für arctg verwendet
quelle
JavaScript, 68 Bytes
Probieren Sie es online!
quelle