Ana içeriğe atla

Python ile Poker Olasılığı ve İstatistikleri

Python’da olasılık ve istatistiği ele alın: kombinasyonlar ve permütasyonlar, bağımlı ve bağımsız olaylar ile beklenen değeri öğrenin.
Güncel 3 Eki 2026  · 15 dk. oku

Yapay Zeka ile Keşfedin

ChatGPTClaudePerplexity

Veri bilimciler, tahminler yapmak ve kararları optimize etmek için makine öğrenmesi modelleri oluştururlar. Çevrim içi pokerde seçenekler bahis yapmak, görmek ya da çekilmektir. Ancak bu kararları almak için yazılım kullanmanıza izin verilmez. Çoğu çevrim içi poker sitesi kurallarda burada çizgiyi çeker. Bir makine öğrenmesi modelini eğitemediğiniz için beyninizi eğitmelisiniz. Bu da poker masası dışında, pek çok farklı olasılık ve istatistik kavramını kullanan bitmek bilmeyen sayıda equity (beklenen değer) hesaplaması yapmayı gerektirir.

Bu eğitimde, bir deste kart ve genel poker durumlarıyla bu kavramlardan bazılarını öğreneceksiniz.

Poker Kart Afişi

İstatistikleri Python ile ele almak ilginizi çekiyorsa, DataCamp'in Python'da İstatistiksel Düşünme kursuna göz atın.

Kişisel Motivasyon

Yıllarca, profesyonel olarak çevrim içi poker oynayarak geçimimi sağladım. Veri bilimi benim için doğal bir ilerlemeydi; çünkü çevrim içi pokerden kâr elde etmekle benzer bir beceri seti gerektirir. veri bilimi ile pokerin ortak yanları hakkında bir blog yazdım ve çevrim içi bir poker sitesinde her el oynandığında bir el geçmişi oluştuğundan bahsettim. Bu el geçmişleri, o elde her oyuncunun ne yaptığını açıklar. Bu veriden yararlanmak için Hold’em Manager (poker için Tableau gibi düşünün) adlı bir yazılım kullandım. Hold'em Manager, bu el geçmişlerinin her birini gerçek zamanlı olarak bir PostgreSQL veritabanına indirir; böylece rakiplerinizin eğilimlerini takip edebilirsiniz.

Olasılık Teorisi: Bir Giriş

İşe koyulmadan önce, olasılık teorisinin ne olduğunu ve veri bilimine girerken bunu öğrenmenin neden önemli olduğunu düşünmenin zamanı geldi. Ayrıca, eğitim boyunca işinize yarayacak bazı temel kavramları öğrenecek ve tekil olayların olasılığını nasıl hesaplayacağınızı göreceksiniz.

Günlük hayatta, piyangoyu kazanma, futbol takımınızın galibiyeti ya da sevdiğiniz bir ayakkabıda indirim gibi bir olayın olasılıklarının ne olduğunu sıkça merak edersiniz. "Ne kadar şans var ki..." muhtemelen çok sık kullandığınız bir ifadedir. Bir olayın gerçekleşme şansını belirlemeye "olasılık" denir.

Bu tür olasılık, matematiksel bakış açısından, yani matematiğin bir dalı olan olasılık teorisindeki anlayıştan farklıdır. Matematikte "olasılık" üzerine iki geniş yorum kategorisi vardır: "fiziksel" ve "kanıta dayalı" olasılıklar.

İlki, nesnel ya da frekansçı olasılıklar olarak da adlandırılır ve yazı tura atma, rulet çarkı ya da zar atma gibi rastgele fiziksel sistemlerle ilişkilidir. Bu tür sistemlerde, belirli bir olay türü, uzun bir deneme serisinde kalıcı bir oranda veya "göreli sıklıkta" gerçekleşme eğilimindedir.

İkincisi ise Bayesçi olasılık olarak da adlandırılır; herhangi bir rastgele süreç söz konusu olmasa bile, bir ifadenin öznel akla yatkınlığını veya mevcut kanıtların o ifadeyi destekleme derecesini temsil etmek üzere herhangi bir ifadeye atanabilir. Çoğu yaklaşımda, kanıta dayalı olasılıklar, belirli oranlarda kumar oynama eğilimleri açısından tanımlanan inanç dereceleridir.

Not edin ki olasılık teorisi esas olarak gelecekteki olayların olma olasılığını tahmin etmekle ilgilenirken, istatistik geçmiş olayların sıklığını analiz eder. Bu da, veri bilimci olmak istiyorsanız olasılık teorisinin ele almanız gereken temel konulardan biri olmasını açıklar: Bildiğiniz gibi, veri bilimi ve makine öğrenmesinde, gelecekteki olayları tahmin etmek için geçmişte gerçekleşmiş olaylardan elde edilen verileri kullanırsınız.

Dolayısıyla olasılık teorisi sezgisel olarak anlaşılması zor kabul edilse de, kavramlar veri bilimi ve öngörüsel analiz için kritik önemdedir.

Temel Kavramlar ve Semboller

Bu eğitim için farkında olmanız gereken bazı temel kavramlar, çoğunlukla frekansçı olasılık perspektifiyle ilgilidir; zira bu eğitim 52 kartlık bir desteyle çalışır.

