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

2195

    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

        Koodi täällä: http://tpcg.io/oGXKwv
        Lopputulos sievnnetty tuosta saadusta rationaaliluvusta:
        http://www.wolframalpha.com/input/?i=11753675337747799989826426225 / 5591320323850160818242431640625


      • 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. Laaja sähkökatko Sallilan verkossa!

      Mä heräsin yhden maissa UPS:n piipittkseen, koska sähköt poikki ja on edelleen. Odottelin jonkun aikaa ja soitin vikanum
      Loimaa
      35
      1220
    2. KJ Konetimber OY

      Haettu konkurssiin Eläke yhtiö Ilmarisen toimesta.
      Kuhmo
      37
      1065
    3. Millä kirjaimella nimeni alkaa

      Ja montako kirjainta sukunimestäni voi laskea? N to M
      Ikävä
      60
      950
    4. Sosiaaliturvasäästöt kohdentuvat usein samoihin ihmisiin useampaan kertaan

      ja ihmisiä putoaa kiihtyvällä tahdilla toimeentulotuelle eli köyhien määrä kasvaa eksponentiaalisesti Suomessa. https:
      Maailman menoa
      173
      904
    5. Ampumisvälikohtauksen syynä kahden eri romanisuvun erimielisyydet

      Ikaalislainen romaniseurue joutui tahtomattaan tulitaisteluun etelä-pohjalaisen romanisuvun kanssa. Tilanne ei ratkennu
      Seinäjoki
      40
      736
    6. Hyviä tehokkaira vinkkejä erittäin pinttuneen wc pytyn puhdistukseen

      Eli semmonen vuokra-asunnon pytty jossa hyvin sitkeään pi ttyny se vesiosa. Kloriittia olen liottanu yön yli ja yleispuh
      Ikävä
      121
      723
    7. En nii kui tiiä yhtään

      Mikä suussa kiehtoo, vaikka kaiken pitäisi olla ihan hyvin! Mä niin haluaisin nähdä sut:)
      Ikävä
      57
      708
    8. Voiko "miehisen kunnian" käsitteen ohittaa?

      Palstalla kovasti pidetään minua jollain tavoin sairaana, kun puhun miehisestä kunniasta. Voidaanko me siis täysin ohi
      Sinkut
      144
      683
    9. Voi että, kaikki on nyt ohi

      Aijon nyt unohtaa kaiken. Morjes. Mieheltä
      Ikävä
      59
      637
    10. Et uskaltaisi kuitenkaan nähdä enää

      Niin mitäpä sitä enää vatkaamaan.
      Ikävä
      52
      631
    Aihe