Oldukça hızlı bir beyaz su nehrinde bir kanoyla kürek çekiyorsunuz. Birden kürekleriniz patlar ve kendinizi herhangi bir kürek çekmeden hızlı bir şekilde nehirden aşağı atlayan tehlikeli bir durumda bulursunuz. Neyse ki, hala programlama becerileriniz var, bu yüzden kanolarda hayatta kalmanıza yardımcı olmak için kano tarafında bir program açmaya karar veriyorsunuz. Bununla birlikte, kano tarafında programınızı yazmak için çok fazla yüzey alanı yoktur, bu nedenle programı mümkün olduğunca kısa tutmalısınız.
Nehir 8'e 16'lık bir ızgara olarak temsil edilebilir. Biz sayılarla sütunları etiketleyecektir 0
için 7
ve numaraları ile satır 0
için 15
.
y
--------15
--------14
--------13
--------12
--------11
--------10
--------9
--------8
--------7
--------6
--------5
--------4
--------3
--------2
--------1
--------0
01234567
x
Yukarıda: Engelsiz, tamamen sakin, sıradan bir nehir. Doğal olarak, bu bulunduğunuz nehir değil.
Koordinattan (4, 0) başlıyorsunuz ve oradan nehre (yani vektör (0,1)
) kadar kontrol edilemeyen bir kayaya ( o
bu örneklerde temsil edilen) temsil edilene kadar kontrol edilemiyor . Bir kayaya çarptığınızda, kayadan sola doğru hareket etme şansı (yani vektör (-1,1)
) ve% 45'i kayadan sağa doğru hareket etme şansı (yani vektör ) elde edersiniz (1,1)
. Kano en sol veya sağ sütunlarda ise, daima merkeze doğru hareket eder. Kaya yoksa, dümdüz yukarı doğru hareket eder.
y
----x---15
----xo--14
-o--x---13
----x---12
---ox---11
---x----10
---xo---9
---ox---8
----xo--7
-----x--6
----ox--5
-o--x---4
----x---3
----xo--2
----x---1
----x---0
01234567
Üstte: Kano karakterini kullanarak gösterilen olası bir rota x
Nehir haritası göz önüne alındığında, kano bitirme olasılığını belirli bir sütuna verebilecek bir program yazın.
Hangi yöntemin programınız için uygun olduğunu kabul edin (örn. STDIN, komut satırı argümanı, raw_input()
bir dosyadan okuma, vb.). Girişin ilk bölümü 0'dan 7'ye kadar olan tek bir tamsayıdır, programın olasılık bulacağı sütunu temsil eder. Bunu takiben x,y
, taşların pozisyonunu temsil eden formda bulunan bir listeler listelenmiştir .
Bir örnek:
Giriş:
4 4,1 5,5 3,5
Bu, (4,1), (5,5) ve (3,5) konumlarında kayalar bulunan bir nehri gösterir ve 4. sütunda biten kano olasılığını sorar.
Çıktı:
0.495
Bu örnekte, kayaların konumlarının simetrik olduğunu ve sorunun binom dağılımında çözülmesini sağladığını unutmayın. Bu her zaman böyle olmayacak!
Ayrıca, nehir her zaman geçilebilir olacak. Yani, yatay olarak birbirine bitişik yerleştirilmiş iki kaya asla olmayacak. İmkansız bir dava örneği için Glenn'in yorumuna bakınız .
Bu kod golf, yani en düşük karakter sayısı kazanır. Şartname açık değilse yorumlarda soru sormaktan çekinmeyin.