Bu bakış açısından, olasılık teorisinin temel bileşeni, en azından varsayımsal olarak, özünde aynı koşullar altında tekrarlanabilen bir deneydir. Bu deney, farklı denemelerde veya deneyin tekil icralarında farklı sonuçlara yol açabilir. Bir deneyin tüm olası sonuçlarının veya neticelerinin kümesine "örnek uzayı" denir. Bir olay, örnek uzayın iyi tanımlanmış bir alt kümesidir.

Bunların hepsi oldukça teorik.

Birkaç örnek düşünelim:

  • Biraz klişe bir örnek yazı tura atmaktır. Bu durumda deney, aslında bir paranın atılmasıdır. Parayı birden çok kez atabilirsiniz ve bu denemelerin her biri farklı sonuçlar verebilir. İki olası sonuç olduğundan—yazı veya tura—örnek uzay 2'dir. Ancak "para atma" olayı örneğin tek bir "Yazı" sonucundan oluşabilir. Benzer şekilde, parayı iki kez attığınızda, "ilk atışta Yazı gelmesi" olayınızın sonucu "Yazı-Yazı" ya da "Yazı-Tura" olabilir.
  • Daha az bariz bir örnek, bir küreyi döndürüp parmağınızı üzerine koyarak durdurduğunuz bir deneydir. Küreyi birden çok kez döndürebilirsiniz ve her seferinde farklı sonuçlar elde edebilirsiniz — Parmağınız ya karaya ya da suya gelir. Bu da örnek uzayın 2 olduğu anlamına gelir. "Parmağım karada" olayı "Kara - Su" veya "Kara - Kara" sonucuna sahip olabilir.
  • Son bir örnek de zar atma deneyidir. Zarı birden çok kez atabilirsiniz ve tüm bu atışların farklı sonuçları olabilir: Tam olarak 6, çünkü zarınızda 6 sayı vardır (1,2,3,4,5,6). "İki atışın toplamının 10 olması" olayı 10'dan oluşabilirken, "sayının çift olması" olayı 2, 4 veya 6'dan oluşabilir.

Artık eğitim boyunca kullanacağınız temel kavramlara dair bir fikriniz olduğuna göre, karşılaşacağınız bazı olasılık sembollerini de ele almanın zamanı geldi:

Sembol Anlam
$$\cap$$ Ve
$$\cup$$ Veya
| Verildiğinde

Tekil Olaylar İçin Olasılık Hesaplama

Artık tamamen güncelsiniz; yazı tura atıldığında tura gelmesi gibi tek bir olayın gerçekleşme olasılığını belirlemeye başlayabilirsiniz. Bu olasılığı hesaplamak için, olaya ilişkin mümkün olan sonuçların sayısını örnek uzayına bölersiniz.

Bu, önce paranın tura gelmesi için kaç olası yol olduğuna ve olası sonuçların sayısına bakmanız gerektiği anlamına gelir. İlki 1'dir; çünkü turayı elde etmenin yalnızca bir yolu vardır. İkincisi 2'dir; çünkü parayı attığınızda ya yazı ya tura gelir.

Özetle, A olayı olasılığının hesabı şu şekilde görünür:

