İlginç bir olasılık sorusu

Yıllar önce bir gün Ali Nesin ile sohbet ederken ilginç bir olasılık sorusu sormuştu. Önce soru üzerine düşünelim ve tartışalım sonra sohbetin devamını anlatırım.

İki çocuklu bir ailede çocuklardan birisi Çarşamba günü doğduysa, diğerinin kız olma olasılığı nedir?

Günlerin cinsiyet üzerine etkisi mi varmış?

Evet ilk bakışta %50 deniyor cevap için. Ama bilgisayar programını yaptığınızda sonuç 1/2 (%50) çıkmıyor. Zaten Ali Nesin de yüzde elli olmadığını iddia ediyordu ama matematiksel olarak ispatlamak daha zor programlamaya göre.

Haftanın 7 günü var.
Çocuklar aynı gün doğan tek yumurta ikizi de olabilir.
Yani günün etkisinden ziyade, “aynı gün yanıltması” yapılıyor soruda.
O yüzden diğerinin belirli bir günde doğma olasılığı 1/7(yani iadesiz örnekleme değil) ama kız olma olasılığı da eklenirse: (1/7)*(1/2)=1/14

Hatta ikiz olmayabilir farklı senelerde de aynı gün doğmuş olabilirler.

Bunun için şöyle bir kod yazmıştım.

import random
gercek=0
olay=0
cins = ['kiz','erkek']
gunler = [1,2,3,4,5,6,7]
for i in range(1,100000):
    r1cins = random.choice(cins)
    r1gun = random.choice(gunler)
    r2cins = random.choice(cins)
    r2gun = random.choice(gunler)
    if r1gun==3 or r2gun==3:
        if (r1gun==3 and r2cins=='kiz') or (r2gun==3 and r1cins=='kiz'):
            gercek=gercek+1
        olay=olay+1
print(gercek/olay)

