Napisz program do obliczenia pierwszych 500 cyfr pi, spełniając poniższe zasady:
- Musi mieć mniej niż 500 znaków.
- Nie może zawierać „pi”, „math.pi” ani podobnych stałych pi, ani też nie może wywoływać funkcji bibliotecznej do obliczania pi.
- Nie może używać kolejno cyfr „3”, „1” i „4”.
- Musi zostać wykonany w rozsądnym czasie (poniżej 1 minuty) na nowoczesnym komputerze.
Najkrótszy program wygrywa.
code-golf
restricted-source
pi
Thomas O
źródło
źródło
Odpowiedzi:
Golfscript - 29 znaków
Prześlę analizę później
źródło
Mathematica (34 znaki): (bez „oszustwa” z trigiem)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Tak więc, aby wyjaśnić magię tutaj:
Integrate[function, lower, upper]
daje obszar pod krzywą „funkcji” od „dolnej” do „górnej”. W tym przypadku jest to funkcja[1-x^2]^.5
, która jest formułą opisującą górną połowę okręgu o promieniu 1. Ponieważ okrąg ma promień 1, nie istnieje dla wartości x mniejszych niż -1 lub większych niż 1. Dlatego znajdujemy obszar połowy koła. Kiedy pomnożymy przez 2, otrzymamy obszar wewnątrz koła o promieniu 1, który jest równy pi.źródło
sqrt[1-x^2]
na(1-x^2)^.5)
Python (83 znaki)
źródło
PARI / GP, 14
Możesz uniknąć wyzwalania, zastępując drugą linię
lub
lub
lub
lub
źródło
bc -l (22 = 5 wiersza poleceń + 17 programów)
źródło
Mathematica (17 bajtów)
Dowód ważności .
źródło
Python3 136
Wykorzystuje formułę Madhavy .
Python3 164
Używa tej formuły.
źródło
Mathematica - 50
źródło
Pyth , 21 lat
Wykorzystuje ten algorytm:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
znaleziony w komentarzach odpowiedzi Golfscript.źródło
r
Operacja została niedawno zmieniona w sposób, który złamał tę odpowiedź. Zmień na1
a0
, a będzie działać w bieżącym języku Pyth.Aksjomat, 80 bajtów
w celach informacyjnych https://tuts4you.com/download.php?view.452 ; byłoby to approsimacja do 6 * arctg (1 / sqrt (3)) =% pi i użyłby rozszerzenia serii dla arctg
źródło
JavaScript, 68 bajtów
Wypróbuj online!
źródło