$$P(A) = \frac{A\'ya \ elverişli \ olay \ sonuçları}{Örnek \ uzayı}$$

Yazı tura örneğinde, paranın tura gelme olasılığı 1/2 veya 0,5'tir.

Not edin ki olasılık her zaman 0 ile 1 arasındadır; 0, olayın olmasının pek olası olmadığını, 1 ise olayın olmasının olası olduğunu gösterir.

Şimdi bir olayın olasılığını hesaplayacağınız ikinci bir örneği ele alalım.

Kart Destesi İçin İstatistikler Örnek Uzayı

Standart bir destede 52 kart vardır ve bu 52 kartın 4'ü As'tır. Yukarıdaki yazı tura örneğini izleyerek As çekme olasılığını bulmak için, olaya ait olası sonuçların sayısını (4) örnek uzayına (52) bölersiniz:

$$P(A) = \frac{4}{52}$$

Not edin ki $A$, "As çekmek" olayını temsil eder.

Şimdi, Python yardımıyla As çekme olasılığını belirleyin:

# Sample Space
cards = 52

# Outcomes
aces = 4

# Divide possible outcomes by the sample set
ace_probability = aces / cards

# Print probability rounded to two decimal places
print(round(ace_probability, 2))
0.08

Standart bir desteden As çekme olasılığı 0,08'dir. Olasılığı yüzde biçiminde belirlemek için, 100 ile çarpmanız yeterlidir.

# Ace Probability Percent Code
ace_probability_percent = ace_probability * 100

# Print probability percent rounded to one decimal place
print(str(round(ace_probability_percent, 0)) + '%')
8.0%

As çekme olasılığı yüzde olarak %8’dir.

Artık olasılıkları hesapladığınız iki örnek gördüğünüze göre, örneğin bir Kupa çekme, bir resimli kart (Vale, Kız veya Papaz) çekme ya da ikisinin birleşimi olan Kupa Kızı çekme olasılığını belirlemek için olasılık hesaplamalarınızı genişletebileceğinizi varsaymak kolaydır.

Bu gibi durumlarda, kodu çok tekrar kullanacağınız için, yüzde biçiminde olay olasılığını bulmak üzere event_outcomes ve sample_space parametrelerini alan bir Kullanıcı Tanımlı Fonksiyon (UDF) event_probability() oluşturmak isteyebilirsiniz:

# Create function that returns probability percent rounded to one decimal place
def event_probability(event_outcomes, sample_space):
    probability = (event_outcomes / sample_space) * 100
    return round(probability, 1)

# Sample Space
cards = 52

# Determine the probability of drawing a heart
hearts = 13
heart_probability = event_probability(hearts, cards)

# Determine the probability of drawing a face card
face_cards = 12
face_card_probability = event_probability(face_cards, cards)

# Determine the probability of drawing the queen of hearts
queen_of_hearts = 1
queen_of_hearts_probability = event_probability(queen_of_hearts, cards)

# Print each probability
print(str(heart_probability) + '%')
print(str(face_card_probability) + '%')
print(str(queen_of_hearts_probability) + '%')
25.0%
23.1%
1.9%

Bu sonuçlar muhtemelen sizi şaşırtmıyor: Beklediğiniz gibi, Kupa Kızı çekme şansı, sıradan bir resimli kart ya da bir Kupa çekme şansından çok daha düşüktür.

Kombinasyonlar ve Permütasyonlarla Olasılık

Bir önceki bölümde, örnek uzayınızın büyüklüğünü belirlemenin olasılıkları hesaplamanın anahtarı olduğunu gördünüz. Ancak bu bazen zorlu olabilir!

Neyse ki sayma işini kolaylaştırmanın yolları var. Bu yollardan ikisi permütasyonlar ve kombinasyonlardır. Bu bölümde, her iki kavramın da tam olarak ne anlama geldiğini ve örnek uzayınızın boyutunu hesaplamak için nasıl kullanabileceğinizi göreceksiniz!

Permütasyonlar

Permütasyonlar, genellikle yerine koymadan, verilen bir kümeden belirli büyüklükte bir alt kümenin kaç farklı şekilde sıralanabileceğini ifade eder. Buna örnek, tekrarlanan rakam olmayan 4 haneli bir PIN’dir. Rakamların tekrarlanmama olasılığı aşağıdaki hesaplamayla bulunabilir:

$$10 \times 9 \times 8 \times 7$$.

Seçebileceğiniz 10 rakam vardır, ancak yerine koymadan çalıştığınız için 4 haneli PIN için her bir rakamı seçtiğinizde bir seçenek azalır. Bu, PIN’inizin ilk hanesini seçerken 10 rakam arasından (0’dan 9’a) seçim yapabileceğiniz, ikinci hane içinse yalnızca 9 seçeneğiniz olacağı anlamına gelir, vb.

Daha üst düzeyde, yukarıdaki paragrafın aslında iki şeyi düşündüğünü görürsünüz: (1) seçilecek rakamlar ve (2) gerçekte seçtiğiniz rakamlar. Yukarıdaki örnekte, 10; 0 ile 9 arasındaki tüm sayıları düşündüğünüz için seçebileceğiniz rakamların sayısıdır. Ancak gerçekte seçtiğiniz öge sayısı 4’tür; çünkü 4 haneli bir PIN’iniz vardır.

Permütasyonları hesaplarken, bu, gerçekte $$10 \times 9 \times 8 \times 7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1$$ olan tam seçim kümesini dikkate aldığınız ve bu hesabın sonucunu, seçilecek rakamlar (10) ile gerçekte seçtiğiniz rakamlar (4) arasındaki farka böldüğünüz anlamına gelir. Olasılıkları düşündüğünüz için bu fark $$6 \times 5 \times 4 \times 3 \times 2 \times 1$$ olacaktır.

Not edin ki yukarıdakini şu şekilde de yazabilirsiniz

$$10P4 = \frac{10!}{(10 - 4)!}$$

Denklemde "10!" ve "6!" ya da "10 faktöriyel" ve "6 faktöriyel" olduğunu fark edeceksiniz; bu, 1’den başlayıp 10’a veya 6’ya kadar olan ardışık pozitif tamsayıların birbiriyle çarpılacağını belirtmek için kullanılır.

Bu hesabın sonucu 5040 permütasyondur. Not edin ki bu, yukarıda 10, 9, 8 ve 7’yi çarptığınızda yaptığınız hesapla tam olarak aynıdır.

Yukarıdaki hesapları genelleştirirsek, permütasyonları hesaplama formülü şöyledir:

$$nPk = \frac{n!}{(n - k)!}$$

Bir örnekle pratik yapalım!

Cepten Asların (pocket Aces) permütasyon sayısını bulmak için, yalnızca 2’sini seçtiğiniz durumda, seçilecek asların tam kümesini (4) ve gerçekte seçtiğiniz as sayısını (2) dikkate alırsınız:

$$4P2 = \frac{4!}{(4 - 2)!}$$

Kombinasyonlar

Permütasyonlarda sıranın önemli olduğunu gördünüz. Ancak kombinasyonlarda durum böyle değildir: sıra önemli değildir. Kombinasyonlar, verilen bir kümeden belirli büyüklükte bir alt kümenin kaç farklı şekilde seçilebileceğini ifade eder.

Buradaki örnek şu durumdur: 52 karttan oluşan bir kart destesine sahipsiniz. Desteden üç kart çıkarılacak. Bu üç kartı kaç farklı şekilde seçebilirsiniz?

Aslında bu $$52 \times 51 \times 50$$ olmalıdır ve bu, az önce kullandığınız permütasyon formülüyle aynıdır! Ancak kombinasyonlarda sırayı hesaba katmazsınız. Bu, gerçekte kaç kombinasyonunuz olduğunu bulmak isterseniz, tüm permütasyonları oluşturup tüm tekrarları yani $$3 \times 2 \times 1$$ ile böleceğiniz anlamına gelir.

Bu da kombinasyon hesabınızın şöyle görüneceği anlamına gelir:

$$52C3 = \frac{\frac {52!}{(52-3)!}}{3!}$$

Bu hesap şu formüle genellenebilir:

$$nCk = \frac{nPk}{k!}$$

Burada payın, az önce gördüğünüz permütasyon formülüyle tamamen aynı olduğunu, paydanın ise gerçekte seçeceğiniz kart sayısının faktöriyeli olduğunu açıkça görürsünüz.

Aslarla başka bir örnek düşünün. Bir destede dört As vardır ve cepten Asların tüm farklı kombinasyonları şunlardır;

  1. Kupa Ası / Karo Ası
  2. Kupa Ası / Sinek Ası
  3. Kupa Ası / Maça Ası
  4. Karo Ası / Sinek Ası
  5. Karo Ası / Maça Ası
  6. Sinek Ası / Maça Ası

Cepten Asların altı kombinasyonu vardır. Kombinasyon sayısını bulmak için önce permütasyon sayısını bulmalısınız:

# Permutations Code
import math
n = 4
k = 2

# Determine permutations and print result
Permutations = math.factorial(n) / math.factorial(k)
print(Permutations)
12.0

Kombinasyon sayısını belirlemek için, permütasyon sayısını alt kümenin boyutunun faktöriyel ine bölmeniz yeterlidir. Texas Hold’em’de dağıtılabilecek başlangıç eli kombinasyonlarının sayısını bulmayı deneyin.

$$52C2 = \frac{52P2}{2!}$$

# Combinations Code
n = 52
k = 2

# Determine Permutations
Permutations = math.factorial(n) / math.factorial(n - k)

# Determine Combinations and print result
Combinations = Permutations / math.factorial(k)
print(Combinations)
1326.0

Bağımsız ve Bağımlı Olaylar

Girişte, bir olayın örnek uzayın iyi tanımlanmış bir alt kümesi olduğunu okudunuz. Olaylar iki kategoriye ayrılabilir: bağımlı veya bağımsız.

Bağımsız olaylar, diğer olay(lar)ın olasılığını etkilemeyen olaylardır. A ve B iki olayı, A olayının gerçekleşip gerçekleşmediğini bilmenin B olayının gerçekleşip gerçekleşmediğine dair hiçbir bilgi vermemesi halinde bağımsızdır.

Örneğin, desteden bir As çekip kartı geri koymanız, desteyi karıştırmanız ve ardından başka bir kart çekmeniz durumunda bu doğrudur. İlk çekilişte As çekme olasılığı, ikincisiyle aynıdır.

Bağımlı olaylar ise diğer olay(lar)ın olasılığını etkileyen olaylardır.

Örneğin, desteden bir kart çekip ilk kartı geri koymadan ikinci bir kart çektiğinizi düşünün. Bu durumda, ilk çekilişte As çekme olasılığı, ikinci çekilişte As çekme olasılığıyla aynı değildir. İlk kart çekildikten sonra örnek uzay 1 azalır, 52’den 51’e düşer. İlk çekilişte gelen karta bağlı olarak, olay sonuçlarının sayısı da değişmiş olabilir. İlk kart As ise, ikinci çekiliş için artık yalnızca 3 As kalır.

Şimdi bu tanımları biçimsel terimlerle ele alalım. A ve B olayları (sıfırdan farklı olasılığa sahip) ancak ve ancak şu eşdeğer ifadelerden biri geçerli olduğunda bağımsızdır: $$P (A ∩ B) = P(A)P(B)$$ $$P (A|B) = P(A)$$ $$P (B|A) = P(B)$$

Başka bir deyişle, A ve B olayları aşağıdaki durumlarda bağımsızdır:

  • A ve B olaylarının gerçekleşme olasılığı, her bir olayın gerçekleşme olasılıklarının çarpımına eşittir.
  • B olayı gerçekleşmişse A olayının gerçekleşme olasılığı, A olayının gerçekleşme olasılığına eşittir.
  • A olayı gerçekleşmişse B olayının gerçekleşme olasılığı, B olayının gerçekleşme olasılığıyla aynıdır.

Şu örneği ele alalım: İlk çekilişte As çekme olasılığını zaten biliyorsunuz. Şimdi, ilk çekilen kart Papaz veya As ise, ikinci çekilişte As çekme olasılığını belirlemeniz gerekiyor:

# Sample Space
cards = 52
cards_drawn = 1 
cards = cards - cards_drawn 

# Determine the probability of drawing an Ace after drawing a King on the first draw
aces = 4
ace_probability1 = event_probability(aces, cards)

# Determine the probability of drawing an Ace after drawing an Ace on the first draw
aces_drawn = 1
aces = aces - aces_drawn
ace_probability2 = event_probability(aces, cards)

# Print each probability
print(ace_probability1)
print(ace_probability2)
7.8
5.9

Pokere özgü ve bağımlı olay kavramıyla ilgili birkaç yaygın durum vardır.

Ancak başlamadan önce biraz arka plan bilgisi yerinde olacaktır. Oyun Texas Hold’em’dir. Standart 52 kartlık bir desteyle oynanan Texas Hold’em, tüm poker varyasyonlarının en popüleridir. Her oyuncuya elde başlamak için iki kart dağıtılır ve el boyunca dağıtılan beş ortak kartla kendi iki kartını birleştirerek mümkün olan en iyi beş kartlı eli yapar. Kartlar dört turda dağıtılır:

  • Pre-Flop: Her oyuncuya "kapalı kartlar" olarak bilinen iki kart dağıtılır
  • Flop: Üç ortak kart dağıtılır
  • Turn: Bir ortak kart dağıtılır
  • River: Son ortak kart dağıtılır

Bağımlı Olaylar: Renk (Flush) Çekişi

Eliniz

kartlar

Ortak Kartlar

kartlar

Turndasınız ve As yüksek Renk için dört karta sahipsiniz. Flush, beş kartın da aynı renkte (örü: karo, kupa, maça, sinek) olduğu güçlü bir poker elidir. Son ortak kart olan River kartının Karo gelme olasılığı nedir?

# Sample Space
cards = 52
hole_cards = 2
turn_community_cards = 4
cards = cards - (hole_cards + turn_community_cards)

# Outcomes
diamonds = 13
diamonds_drawn = 4
# In poker, cards that complete a draw are known as "outs"
outs = diamonds - diamonds_drawn

#Determine river flush probability
river_flush_probability = event_probability(outs, cards)
print(river_flush_probability)
19.6

River’da flush çekişinizi tamamlama şansınız yaklaşık %20’dir. Bir diğeri:

Bağımlı Olaylar: Açık Uçlu Sıralı (Straight) Çekişi

Eliniz

kartlar

Ortak Kartlar

kartlar

Turndasınız ve açık uçlu bir Sıralı çekişiniz var. Straight, beş kartın ardışık olduğu başka bir güçlü eldir. Çekiş açık uçludur; çünkü herhangi bir Sekiz (8, 9, 10, Vale, Kız) veya herhangi bir Papaz (9, 10, Vale, Kız, Papaz) sıralıyı tamamlayacaktır.

River kartının sıralıyı tamamlama olasılığı nedir?

# Sample Space
cards = 52
hole_cards = 2
turn_community_cards = 4
cards = cards - (hole_cards + turn_community_cards)

# Outcomes
eights = 4
kings = 4
outs = eights + kings

# Determine river straight probability
river_straight_probability = event_probability(outs, cards)
print(river_straight_probability)
17.4

River’da sıralı çekişinizi tamamlama şansınız yaklaşık %17’dir.

Birden Fazla Olay

Şimdiye kadar olasılıkları hesaplarken yalnızca tek bir olayı düşündünüz; peki birden fazla olayla uğraşırken ne olur?

Birden fazla olaya örnek olarak, "yulaflı kurabiyelerle çikolata parçalı kurabiyelerle dolu bir kavanozdan dört kurabiye yerken, üç yulaflı kurabiyeyi çikolata parçalı bir kurabiye izlemesinin olasılığı nedir?" sorusu verilebilir. Dört kurabiye yemek aslında dört olaydır.

Birden fazla olay için olasılığı hesaplamak için, esasen olayların sayısını (bu durumda 4) belirlersiniz; sonra her bir olayın ayrı ayrı gerçekleşme olasılığını belirlersiniz ve nihai cevabı elde etmek için bu olasılıkların hepsini çarparsınız. Yukarıda anlatılan örnekte bu 0,5 x 0,5 x 0,5 x 0,5 yani 0,0625 olur.

$$P(Olay A \cap Olay B)=P(Olay A) \times P(Olay A)$$

Not edin ki bu durumda, bir yulaflı kurabiye YEMEK ve başka bir yulaflı kurabiye DAHA yemek ve üçüncü bir yulaflı kurabiye ve son olarak da bir çikolata parçalı kurabiye yemeyi olasılıklarını hesaplıyorsunuz. Hepsinin olması gereken olayları düşünürken olasılıkları çarparsınız.

Oyun kartı desteniz için, "Yerine koymadan seçerken üç Kupa gelme olasılığı nedir?" sorusunu kendinize sorabilirsiniz. Yerine koymadan örneklemek veya seçmek, bir kart seçtiğinizde onu geri koymamak, dolayısıyla nihai seçiminizin aynı kartı içeremeyeceği anlamına gelir. Bu durumda, olasılık hesabınız şöyle olacaktır: 13/52 x 12/51 x 11/50.

Birbirini Dışlayan Olaylar

Birden fazla olayla çalışırken, aynı anda gerçekleşemeyen; yani birbirini dışlayan veya ayrık olaylarla da karşılaşabilirsiniz. Bu gibi durumlarda, birbirini dışlayan birden fazla olaydan herhangi birinin gerçekleşme olasılığını (veya birleşimini) hesaplamak isteyebilirsiniz. Bu tür durumlarda olasılıkları çarpmaz, her bir olayın gerçekleşme olasılığını toplarsınız:

$$P(Olay A \cup Olay B) = P(Olay A) + P(Olay B)$$

Burada "VEYA" bileşeninin çok önemli olduğunu anlamak esastır: Kupa çekmek VEYA Sinek çekmek iki birbirini dışlayan olaydır. Kupa kupadır, sinek sinektir. Kupa veya sinek çekme olasılığını belirlemek için, kupa çekme olasılığına sinek çekme olasılığını ekleyin.

$$P(Kupa \cup Sinek) = (\frac{13}{52}) + (\frac{13}{52})$$

Şimdi aşağıdaki birbirini dışlayan olayların olasılığını belirleme sırası sizde;

  1. Kupa çekmek veya sinek çekmek;
  2. As, papaz veya kız çekmek.
# Sample Space
cards = 52

# Calculate the probability of drawing a heart or a club
hearts = 13
clubs = 13
heart_or_club = event_probability(hearts, cards) + event_probability(clubs, cards)

# Calculate the probability of drawing an ace, king, or a queen
aces = 4
kings = 4
queens = 4
ace_king_or_queen = event_probability(aces, cards) + event_probability(kings, cards) + event_probability(queens, cards)

print(heart_or_club)
print(ace_king_or_queen)
50.0
23.1

Birbirini Dışlamayan Olaylar

Tüm olayların birbirini dışlamadığını tahmin edebilirsiniz: Kupa çekmek veya As çekmek, birbirini dışlamayan iki olaydır. Kupa Ası hem As’tır hem de Kupadır. Olaylar birbirini dışlamadığında, örtüşme için düzeltme yapmanız gerekir.

$$P(Olay A \cup Olay B) = P(Olay A) + P(Olay B) - P(OlayA \cup OlayB)$$

Kupa veya As çekme olasılığını hesaplamak için, kupa çekme olasılığına As çekme olasılığını ekleyin ve ardından Kupa Ası’nı çekme olasılığını çıkarın.

$$P(Kupa \cup As) = (\frac{13}{52}) + (\frac{4}{52}) - (\frac{1}{52})$$

Aşağıdaki birbirini dışlamayan olayların olasılığını hesaplayın;

  1. Kupa veya As çekmek;
  2. Kırmızı kart çekmek veya resimli kart çekmek.
# Sample Space
cards = 52

# Calculate the probability of drawing a heart or an ace
hearts = 13
aces = 4
ace_of_hearts = 1
heart_or_ace = event_probability(hearts, cards) + event_probability(aces, cards) - event_probability(ace_of_hearts, cards)

# Calculate the probability of drawing a red card or a face card
red_cards = 26
face_cards = 12
red_face_cards = 6
red_or_face_cards = event_probability(red_cards, cards) + event_probability(face_cards, cards) - event_probability(red_face_cards, cards)

print(round(heart_or_ace, 1))
print(round(red_or_face_cards, 1))
30.8
61.6

Bağımsız Olayların Kesişimi

İki bağımsız olayın kesişiminin olasılığı, her bir olayın gerçekleşme olasılıklarının çarpımıyla belirlenir.

$$P(Olay A \cap Olay B) = P(Olay A) \times P(Olay B)$$

Bir desteden bir As çekmenin, kartı yerine koyup desteyi yeniden karıştırmanın ve ardından başka bir As çekmenin olasılığını bilmek istiyorsanız, As çekme olasılığını As çekme olasılığıyla çarparsınız.

$$P(As \cap As) = (\frac{4}{52}) \times (\frac{4}{52})$$

# Sample Space
cards = 52

# Outcomes
aces = 4

# Probability of one ace
ace_probability = aces / cards

# Probability of two consecutive independant aces 
two_aces_probability = ace_probability * ace_probability

# Two Ace Probability Percent Code
two_ace_probability_percent = two_aces_probability * 100
print(round(two_ace_probability_percent, 1))
0.6

Bağımsız olarak art arda iki As çekme olasılığı %0,592’dir. Peki ikinci olay bağımlıysa?

Bağımlı Olayların Kesişimi

İki bağımsız olmayan olayın (Olay A & Olay B, A verildiğinde) kesişiminin olasılığı, Olay A’nın gerçekleşme olasılığı ile A verildiğinde Olay B’nin olasılığının çarpımıyla belirlenir.

$$P(Olay A \cap Olay B | A) = P(Olay A) \times P(Olay B | A)$$

Texas Hold’em’de alabileceğiniz en iyi başlangıç eli cepten Aslardır. İki As dağıtılma olasılığı nedir?

$$P(As \cap As | As) = (\frac{4}{52}) \times (\frac{3}{51})$$

# Sample Space first draw
cards = 52

# Outcomes first draw
aces = 4

# Probability of ace on first draw
first_ace_probability = aces / cards

# Sample Space second draw
cards = cards - 1

# Outcomes second draw
aces = aces - 1

# Probability of ace on second draw after ace on first
second_ace_probability = aces / cards

# Probability of two consecutive aces (dependent)
both_aces_probability = first_ace_probability * second_ace_probability * 100
print(both_aces_probability)
0.4524886877828055

Bağımlı olarak art arda iki As çekme olasılığı %0,452’dir. Bu durumun masada rol oynadığı birkaç duruma bakalım.

Bağımlı Olayların Kesişimi: Flop’ta Renk Çekişi

Eliniz

kartlar

Ortak Kartlar

kartlar

Bu, yukarıdaki Flush çekişine benzer bir durumdur; tek fark, bu kez flop’tasınız ve yalnızca bir yerine iki ortak kart daha gelecektir. River’a kadar Flush yapma olasılığını nasıl belirlersiniz? Önce tüm olası senaryoları belirlemeniz gerekir;

  • A) Turn Karo, River Karo Değil (Flush oldu)
  • B) Turn Karo Değil, River Karo (Flush oldu)
  • C) Turn Karo, River Karo (Flush oldu)
  • D) Turn Karo Değil, River Karo Değil (Flush yok)

