Tembel bir fizikçi çift yarık deneyi yapmakla görevlidir. Ancak, tembeldirler ve tüm ekipmanı kendileri kurmaktan rahatsız olmazlar ve bu nedenle etkileri simüle ederler. Programlayamazlar, bu yüzden yardıma ihtiyaç duyacaklar. Tembel oldukları için programınız mümkün olduğunca kısa olmalıdır.
Garip bir pozitif tamsayı n
( n >= 1
ve n % 2 == 1
) verildiğinde simülasyonu gerçekleştirin.
Nasıl çalışır
Boş bir tuvalle başlayacaksınız ve her çerçeve tek bir ışık parçacığı yarıklardan geçecek ve tuval üzerine inecek. Parçacık bir maksimuma inecektir:
n = 1
:
+-----+
| |
| 1/2 |
| |
+-----+
n = 3
:
+-----+ +-----+ +-----+
| | | | | |
| 1/4 | | 1/2 | | 1/4 |
| | | | | |
+-----+ +-----+ +-----+
n = 5
:
+-----+ +-----+ +-----+ +-----+ +-----+
| | | | | | | | | |
| 1/8 | | 1/4 | | 1/2 | | 1/4 | | 1/8 |
| | | | | | | | | |
+-----+ +-----+ +-----+ +-----+ +-----+
vb.
Örneğin n=5
orta kutuyu işaretliyoruz, içine% 50 düşme şansı var. Çerçevenin sonuna düşerse, sonraki ikisine geçmezseniz, bunlara% 25 düşme şansı vardır. Çerçevenin sonuna düşerse, sonraki ikisine geçmezseniz, bunlarda% 12.5'lik bir düşüş şansı vardır. Düşmezse önemli değil, hala çerçevenin sonu.
Şansın nasıl hesaplanacağı konusunda bazı karışıklıklar olmuştur, bunların çoğu, onları 1'e kadar olması gereken olasılıklar olarak düşünmesinden kaynaklanmaktadır. Bu fikri zihninizden çıkarın ve sizin için biraz temizlemelidir.
- En fazla bir parçacık kare başına delik açacaktır, yani bir parçacık o kareye hiç inmeyebilir.
- Bir parçacık yazdırılabilir herhangi bir karakterle temsil edilebilir.
- Parçacık, rastgele bir şansla kutunun herhangi bir yerine inecektir.
- Kutuların genişliği
2n-1
tuvalin boyutu olmalıdır . Bu yüzden tuvalin genişliğinin thn=5
olması gerekir1/9
. - Kutuların yüksekliği tuvalin yüksekliği olmalıdır.
- Parçacık kutuların dışına hiç inmemelidir.
- Bir parçacık zaten seçilmiş olan bir noktaya düştüyse, oraya tekrar inebilir.
- Yukarıdaki ascii kutuları netlik içindir, çizilmemelidir.
- Makul olduğu sürece kendi tuval boyutunuzu seçebilirsiniz. Örneğin, yalnızca birkaç piksel yüksekliğinde olmamalıdır. Ayrıca üzerindeki tüm kutuları sığdırmalıdır.
- Kodunuz çerçeveler arasında uyuyorsa, bunu bayt sayınıza eklemenize gerek yoktur.
Her maxima, bir minima arasında boşluklar olmalıdır. Bu bir kutu ile aynı genişlikte olmalıdır, ancak hiçbir parçacık oraya inmeyecektir. Aşağıdaki şemaya bakın:
+---+---+---+---+---+
| | | | | |
|max|min|max|min|max|
| | | | | |
+---+---+---+---+---+
Program manuel olarak durdurulana kadar çalıştırılmalıdır.
kurallar
- Bir sahte rasgele sayı üreteci (pRNG) iyidir.
- Standart boşluklar yasaktır.
- Giriş herhangi bir makul formatta alınabilir.
- STDOUT'a çıktı almalısınız.
- Bu kod golf bu yüzden en kısa cevap kazanır.
Misal
Aşağıdaki GIF için örnek bir çalışmadır n = 5
. Sadece hızlı bir şekilde çaldı, bu yüzden şans biraz hafif olabilir.