On Üç Oyunu
Kombinatorik alanındaki çalışmalarıyla tanınan ünlü Fransız matematikçi Pierre Raymond De Montmart, On Üç Oyunu adlı basit bir oyun önermiştir. 1’den 13’e numaralandırılmış 13 karttan oluşan bir destesin var. Bu desteyi karıştır ve kartları teker teker çek. Bir çakışma (coincidence), kartın üzerindeki numaranın kartın çekildiği sırayla aynı olmasıdır. Örneğin, çektiğin 5. kart 5 ise, bu bir çakışmadır. Tüm kartları hiçbir çakışma olmadan bitirirsen oyunu kazanırsın. Hadi bu oyunu kazanma olasılığını simülasyonla hesaplayalım.
Bu egzersizi tamamlayarak, soyut problemleri olasılıkları tahmin etmek için simülasyon çerçevesine dönüştürme becerini daha da pekiştireceksin.
Bu egzersiz
Python'da İstatistiksel Benzetim
kursunun bir parçasıdırEgzersiz talimatları
- Her çekiliş için,
deckiçindeki kartların tamamını yerine koymadan çek vedrawdeğişkenine ata. - Çekilişte herhangi bir çakışma olup olmadığını kontrol et ve varsa
coincidencessayacını 1 artır. - Kazanma olasılığını, hiçbir çakışma olmayan oyunların oranı olarak hesapla ve sonucu yazdırmak için
prob_of_winningdeğişkenini kullan.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Pre-set constant variables
deck, sims, coincidences = np.arange(1, 14), 10000, 0
for _ in range(sims):
# Draw all the cards without replacement to simulate one game
draw = np.random.choice(____, size=____, replace=____)
# Check if there are any coincidences
coincidence = (draw == list(np.arange(1, 14))).any()
if coincidence == ____:
coincidences += 1
# Calculate probability of winning
prob_of_winning = ____
print("Probability of winning = {}".format(____))