Syntymäpäivä ongelma

Mitenkä

Eli tod.näk että 13 hengen seurueesta ainakin kolme syntynyt samana päivänä?
Ei mitään hajua kun en ole tälläistä ennen laskenut....

26

2452

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • horroskoopista
      • Mitenkäs

        Muuttuuko kaava, jos halutaan huomioida karkauspäivät?


      • Napataatti

        Liian iso tulos tuo 0,4 ilman muuta. Kolmeentoista henkilöön sattuu kaksi samaa syntymäpäivää vain 19,4 prosentin todennäköisyydellä. Kolmen todennäköisyys on tietysti vielä paljon pienempi.


      • Napataatti kirjoitti:

        Liian iso tulos tuo 0,4 ilman muuta. Kolmeentoista henkilöön sattuu kaksi samaa syntymäpäivää vain 19,4 prosentin todennäköisyydellä. Kolmen todennäköisyys on tietysti vielä paljon pienempi.

        Miten laskit tuon 19,4? Sen saan mäkin kakkosella simuloimalla, mutta keksittekö mikä luku pitää mun koodissa (tuolla alla viestissä, joka siis simuloi kolmoselle) muuttaa tuota varten?


      • Ei_taida

        Ei_taida mennä aivan noin !


    • siitä.lähtee

      Binomikaava esiin.

    • Noinkohan

      Tehtävä pitäisi määritellä huolellisesti. Samana päivänä tarkoittaa, että myös samana vuonna.

      • Noinkohan

        Eli pitäisi ilmaista esim: synttärit ovat samana päivänä.


      • Mitä_haluaa_laskettavan

        Tuo alottajan tehtävän ratkaisu vaatisi muutaman lisäolettamuksen: on kyse ihmisistä, joiden ikä- ja sukupuolijakauma vastaa Suomen väestöä. Näin voitaisiin määrittää mahdollisten päivien kokonaismäärä.


    • Tässäkin simulaatio on avain onneen:

      var N = 100000; console.log(new Array(N).fill((_,i)=>["Jotainhan", "sinne", "on", "aluksi", "työnnettävä", "jotta", "mäppi", "toimii! "][i%8]).map(_=>function(people, atLeastSame) {var ret = {}; for (let i=0; i<people; i ) {let x = function(min, max) {return Math.floor(Math.random()*(max-min 1)) min;}(0, 365); if (!ret[x]) ret[x] = 0; ret[x] ; if (ret[x]>=atLeastSame) return true; }return false; }(13, 3)?1:0).reduce((a,b)=>a b,0)/N);

      ...about 0,002

    • Noinkohan

      Tuo alku on oikein, todennäköisyys, että on vähintään yhdet synttärit vuoden samana päivänä on
      1-(364*363*362*361*360*359*358*357*356*355*354*353/365^12)
      Samaa kaavaa soveltaen nähdään, että jos hieman yri parinkymmenen hengen määrällä tn on oli puolet, että vähintään kahdella on synttärit samana päivänä.

      Sen sijaan tuo, että täsmälleen kahdella on sama synttäripäivä, on laskettu väärin. Jos tuota kaavaa (1/365*13*12/(2*1) ) sovellettaisiin muutaman kymmenen ihmismäärälle, saataisiintn > 1 että kahdella on synttärit samana päivänä.

      • horroskoopista

      • horroskoopista
        horroskoopista kirjoitti:

        Mikä tämän oikea vastaus sitten on ? Hieman enemmän pähkäiltyä tuli noin 0,0164

        https://www.wolframalpha.com/input/?i=1-(364*363*362*361*360*359*358*357*356*355*354*431/365^12)

        siis tuo jälkimmäinen vähennettävä olisi: 1/365(13*12)/2*(364*363*...*354)/365^11)


    • Kanootti3

      Vastaus on

      470147013509911999593057049 / 223652812954006432729697265625
      likiarvoltaan
      0.0021021287740592665864372157...

      Simulaatio, jonka joku jo tekikin, tukee tätä, joten olen melko varma että se on oikein. Myös ketjun tuottama matriisi näytti ihan hyvältä.

      Sain tämän, milläpä muullakaan kuin, Markovin ketjuilla :D
      Idea on se, että yksi kerrallaan otetaan ihminen ja tehdään siirtymät sen mukaan.
      Tiloiksi kaikki mahdolliset {1: a, 2: b}, missä a on se kuinka monta päivämäärää on joille on tullut yksi synttäri ja vastaavasti b se kuinka monelle on tullut kaksi ihmistä, joilla on synttäri tuona päivämääränä. Lisäksi kaksi (absorboivaa) päätöstilaa: "laskettiin kaikki ja ei tullut kolmea" sekä "saatiin kolme".
      Lähdetään tilasta {1: 1, 2: 0} eli on laskettu yksi ihminen jo valmiiksi ja tietenkin saatu yksi päivämäärä, jona yhdellä on synttäri. Siitä sitten lähdetään etenemään, tilasiirtymätodennäköisyydet tulee melko yksinkertaisesti, mutta oli siinä vähän pohtimista kuinka koodata se.

      Laitan python-koodini, jos vielä löydän sen yhden sivuston mihin niitä kerrankin laitoin.

      Ai niin, karkaspäivä... sitä en taida alkaa pohtimaan, mutta melko merkityksetön sen vaikutus taitaa olla.

      • Kanootti3

      • siitä.lähtee

        Binomikavaa soveltamalla sain 0.00210.


      • Kanootti3
        siitä.lähtee kirjoitti:

        Binomikavaa soveltamalla sain 0.00210.

        Millä tavoin sovelsit?

        Tässä ongelmaan liittyviä linkkejä:

        https://math.stackexchange.com/questions/25876/probability-of-3-people-in-a-room-of-30-having-the-same-birthday

        https://www.math.ucdavis.edu/~tracy/courses/math135A/UsefullCourseMaterial/birthday.pdf
        Ks tuon linkin kohta 2.4, kaava (2), siinä on sovellettu multinomiaalitodennäköisyyksiä.

        Hmmm. tuo das Gruptan kaava antaa saman tuloksen kuin ohjelmani (jippiii ! :D):
        Paitsi, että piti laittaa kaavassa summan ylärajaksi kattofunktio (linkissä joku hakasulku, eikös se tarkoita kokonaisosaa, no luultavasti katto on oikein, sillä se antaa saman tuloksen, pitänee vielä testailla esim. tapauksissa, joissa voi vaikka brute-forceta oikein vastauksen tietoonsa)

        Tässä vielä ohjelmalinkkini:
        das Gruptan kaava: http://tpcg.io/wI0Mdi

        oma markovin ketju ohjelmani: http://tpcg.io/wI0Mdi


      • Kanootti3
        Kanootti3 kirjoitti:

        Millä tavoin sovelsit?

        Tässä ongelmaan liittyviä linkkejä:

        https://math.stackexchange.com/questions/25876/probability-of-3-people-in-a-room-of-30-having-the-same-birthday

        https://www.math.ucdavis.edu/~tracy/courses/math135A/UsefullCourseMaterial/birthday.pdf
        Ks tuon linkin kohta 2.4, kaava (2), siinä on sovellettu multinomiaalitodennäköisyyksiä.

        Hmmm. tuo das Gruptan kaava antaa saman tuloksen kuin ohjelmani (jippiii ! :D):
        Paitsi, että piti laittaa kaavassa summan ylärajaksi kattofunktio (linkissä joku hakasulku, eikös se tarkoita kokonaisosaa, no luultavasti katto on oikein, sillä se antaa saman tuloksen, pitänee vielä testailla esim. tapauksissa, joissa voi vaikka brute-forceta oikein vastauksen tietoonsa)

        Tässä vielä ohjelmalinkkini:
        das Gruptan kaava: http://tpcg.io/wI0Mdi

        oma markovin ketju ohjelmani: http://tpcg.io/wI0Mdi

        No nyt se tuli se sama linkki, oma ohjelmani siis: http://tpcg.io/gsFc0R


      • Kanootti3
        Kanootti3 kirjoitti:

        Millä tavoin sovelsit?

        Tässä ongelmaan liittyviä linkkejä:

        https://math.stackexchange.com/questions/25876/probability-of-3-people-in-a-room-of-30-having-the-same-birthday

        https://www.math.ucdavis.edu/~tracy/courses/math135A/UsefullCourseMaterial/birthday.pdf
        Ks tuon linkin kohta 2.4, kaava (2), siinä on sovellettu multinomiaalitodennäköisyyksiä.

        Hmmm. tuo das Gruptan kaava antaa saman tuloksen kuin ohjelmani (jippiii ! :D):
        Paitsi, että piti laittaa kaavassa summan ylärajaksi kattofunktio (linkissä joku hakasulku, eikös se tarkoita kokonaisosaa, no luultavasti katto on oikein, sillä se antaa saman tuloksen, pitänee vielä testailla esim. tapauksissa, joissa voi vaikka brute-forceta oikein vastauksen tietoonsa)

        Tässä vielä ohjelmalinkkini:
        das Gruptan kaava: http://tpcg.io/wI0Mdi

        oma markovin ketju ohjelmani: http://tpcg.io/wI0Mdi

        Pientä eroavaisuutta noissa kyllä eri luvuilla tulee ja ei auta ylärajankaan muutteluut dasGuptassa. Jotain oletuksiahan tuota kaavaa varten täytyy muuten tehdä, kuten, että m>=n, jotta ei tule negatiivisen luvun kertomaa.

        Eiku: musta tuntuu, että sen ylärajan pitää olla aina int(n/2.0) 1
        Korjattu dasGupta: http://tpcg.io/0pfax6

        Tällä näyttäs tulevan aina sama vastaus.

        (PS. ja joo siinä das Guptan nimessä ei oo ärrää)


      • siitä.lähtee
        Kanootti3 kirjoitti:

        Millä tavoin sovelsit?

        Tässä ongelmaan liittyviä linkkejä:

        https://math.stackexchange.com/questions/25876/probability-of-3-people-in-a-room-of-30-having-the-same-birthday

        https://www.math.ucdavis.edu/~tracy/courses/math135A/UsefullCourseMaterial/birthday.pdf
        Ks tuon linkin kohta 2.4, kaava (2), siinä on sovellettu multinomiaalitodennäköisyyksiä.

        Hmmm. tuo das Gruptan kaava antaa saman tuloksen kuin ohjelmani (jippiii ! :D):
        Paitsi, että piti laittaa kaavassa summan ylärajaksi kattofunktio (linkissä joku hakasulku, eikös se tarkoita kokonaisosaa, no luultavasti katto on oikein, sillä se antaa saman tuloksen, pitänee vielä testailla esim. tapauksissa, joissa voi vaikka brute-forceta oikein vastauksen tietoonsa)

        Tässä vielä ohjelmalinkkini:
        das Gruptan kaava: http://tpcg.io/wI0Mdi

        oma markovin ketju ohjelmani: http://tpcg.io/wI0Mdi

        Lukion tiedoilla ajattelin näin:
        Todennäköisyys sille, että henkilöllä on syntymäpäivä tiettynä päivänä on 1/365. Todennäköisyydet eivät riipu toistaan, joten käytin kaikille samaa. Sitten binomikaavasta todennäköisyydet sille, että k henkilöllä tuosta 13 joukosta on syntymäpäivä yhtenä tiettynä päivänä. Tästä summaamalla todennäköisyys p sille että k>=3. Tuloksena on pieni luku p=5.76182E-6.

        Vuodessa on "noin" 365 päivää. (1-p)^365 on vastatapauksen todennäköisyys vuotta kohti ja 1- (1-p)^365 = 0.002101 on haettu todennäköisyys. Se on käytännössä sama kuin p*365, kun p on noin pieni.


      • Kanootti3
        siitä.lähtee kirjoitti:

        Lukion tiedoilla ajattelin näin:
        Todennäköisyys sille, että henkilöllä on syntymäpäivä tiettynä päivänä on 1/365. Todennäköisyydet eivät riipu toistaan, joten käytin kaikille samaa. Sitten binomikaavasta todennäköisyydet sille, että k henkilöllä tuosta 13 joukosta on syntymäpäivä yhtenä tiettynä päivänä. Tästä summaamalla todennäköisyys p sille että k>=3. Tuloksena on pieni luku p=5.76182E-6.

        Vuodessa on "noin" 365 päivää. (1-p)^365 on vastatapauksen todennäköisyys vuotta kohti ja 1- (1-p)^365 = 0.002101 on haettu todennäköisyys. Se on käytännössä sama kuin p*365, kun p on noin pieni.

        Tapaukset
        A_j = "päivänä j on k>=3",
        j=1, 2, .., 365 eivät ole riippumattomia keskenään, joten vastatapauksen tn:ää ei saada tulona
        (1-p)^365,
        mutta se antaa hyvän approksimaation, koska tapahtumat taitavat olla vain "hieman riippuvaisia".
        Hyvä approksimatiivinen ratkaisu joka tapauksessa. Hankala vaan arvioida tuota kuinka riippuvia nuo tapahtumat ovat. Approksimaatio taitaa toimia hyvin myös pienillä luvuilla ja silloin kun todellinen tn. pitäisi olla jo yksi, kun ihmisiä on yli kaksi kertaa päivien määrä eli jollekin päivälle putoaa varmasti kolmas ihminen. Mutta tuosta tapauksesta juuri näkee, että tuo metodi ei voi olla eksakti, sillä se ei anna tn:ksi tasan ykköstä, mutta hyvin lähelle kylläkin.


      • siitä.lähtee
        Kanootti3 kirjoitti:

        Tapaukset
        A_j = "päivänä j on k>=3",
        j=1, 2, .., 365 eivät ole riippumattomia keskenään, joten vastatapauksen tn:ää ei saada tulona
        (1-p)^365,
        mutta se antaa hyvän approksimaation, koska tapahtumat taitavat olla vain "hieman riippuvaisia".
        Hyvä approksimatiivinen ratkaisu joka tapauksessa. Hankala vaan arvioida tuota kuinka riippuvia nuo tapahtumat ovat. Approksimaatio taitaa toimia hyvin myös pienillä luvuilla ja silloin kun todellinen tn. pitäisi olla jo yksi, kun ihmisiä on yli kaksi kertaa päivien määrä eli jollekin päivälle putoaa varmasti kolmas ihminen. Mutta tuosta tapauksesta juuri näkee, että tuo metodi ei voi olla eksakti, sillä se ei anna tn:ksi tasan ykköstä, mutta hyvin lähelle kylläkin.

        "kun ihmisiä on yli kaksi kertaa päivien määrä eli jollekin päivälle putoaa varmasti kolmas ihminen. Mutta tuosta tapauksesta juuri näkee, että tuo metodi ei voi olla eksakti, sillä se ei anna tn:ksi tasan ykköstä, mutta hyvin lähelle kylläkin".

        Näin on. Jos päiviä olisi 365 sijasta vaikkapa 6, niin tuolla menettelyllä laskien todennäköisyydeksi tulisi 0.9386, kun oikea arvo on 1. Tuloksen suhteellinen virhe lienee täten < 6.5 % ja sitä pienempi, mitä enemmän eri päiviä tarjolla tuolle 13 joukolle.


    • Kanootti3

      Laitetaan nyt vielä tämä testiohjelma: http://tpcg.io/hz95um


      Toimii arvoille, joissa m (eli päivien määrä) selvästi suurempi kuin n (eli ihmisten määrä)
      Mutta esim. tapauksessa m=5 ja n=18, omani antaa 1, niinkuin pitääkin (koska n ei mahdu m:ään laatikkoon ilman että ainakin yhteen menee 3), mutta dasGupta ei anna ykköstä.

      En tiiä onko tuo mun Guptan kaavan koodaus sitte yhä pielessä?

    • Noinkohan

      Entä paljonko täytyy olla luokalla oppilaita, jotta on tn > 1/2, että vähintään kahdella on synttärit samana päivänä. Laskelmieni mukaan 22.

      • Kanootti3

        Tuo on se perus syntymäpäiväongelma: https://en.wikipedia.org/wiki/Birthday_problem
        ja vastaus on 23, jolla tn on 0,507297 (22:lla se on vasta 0,475695)
        Kaava on
        1 - n! * C(365, n) / 365^n.

        Tripletille vastaava ihmismäärä on Anirban DasGuptan mukaan 88 (P=0,511; kun 87:lle P on vielä 0,499).
        Oma ohjelmani hyytyy näin suurille luvuille, sillä tilojen määrä kasvaa toiseen potenssiin ja matriisi on tilojen määrä x tilojen määrä ja matriisin potenssiinkorotus (joka tosin on toteutettu jatkettuna toiseen korotuksena) on sekin tilojen määrän mukainen, joten tuleeko siitä nyt O(n^4 log(n)) -algoritmi sitten :D


      • Noinkohan

        Joo, niin onkin. Unohdin laskea mukaan sen ensimmäisen henkilön. Tulosta voidaan kai pitää intuition vastaisena, sillä 23 oppilasta merkitsee, että luokalla on synttäreitä keskimäärin kaksi kertaa kuukaudessa.


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Lindtman I vasemmistohallitus aloittaa viimein Suomen kuntoon laittamisen

      Tässä nyt on 3 vuotta seurattu irvokasta kärsimysnäytelmää nimeltään "valtion budjetin tasapainotus by äärioikeisto", ja
      Maailman menoa
      155
      2540
    2. Missä viipyy persujen lupaama euron bensa?

      En edes muista milloin bensapumpussa olisi ollut ykkösellä alkava litrahinta. Missä siis viipyy persujen lupaama euron b
      Maailman menoa
      148
      2377
    3. Kirje, PellePelottomalle.

      Tärkeää olisi luoda ystävyys, että se, jota rakastaa, on samalla paras ystävä ja luotettavin, jolle voi ja uskaltaa luot
      Ikävä
      102
      1072
    4. Meni kyllä aika solmuun

      Meidän tutustuminen 😐
      Ikävä
      64
      891
    5. Sinua oli kiihottavaa

      Sinua nainen oli kiihottavaa katsella.
      Ikävä
      65
      829
    6. Persut jakavat tekoälyllä tehtyjä kuvia maahanmuuttajista somessa

      Eivät mainitse, että ovat tekoälyllä tehtyjä. Eivät näe asiassa mitään ongelmaa. Valehtelijapuolue taas vauhdissa. Unka
      Maailman menoa
      274
      717
    7. Mistä löytyy naisseuraa sinkkumiehelle?

      Kertokaapas kokeneemmat mistä löytyis naisseuraa sinkulle. Ihan ois eukko nyt tosissaan hakusessa. Tanssipaikat kun on a
      Kuhmo
      18
      717
    8. Voi teitä naisia

      Suudeltiin ja nukuttiin toisissamme kiinni mutta pillua ei tullu, ei edes aamulla. t.38vmies
      Sinkut
      85
      710
    9. Martinan hevoset.

      Tämä todella kaunis ja ketterä harmaa hevonen jolla monet kilpailut voitetaan ei ole Martinan.Tytär ratsastaa sillä tait
      Kotimaiset julkkisjuorut
      203
      680
    10. Hyvä meininki

      TTP:ssa väkeä tosi runsaasti paikalla. Hyvää ruokaa jälleen ja munkit ja sima erinomaista. Kiitos yrittäjälle! Hieno Vap
      Haapavesi
      22
      658
    Aihe