Knockout, oyuncuların sırayla ateş ettiği bir basketbol oyunudur. Her biri bu oyunculardan birini "öldürme" olan iki kişilik yarışmalar dizisi olarak oynanır.
Oyuncuların A B C D
ve 0.1 0.2 0.3 0.4
yarışmadaki diğer oyuncudan bağımsız olarak, atış ve sepet yapma şanslarının sırasıyla olduğunu varsayalım . Çizginin önündeki iki oyuncu A
ve B
"kavga". Yana A
ilk gider, öyle savunucusu yok olma tehlikesiyle karşı karşıya, ve B
bir saldırganın değil, hemen ortadan kaldırılması tehlikesi. A
önce vuruyor. Eğer A
bunu yapar, A
başarıyla savundu ve sıranın arkasına gider. Çizgi olarak değişir B C D A
. Eğer A
başaramazsa, B
vuruyor. Eğer yaparsa B
, o zaman A
dışarı çıkar ve B
çizginin arkasına gider, böylece çizgi olur C D B
. Eğer ikisi deA
veya B
bunu yapmazsa, işlem bir sepet A
yapana A
veya tekrarlayana kadar tekrar çekim yaparak tekrar eder B
.
Çizginin olarak değiştirildiğini B C D A
( A
başarıyla savunduğunu) varsayalım . Şimdi B
ve C
"savaş" B
, savunucu ve C
saldırgan olarak. Bu işlem yalnızca bir kişi kalana kadar tekrarlanır. O kişi kazanır.
Senin görevin, sepet yapma şansı göz önüne alındığında her bir kişinin kazanma olasılıklarını hesaplamaktır.
Giriş :
Gibi sayıların, bir listesi 0.1 0.2
veya 0.5 0.5 0.5 0.5
, n inci sayı o şans n inci oyuncu bir sepet yapacaktır. Bu girdiyi, bir işleve parametreler de dahil olmak üzere istediğiniz herhangi bir biçimde alabilirsiniz.
Çıktı :
Sayılar, bir listesi n inci sayı o şans n inci oyuncu oyunu kazanır. Sayılarınız en az iki ondalık basamağa kadar en az% 90 oranında doğru olmalıdır. Bu, simülasyon tabanlı bir yaklaşım kullanabileceğiniz anlamına gelir. Bununla birlikte, kodunuz simülasyon tabanlı değilse ( en az 6 ondalık basamağa doğru bir cevap vermeniz garanti edilir), puanınızdan% 30 oranında uzaklaşın.
Örnekler arasında 0.5 0.5
: Oyuncuları arayın A
ve B
. Izin vermek p
A olasılığı olasılığı olsun . A
Bir sahiptir 2/3
başarıyla savunan şansını (bir var çünkü 1/2
şans olduğunu A
skorları, bir 1/4
şans olduğunu A
özlüyor ve B
skorları ve 1/4
şans o bayan ve işlem tekrar ikisi). Eğer A
savunamazsa, elenir ve B
kazanır. Eğer A
savunur, daha sonra hat haline gelir B A
. Durum simetrik olduğu için A
kazanma olasılığı (1 - p)
. Biz:
p = 2/3 * (1 - p) + 1/3 * 0
. Çözüyoruz p = 2/5
. Çıktı 2/5 3/5
veya olmalıdır 0.4 0.6
.
Daha karmaşık örnekler yapma olasılığı ile yeterince iyi değilim.
Daha fazla test vakasına ihtiyacınız varsa, işte birkaç tane:
0.1 0.2 0.3 0.4 --> 0.01 0.12 0.25 0.62
0.99 0.99 --> 0.5 0.5 (it's not exact, but if you round to two decimal places, you get 0.5 and 0.5)