Bunlar tek olasılıklardır ve her bir senaryo birbirini dışlar. Bu, her bir senaryonun gerçekleşme olasılıklarını toplarsanız toplamın 1 olacağı anlamına gelir. Başka bir deyişle, bu dört senaryodan biri kesinlikle gerçekleşecektir. A, B veya C senaryosunun gerçekleşme olasılığını bilmek istiyorsunuz. Bunu bulmanın en basit yolu, D senaryosunun olasılığını belirlemek ve 1’den çıkarmaktır.

# Sample Space on turn
cards = 52
hole_cards = 2
flop_community_cards = 3
cards = cards - (hole_cards + flop_community_cards)

# Outcomes
diamonds = 13
diamonds_drawn = 4
non_diamonds_drawn = 1
outs = diamonds - diamonds_drawn
turn_non_diamonds = cards - outs - non_diamonds_drawn 

# Probability of not getting a diamond on the turn
no_diamond_turn_probability = turn_non_diamonds / cards

# Sample Space on river
turn_community_card = 1
cards = cards - turn_community_card

# Outcomes on river
river_non_diamonds = turn_non_diamonds - turn_community_card

# Probability of not getting a diamond on the river
no_diamond_river_probability = river_non_diamonds / cards

# Probability of not getting a flush
no_flush_probability = no_diamond_turn_probability * no_diamond_river_probability

