Hedef
Girdi alan bir program / işlev oluşturun N
, N
rastgele tamsayı çiftlerinin asal olup olmadığını kontrol edin ve geri dönün sqrt(6 * N / #coprime)
.
TL; DR
Bu zorluklar Pi'ye yaklaşmak için sadece doğa ve beyninizi (ve belki de bazı yeniden kullanılabilir kaynakları) gerektiren algoritmaların simülasyonudur. Zombi kıyameti sırasında Pi'ye gerçekten ihtiyacınız varsa, bu yöntemler cephaneyi boşa harcamaz ! Gelecek sekiz zorluk daha var. Öneriler yapmak için sanal alan gönderisine göz atın .
Simülasyon
Neyi simüle ediyoruz? Eh, iki rastgele tamsayının göreceli olarak asal olma olasılığı (yani, coprime veya gcd == 1), yani, Pi'yi 6/Pi/Pi
hesaplamanın doğal bir yolu, iki kova kaya (veya avuç dolusu) çıkarmak olacaktır; onları say; gcd'lerinin 1 olup olmadığını görün ; tekrar et. Bunu birkaç kez yaptıktan sonra , sqrt(6.0 * total / num_coprimes)
doğru eğilim olacaktır Pi
. Kıyamet sonrası dünyada karekök hesaplamak sizi tedirgin ediyorsa, endişelenmeyin! Bunun için Newton'un Yöntemi var.
Bunu nasıl simüle ediyoruz?
- Giriş almak
N
- Aşağıdaki
N
saatleri yapın:- Düzgün bir şekilde rastgele pozitif tamsayılar üretir
i
vej
- İle
1 <= i , j <= 10^6
- Eğer
gcd(i , j) == 1
:result = 1
- Başka:
result = 0
- Düzgün bir şekilde rastgele pozitif tamsayılar üretir
N
Sonuçların toplamını alın ,S
- Dönüş
sqrt(6 * N / S)
Şartname
- Giriş
- Esnek, herhangi bir standart yoldan (örn. Function parametresi, STDIN) ve herhangi bir standart formatta (örn. String, Binary) girdi alın
- Çıktı
- Esnek, standart yollardan herhangi birinde çıktı ver (ör. İade, baskı)
- Beyaz boşluk, arkadaki boşluk ve beyaz boşluk kabul edilebilir
- Doğruluk, lütfen en az 4 ondalık doğruluk yeri sağlayın (örn.
3.1416
)
- puanlama
- En kısa kod kazanır!
Test Kılıfları
Çıktınız rastgele şans nedeniyle bunlarla aynı çizgide olmayabilir. Ancak ortalama olarak, verilen değer için bu kadar doğruluk elde etmelisiniz N
.
Input -> Output
----- ------
100 -> 3.????
10000 -> 3.1???
1000000 -> 3.14??
N=10^6
.
N = 1000000
yoksa programN
çok büyükse, örneğin bir yığın taşması döndürürse sorun olur mu?