1 Yılın aynı günü,
1 Ayın aynı günü,
1 Haftanın aynı günü vs. de olabilir.
Ama yazdığın kod doğru değil.
Choice, kombinasyon seçmesi yapar. sen choise ile kombinasyon ile cins, gün listelerinden seçme yapıyorsun yani seçme olasılığını sadece onlara uyguluyorsun.
Oysa gün olasılığı 1/7 ve cinsiyet olasılığı 1/2 olur(ki aslında bu da doğru değil tam, ben “genel kabul” olduğu için öyle dedim, yoksa bunun LGBTİ++'sı da var).
Bu iki olasılığın eş anlılığı ise çarpılarak yani (1/7)*(1/2) ile olur.

Ayrıca bu sadece “genel istatistik ve olasılıksal soru kalıbı” açısından böyle, yoksa bu işin "genetik faktörleri"ni de kullanırsak, olasılık elbette değişir.

Kodu şöyle değiştirdim. Sonuç değişmiyor ama seni mi kıracağım.

import random
gercek=0
olay=0
for i in range(1,100000):
    r1cins = random.randint(0,1) #kız için 0 erkek için 1
    r1gun = random.randint(1,7) #çarşamba için 3
    r2cins = random.randint(0,1)
    r2gun = random.randint(1,7)
    if r1gun==3 or r2gun==3:
        if (r1gun==3 and r2cins==0) or (r2gun==3 and r1cins==0):
            gercek=gercek+1
        olay=olay+1
print(gercek/olay)

Bu “genel bir istatistik ve olasılık sorusu”.
Yani soruyu nasıl yorumlayarak olasılıksal bir formulasyon ortaya çıkaracağınız test ediliyor.
Evrensel kümeyi “bir sorudaki mantık hatası” üzerinden düşünemeyiz, zira sòyledigim gibi sorunun amacı bu değil.
Eğer mesele oysa bütün istatistik, olasılık, permütasyon ve kombinasyon sorularının mantığından ne hatalar çıkararırız.

Randint de seçmeyi kumeye işliyor once. Sonra ise if else blogu uygulyorsunuz. Sorunun mantığı böyle değil.

Sorunun mantığı,

“İki çocuklu bir ailede çocuklardan birisi Çarşamba günü doğduysa” ki burası diğeri için de 1/7 dir, neticede bugunlerden birinde doğacak diğeri de ve onun ortaya çıkması diğerini etkilemediği için iadeli örnekleme olacak. Ve “diğerinin kız olma olasılığı” kız/erkek mantıģindan yine burası 1/2 olacak
Ve genel mantık gereği, sorunun soruluş biçiminden bunun “eş anlı olay”(bir istatisik ve olasılık terimi bu) olması gerektiği icin olasıliklar çarpılacak.

Yani yine benim dediğim doğru.

İnanmıyorsan dayıya sor, Ali Nesin’e…

Kodda ne tür bir hata var?
Yaptığım şu, iki kişiye rastgele cinsiyet ve doğum günü atıyorum.
Çocuklardan biri çarşamba doğmuş mu diye bakıyorum.
Çarşamba doğan çocuk haricindeki çocuğun cinsiyetine bakıyorum.
Ve en az biri çarşamba doğmuş çocuklara oranlıyorum bunu.

Soruda istenen de bu değil mi zaten?

İki çocuklu bir ailede çocuklardan birisi Çarşamba günü doğduysa, diğerinin kız olma olasılığı nedir?

Eğer kod yanlışsa doğrusu nedir?

Senin yaptığın yanlış, “sorunun mantığı ve amacını anlamamak”.
Bu bir “olasılıkla düşünme sorusu”.

Senin yaptığın ise sadece, mevcut "senaryo"yu uygulayarak sonucundan genel bir kanıya varmak istiyorsun.

Dikkat edersen sonuçlarının hiçbiri birbiri ile aynı değil.

Yani bir formülasyon yok.

Kullandığın fonksiyonlar zaten ayrı birer formül.

Soruyu anlamamış olabilirim. Ama benim sezgim aşağıdaki hesaba yöneliyor hep.

Bir çocuğun pazartesinde doğma olasılığı nedir?

1/7

Bir çocuğun kız olma olasılığı nedir?

1/2

Bir çocuğun pazartesi günü doğup, kız olma olasılığı nedir? 1/7 * 1/2 = 1/14

Peki bir çocuğun salı günü doğma olasılığı nedir?

1/7

Bir çocuğun kız olma olasılığı nedir?

1/2

Bir çocuğun salı günü doğup, kız olma olasılığı nedir? 1/7 * 1/2 = 1/14

Bu 7 günden 1’inde doğabilir bu kız.

1/14 * 7 = 1/2

Yani, sezgim erkek çocuğun doğum gününün, kız çocuğun doğduğu günü ve cinsiyeti etkilemeyeceğini söylüyor. Bu ikisi bağımsız olaylardır. Elbette 7 günden bir tanesinde doğacak insan. Ama hangi gün doğacağını bilmediğimiz için bir çocuğun kız veya erkek olma olasılığı 1/2’dir. Soru, belirli bir günde doğma olasılığı üzerinde durulsaydı, o zaman 1/2 * 1/7 = 1/14 olabilirdi cevabı. Ama bu çocuğun hangi gün doğduğu belli değil.

Göremediğim bir şeyler vardır belki, gösterebilirseniz minettar olurum.

Aslında sonucu etkileyen faktör şu oluyor. İkisi de çarşamba doğan iki çocuklu ailelerde Erkek-Erkek olmadığı sürece sonuca +1 katması. Yani E - K , K - E veya K - K olduğunda gerçekleşmiş olay oluyor.
Bu da sonucu 27/52 ye çıkarıyor.

Aslında sorunun tersi de aynı cevap. Örneğin iki çocuklu bir ailede çocuklardan en az birisi çarşamba doğduysa diğerinin Erkek olma olasılığı da 27/52

Matematikçi bir arkadaşın da açıklaması vardı bu konuda. (Salı günü için)

2 cocuk var ve biri sali dogmus.

Oncelikle toplam olasiliklarin kac tane oldugunu bulalim. Bunu bulmanin 2 yolu var.

1.yol 1 cocuk kiz ve erkek olmak uzere 2 olasilik ve dogdugu gun secenegi olarak da 7 secenegi var. Yani bir cocugun 7×2=14 farkli durumu var. Diger cocugun da 14 farkli durumu var. Bu durumda 14×14=196 farkli durum var. Ama en az birinin sali dogdugunu biliyoruz. Bu durumda 196 secenekten ikisinin de sali gunu dogmadigi durum sayisini cikarirsak elimizde mevcut durumdaki durum sayisi kalir. Bir cocugun sali gunu dogmadigi durumda 2×6=12 farkli durum var. 2 cocugun da sali dogmadigi caprazlama sayisi 12×12=144 olur.

196dan 144u cikarirsak en az birinin sali dogdugu 52 farkli secenek oldugunu buluruz.

Bu 52 farkli secenek oldugunu bulmanin diger yolu da soyle. Cocuklar
K k
E k
K e
E e

Diye 4 farkli kombinasyona sahip.

K k durum sayisini bulmak icin. Ilk kizin sali dogdugunu varsayarsak diger cocugun 7 tane secenegi var, ikinci kizin sali dogdugunu varsayarsak bu sefer ilk cocugun 7 secenegi var. Toplam 14 yapar. Ancak ikisinin de sali dogdugu secenegini 2 defa saydigimiz icin 14ten 1i cikaricaz yani 13

K k durum sayisini 13 bulduk.
Ayni sekilde E e durum sayisi da 13 cikacak.

E k durum sayisini bulalim. E nin sali dogmasi durumunda k nin 7 secenegi, k nin sali dogmasinda da Enin 7 secenegi var yani toplam 14 secenek var. Gene ikisinin de sali dogdugu secenegi 2 defa saydigimiz icin 1 cikaricaz ve 13 olacak.

Ayni sekilde K e durumunun sayisi da 13 olacak.

Hepsini toplayinca 52 farkli secenegimiz var.

Simdi bu 52 farkli secenekten kac tanesinde sali dogan cocuk ve digerinin kiz oldugu durum var onu sayicaz.

K k durum sayisi 13 idi. Bu 13 durumun tamami bu sarti saglar.

E e durum sayisi da 13 idi. Bu 13 durumun hicbiri bu sarti saglamaz.

K e durumunda sarti saglayabilmek icin e nin sali dogmus olmasi zorunlu ki diger cocuk kiz olmus olsun. e nin sali dogdugu durum sayisinda k nin 7 secenegi var.

Yani K e durumunda 7 farkli secenek bizim sartlarimizi sagliyor.

Ayni sey E k durumu icin de gecerli ordan da 7 secenek gelecek.

K k –>13
K e –> 7
E k –> 7
E e —> 0

Toplamda 27 yani.

Bu durumda cevap 27/52 oluyor.

1 Beğeni

Yoruldum.

Böyle basit bir denklemde eş anlı olay meramı olmasa “doğduysa” denebilir ya da eş anlı olmayan olsa da “doğduysa” denebilir.
Zira “-sa”, “-se”, yani ise, yani bool cebiri açısından => işleci; kendi başına bağımsız olaydan, diğer olay bilinirken belirli olayı kasteder ama tek bir cümlenin muğlaklığı için kastetmeye de bilir.
Çünkü çok “muğlak” bir tanım. Bu cümleden fazlasına ihtiyacı var. Böyle olasılık soruları genelde tek bir cümle olmaz. Bir paragraf olur.

O yüzden eğer bir cümleyle bunu soruyorsa, ben derim ki eş anlı olaydır.

Değilse de eş anlı olay değildir ve 1/2 dir.

Ama bir cümleyi sırf böyle uyuz olalım diye böyle kurmuş olamaz.

Eğer öyleyse, yazıklar olsun ona, zaten Yaşlıların yanına koyduğu memleket yeterince burnumuza geldi, bir de o tatlı yaşlılığı ile bizi yoruyorsa, ona da yazıklar olsun.

Zaten sinir impuslarımız gebeş gablumbağa dönmüş, hangi dendritten gelip hangi aksona akacağını bilmiyor.

Ayıp, ayıp…

Aslında o kadar yorulacak bir durum yok. Koşullu olasık sorusu. Bir benzeri de şu mesela.

İki çocuklu bir aileden çocuklarının birisinin kız olduğu biliniyorsa diğerinin erkek olma olasılığı nedir?

Bunun da cevabı 2/3 örneğin.

Soru şu şekilde olsaydı o zaman 1/2 ydi.

İki çocuklu bir aileden birinci çocukları kız ise diğerinin erkek olma olasılığı nedir?


Ama bir cümleyi sırf böyle uyuz olalım diye böyle kurmuş olamaz.

Eğer öyleyse, yazıklar olsun ona, zaten Yaşlıların yanına koyduğu memleket yeterince burnumuza geldi, bir de o tatlı yaşlılığı ile bizi yoruyorsa, ona da yazıklar olsun.

Bu sorunun kaynağı o değil, 1959 lardaydı sanırım bir matematikçi atıyor ortaya. Vikipedide açıklaması da var sorunun.

1 Beğeni

Bir nevi Boy or Girl paradox - Wikipedia (Edit: hemen ustteki cevaptan once yazmistim bu kismi. O, birebir bu.)

Bu arada Monte Carlo yontemi kullanmak zorunda degiliz, olasilik uzayi kucuk:

for (c1g, c1c, c2g, c2c) in itertools.product(gun, cins, gun, cins):
    ...
1 Beğeni

Doğru.
Gelme üstüme.
Zaten moralima bazuka.

1 Beğeni

Acaba yanlış mı anlıyorum yoksa n = (2 * 7) ** 2 = 196, p = 1/2 koşulu altında k = n / 2 alma olasılığımız nedir diye mi soruluyor? Yani bu değerlerin olasılık kütle fonksiyonunu hesaplamamızı istiyormuş gibi geldi bana. Yanılıyorsam düzeltin lütfen.

Kod:

from math import prod


def factorial(n: int) -> int:
    return prod(range(1, n + 1))


def combination(n: int, k: int) -> float:
    return factorial(n) / (factorial(k) * factorial(n - k))


def binomial_probability(n: int, k: int, p: float) -> float:
    return combination(n, k) * p ** k * (1 - p) ** (n - k)


def probability_mass_function(n: int, k: int, p: float) -> float:
    return sum(binomial_probability(n, i, p) for i in range(k + 1))


p = probability_mass_function(n=196, k=98, p=1/2)
print(p)

Sonuç:

0.5284595537174012

İki çocuklu bir ailenin çocuklarının birisi Çarşamba günü doğduysa, diğerinin kız olma olasılığı nedir mi?

İki çocuklu bir ailenin çocuklarından birisinin Çarşamba günü doğması “ve” diğerinin kız olma olasılığı nedir mi?

Doğduysa doğmuştur. Konusu kapanmıştır. Olasılık olmaktan çıkmıştır. Konu ikinci çocuk cinsiyeti üzerinde devam eder.

Doğduysa, hangi haftanın çarşambası, hangi ayın çarşambası, hangi yılın çarşambası gibi varyasyonları saymıyorum dahi…

Doğma ihtmali üzerinden gitsek daha kolay olmayacaktı. Doğmama ihtimali olan yılları ve ayları elemek zorunda kalacaktık.

İkinci kardeşle arasında 100 yıl fark olma yada olmama durumları dahil ihtimallerin sınırlarını zorlamak ile birlikte çarşamba doğandan küçük olma durumu için bir yüz yıl da geriye doğru gidebilirdik.

Cinsiyet konusuna gelince, genetik faktörler üzerinden yürüyüp, Kadın, Erkek ve Hermafrodit ve Yalancı hermafrodit olasılıklarını da hesaba katabilirdik.

Koca istatistik bilimini bir çırpıda, benim için anlamsızdır diye gömmek istemiyorum…

Ama murphy kanunları dururken istatistiğe güvenmeye gerek var mı bilemedim.

Günün önemi yok, Anne ile Baba’ya sormak lazım. Kız istiyorlarsa Erkek olur, Erkek istiyorlasa Kız olur… Sonra Kız yada erkeği bulana kadar bir süre daha çocuk yaparlar soru da da iki çocuk sorusu olmaktan çıkar…

Bu tip sorular çözmek için değil, kafalarındaki cevabı ve örneğe götürmke için hazırlandığından her zaman benim için ucu açık sorular ve ihtimaller yumağı olarak kalacaktır.

Filmin tadı kaçmasın diye çok üstelememiştim.

Murphy derki bir soruyu çözmeye çalışırsan kesin çözülmüşü vardır (Ben uydurdum.)

Olasılık Rastlantı Problemi - Sonsuz Us

Dünya bizim olasılık evrenimizden daha geniştir. İhtimaller için kesin belirli sınırlar çizmezseniz ihtimalleriniz daha da artacaktır…

Kolay gelsin.