# Probability of getting a flush
flush_probability = 1 - no_flush_probability
flush_probability_percent = flush_probability * 100

# Print probability percent rounded to one decimal place
print(round(flush_probability_percent, 1))
38.4

Şimdi eli biraz değiştirelim:

Eliniz

kartlar

Ortak Kartlar

kartlar

Bu, son duruma benzer; ancak büyük bir fark var. Hâlâ bir renk çekişiniz var, ama bu kez As sizde değil. Turn’da ve River’da Karo gelirse, birinin sizden daha iyi bir renk çekmiş olma olasılığı yüksektir. Turn veya River’da Karo gelme, ancak ikisinde birden gelmeme olasılığını belirleyin. Flush yakalayamama olasılığı zaten elinizde.

Şimdi, Turn ve River’da Karo gelme olasılığını bulun, bunu flush yakalayamama olasılığına ekleyin ve 1’den çıkarın.

# Sample Space on turn
cards = 52
hole_cards = 2
flop_community_cards = 3
cards = cards - (hole_cards + flop_community_cards)

# Outcomes on turn
diamonds = 13
diamonds_drawn = 4
outs = diamonds - diamonds_drawn

# Probability of diamond on turn
diamond_turn_probability = outs / cards

# Sample Space on river
turn_diamonds = 1
cards = cards - turn_diamonds

