Syntymäpäivä ongelma

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....
262478
1Äänestä

Muut lukivat myös

Vastaukset 26

Vanhimmat

Äkkiä pähkäillen: 1-(kaikki eri päivinä)-(kahdella sama)
(aika iso kyllä tulee: 0,4)
https://www.wolframalpha.com/input/?i=1-(364*363*362*361*360*359*358*357*356*355*354*353/365^12-(1/365*13*12/(2*1)))

Äänestä
  • Muuttuuko kaava, jos halutaan huomioida karkauspäivät?

    Äänestä

  • 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.

    1Äänestä

  • 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?

    Äänestä

  • Ei_taida mennä aivan noin !

    Äänestä

Binomikaava esiin.

Äänestä

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

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

    Äänestä

  • 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ä.

    Äänestä

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

Äänestä

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ä.

Äänestä

  • 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)

    Äänestä

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.

Äänestä

  • Binomikavaa soveltamalla sain 0.00210.

    Äänestä

  • 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

    Äänestä

  • 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

    Äänestä

  • 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ää)

    Äänestä

  • 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.

    Äänestä

  • 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.

    Äänestä

  • 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.

    Äänestä

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ä?

Äänestä

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.

Äänestä
  • 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

    Äänestä

  • 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.

    Äänestä

Kommentoi aloitusta


Mitenkä kirjoitti:

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....

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu