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

2446

    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. Nato kaatamassa Petterin haaveileman Tunnin junan?

      Nato edellyttää pohjoisessa Jäämereltä Rovaniemelle saakka kapearaitesta suoraa rautatieväylää, joka maksaa paperirahaa,
      Maailman menoa
      69
      4987
    2. Puoluebarometri: Marinin hallituksella 7 parasta mittaustulosta

      Orpon hallitusta pitää huonona 2/3 kansalaisista, joka on aika hyvin linjassa hallituspuolueiden yhteenlasketun kannatuk
      Maailman menoa
      37
      3778
    3. Donald Trump pääsi samalle listalle Sanna Marinin kanssa

      Eli vasemmistolaisen Time-median top 100 jännäihmisten listalle. https://time.com/collections/time100-next-2021/5937699
      Maailman menoa
      24
      3369
    4. Vieläkö olet

      Rakastunut minuun? Minä sinuun
      Ikävä
      81
      2367
    5. Ei siinä kauan

      Menisi jos olisimme kahden
      Ikävä
      24
      1899
    6. Tekeekö hän

      Tekeekö hän sinut h*lluksi ja millä tavalla? Uusi yritys, kun edellinen aloitus poistettiin.
      Ikävä
      27
      1581
    7. Laine voitti oikeudessa

      Onnea Savonlinna! Laine voitti oikeudessa kuten arvelinkin ja lieköhän palaa valtaisuimelleen?
      Savonlinna
      40
      1532
    8. Grahn-laasonen taas todisti millaista porukkaa

      kokoomusloiset ovat...työttömät jäävät kuulemma kotiin nukkumaan kun naapuri lähtee töihin...eikös taannoin kokoomuslois
      Maailman menoa
      333
      1499
    9. Puistotyöntekijät

      Miksi ei siivoojia näy. Näin hyvät ilmat. Voisi kerätä roskat. Onko rahat loppu. 🤔🤔🤔
      Ähtäri
      15
      1475
    10. Onko kaivatullasi iso ego? Entä sinulla?

      Vaikuttaako jommankumman ego jotenkin siihen, että ette voi lähentyä?
      Ikävä
      33
      1340
    Aihe