# Outcomes on river
river_diamonds = outs - turn_diamonds

# Probability of diamond on river
diamond_river_probability = river_diamonds / cards

# Probability of getting a diamond on the turn and river
two_diamonds_probability = diamond_turn_probability * diamond_river_probability

# Determine the probability of getting only one diamond by the river
one_diamond_probability = 1 - (no_flush_probability + two_diamonds_probability)
one_diamond_probability_percent = one_diamond_probability * 100

# Print probability percent rounded to one decimal place
print(round(one_diamond_probability_percent, 1))
35.1

Beklenen Değer

Poker gibi bir oyun oynarken, "bu oyunu tekrar tekrar oynarsam ortalama ne kadar kazanırım — ya da kaybederim?" gibi sorularla epey ilgilenirsiniz. Özellikle profesyonel bir poker oyuncusuysanız, poker için bunun farklı olmadığını hayal edebilirsiniz!

Oyunun olası sonuçları ve bunlara ilişkin olasılıklar bir rassal değişkenle tanımlanabiliyorsa, yukarıdaki soruyu, her bir sonucun kendi olasılığıyla ağırlıklandırıldığı sonuçların ağırlıklı ortalamasına eşit olan beklenen değeri hesaplayarak yanıtlayabilirsiniz.

Başka bir deyişle, Beklenen Değer’i elde etmek için Toplam Değeri kazanma olasılığıyla çarparsınız:

