Tujuan
Hasilkan ( N
) segmen garis acak dengan panjang seragam ( l
), periksa apakah mereka melintasi t
garis paralel yang sama ( ).
Simulasi
Apa yang kita simulasikan? Jarum Buffon . Menghaluskan pasir di kotak pasir Anda, menggambar satu set garis paralel sama spasi (panggilan jarak di antara t
). Ambil tongkat panjang lurus l
dan jatuhkan N
kali ke dalam kotak pasir. Biarkan berapa kali melewati batas c
. Lalu Pi = (2 * l * n) / (t * c)
!
Bagaimana kita mensimulasikan ini?
- Ambil input
N,t,l
- Dengan
N, t, l
semua bilangan bulat positif - Lakukan waktu berikut
N
:- Hasilkan koordinat bilangan bulat acak yang seragam
x,y
- Dengan
1 <= x, y <= 10^6
x,y
adalah pusat segmen garis panjangl
- Hasilkan bilangan bulat acak seragam
a
- Dengan
1 <= a <= 180
- Membiarkan
P
menjadi titik di mana segmen garis akan melintasi sumbu x - Lalu
a
adalah sudutnya(x,y), P, (inf,0)
- Hasilkan koordinat bilangan bulat acak yang seragam
- Hitung jumlah,
c
segmen segmen yang melewati garisx = i*t
untuk bilangan bulat apa puni
- Kembali
(2 * l * N) / (t * c)
Spesifikasi
- Memasukkan
- Fleksibel, mengambil input dengan cara standar apa pun (misalnya parameter fungsi, STDIN) dan dalam format standar apa pun (mis. String, Binary)
- Keluaran
- Fleksibel, memberikan hasil dengan cara standar apa pun (mis. Mengembalikan, mencetak)
- Ruang putih, trailing dan ruang putih utama dapat diterima
- Akurasi, harap berikan setidaknya 4 tempat desimal akurasi (yaitu
3.1416
)
- Mencetak gol
- Kode terpendek menang!
Uji Kasus
Output Anda mungkin tidak sejalan dengan ini, karena kebetulan acak. Tetapi rata-rata, Anda harus mendapatkan akurasi sebanyak ini untuk nilai yang diberikan N, t, l
.
Input (N,t,l) -> Output
----------- ------
10,10,5 -> ?.????
10,100,50 -> ?.????
1000,1000,600 -> 3.????
10000,1000,700 -> 3.1???
100000,1000,700 -> 3.14??
TL; DR
Tantangan-tantangan ini adalah simulasi algoritma yang hanya membutuhkan alam dan otak Anda (dan mungkin beberapa sumber daya yang dapat digunakan kembali) untuk memperkirakan Pi. Jika Anda benar-benar membutuhkan Pi selama kiamat zombie, metode ini tidak membuang - buang amunisi ! Ada sembilan tantangan total.
a
juga dibuat dengan metode lain, jika seragam? (memikirkan Bubble Gauss 2D)
t > l
? Dua solusi di bawah ini membuat asumsi ini, yang menyederhanakan pemeriksaan untuk persimpangan cukup sedikit.