Tulis program untuk menghitung 500 digit pi pertama, memenuhi aturan di bawah ini:
- Panjangnya harus kurang dari 500 karakter.
- Itu tidak dapat menyertakan "pi", "math.pi" atau konstanta pi serupa, juga tidak dapat memanggil fungsi perpustakaan untuk menghitung pi.
- Ini tidak boleh menggunakan angka "3", "1" dan "4" secara berurutan.
- Itu harus dijalankan dalam waktu yang wajar (di bawah 1 menit) pada komputer modern.
Program terpendek menang.
code-golf
restricted-source
pi
Thomas O
sumber
sumber
Jawaban:
Golfscript - 29 karakter
Saya akan posting analisis nanti
sumber
Mathematica (34 karakter): (tanpa "curang" dengan trigonometri)
N[2Integrate[[1-x^2]^.5,-1,1],500]
Jadi, untuk menjelaskan keajaiban di sini:
Integrate[function, lower, upper]
memberi Anda area di bawah kurva "fungsi" dari "lebih rendah" ke "atas". Dalam kasus ini, fungsi itu adalah[1-x^2]^.5
, yang merupakan rumus yang menggambarkan setengah bagian atas lingkaran dengan jari-jari 1. Karena lingkaran memiliki jari-jari 1, ia tidak ada untuk nilai x lebih rendah dari -1 atau lebih tinggi dari 1. Oleh karena itu, kami menemukan luas setengah lingkaran. Ketika kita kalikan dengan 2, maka kita mendapatkan area di dalam lingkaran jari-jari 1, yang sama dengan pi.sumber
sqrt[1-x^2]
ke(1-x^2)^.5)
Python (83 karakter)
sumber
PARI / GP, 14
Anda dapat menghindari trigonometri dengan mengganti baris kedua dengan
atau
atau
atau
atau
sumber
bc -l (22 = 5 baris perintah + 17 program)
sumber
Mathematica (17 byte)
Bukti validitas .
sumber
Python3 136
Menggunakan formula Madhava .
Python3 164
Gunakan formula ini .
sumber
Mathematica - 50
sumber
Pyth , 21
Gunakan algoritma ini:
pi = 2 + 1/3*(2 + 2/5*(2 + 3/7*(2 + 4/9*(2 + ...))))
ditemukan dalam komentar jawaban Golfscript.sumber
r
Operasi baru-baru ini diubah dengan cara yang merusak jawaban ini. Ubah1
ke0
, dan itu akan bekerja di Pyth saat ini.Aksioma, 80 byte
untuk referensi https://tuts4you.com/download.php?view.452 ; itu akan menjadi approssimation ke 6 * arctg (1 / sqrt (3)) =% pi dan itu akan menggunakan ekspansi seri untuk arctg
sumber
JavaScript, 68 byte
Cobalah online!
sumber