$$Beklenen Değer = Toplam Değer \times Olasılık$$

Potta \$100 (Toplam Değer) varsa ve potu kazanma olasılığınız 0,75 ise beklenen değer nedir?

$$Beklenen Değer = \$100 \times 0.75$$

# Initialize `pot` and `probability` variables
pot = 100
probability = 0.75

# Determine expected value
expected_value = pot * probability
print(expected_value)
75.0

Beklenen değeriniz \$75’tir. Beklenen değer, pokerd e önemli bir kavramdır. Beklenen değerleri avantajınıza nasıl kullanacağınızı görmek için ilk flush örneğine geri dönelim.

Eliniz

kartlar

Rakibin Eli

kartlar

Ortak Kartlar

kartlar

  • Toplam Pot = \$60

  • Rakibin Bahsi = \$20

Rakibiniz yardımsever davranıp size kartlarını gösterdi ve elinde iki tane 2 ile üçlü var. River’da eli kazanmak için, vale veya 2 hariç herhangi bir Karo’yu yakalamanız gerekir. Karo Vale veya Karo 2, rakibinize sırasıyla full veya kare kazandırır. Elde kalmak için \$20 görmeniz gerekiyor ve eğer eli kazanırsanız \$60 kazanacaksınız. Beklenen değeriniz \$20’den yüksekse görmelisiniz; değilse çekilmelisiniz.

Bahsi görmeniz gerekip gerekmediğini belirleyin:

# Sample Space
cards = 52
hole_cards = 2
# Your opponent provided you information... use it!
opponents_hole_cards = 2 

turn_community_cards = 4
cards = cards - (hole_cards + opponents_hole_cards + turn_community_cards)

# Outcomes
diamonds = 13
diamonds_drawn = 4

# You can't count the two diamonds that won't help you win
diamond_non_outs = 2 

outs = diamonds - diamonds_drawn - diamond_non_outs

# Determine win probability
win_probability = outs / cards

# Determine expected value
pot = 60
ev = pot * win_probability

# Print ev and appropriate decision
call_amount = 20
if ev >= 20:
    print(round(ev, 2), 'Call')
else:
    print(round(ev, 2), 'Fold')
9.55 Fold

Beklenen değeriniz yalnızca \$9,55’tir; bu da o ödülü almak için risk etmeniz gereken \$20’den azdır; dolayısıyla çekilmelisiniz. Beklenen Değeri belirlemek masada kritik önemdedir ve Bölüm 2 bu kavrama çok daha derinlemesine inecektir.

Sonuç

Tebrikler, Python ile olasılık teorisi eğitimini sonuna kadar getirdiniz! Bu, eğitimin 1. Bölümünü tamamlar. Bağımsız/Bağımlı olaylar, Permütasyonlar/Kombinasyonlar, Birden Fazla olay, Beklenen Değerler ve bunların her birinin nasıl hesaplanacağı dâhil olmak üzere çeşitli temel olasılık kavramlarını öğrendiniz.

2. Bölümde, bu kavramları kariyerim boyunca oynadığım gerçek poker ellerine uygulayacaksınız.

*Flop, Turn ve River’dan önce, Yakma (Burn) kartı olarak adlandırılan bir kart kapalı dağıtılır. Kart kapalı dağıtıldığından ve hiçbir oyuncu ne olduğunu bilmediğinden, bir deneme olarak sayılmaz.

DataCamp'in Python’da Olasılık Dağılımları eğitimine göz atın.

Konular
Python
Veri Bilimi

Python hakkında daha fazla bilgi edinin

Kurs

Python ile statsmodels'da Orta Düzey Regresyon

4 sa
16.4K
Birden çok açıklayıcı değişkenle doğrusal ve lojistik regresyon yapmayı öğrenin.
Ayrıntıları GörüntüleRight Arrow
Kursa Başla
Devamını GörRight Arrow
İlgili

blog

2026’da En Popüler 40 Yazılım Mühendisi Mülakat Sorusu

Algoritmalar, sistem tasarımı ve davranışsal senaryoları kapsayan bu temel sorularla teknik mülakat sürecine hakim olun. Uzman cevapları, kod örnekleri ve kanıtlanmış hazırlık stratejileri edinin.
Dario Radečić's photo

Dario Radečić

15 dk.

blog

Hızlı Sevkiyat İçin Pratik Vibe Kodlama Teknoloji Yığını

Ön uç, arka uç, veritabanları, kimlik doğrulama, depolama, e-posta, test, dağıtım ve izleme için en iyi araçları keşfedin.
Abid Ali Awan's photo

Abid Ali Awan

14 dk.

Eğitim

Python'da Listeyi String'e Nasıl Dönüştürürsünüz

Bu hızlı eğitimde, Python'da bir listeyi string'e nasıl dönüştüreceğinizi öğrenin.
Adel Nehme's photo

Adel Nehme

Eğitim

.gitignore Nasıl Kullanılır: Örneklerle Pratik Bir Giriş

Git deponuzu temiz tutmak için .gitignore’u nasıl kullanacağınızı öğrenin. Bu eğitim; temelleri, yaygın kullanım durumlarını ve başlamanıza yardımcı olacak pratik örnekleri kapsar!
Kurtis Pykes 's photo

Kurtis Pykes

8 dk.

Devamını GörDevamını Gör