Hlavní navigace

Názor ke článku Hádanka s rodinou a dvěma dcerami od jika - Řešení 2. hádanky zde http://petrkrcmar.blog.root.cz/spravna-odpoved-na-hadanku-dve-dcery/ je asi špatně, jak už...

  • 8. 9. 2009 12:05

    jika (neregistrovaný)

    Řešení 2. hádanky zde
    http://petrkrcmar.blog.root.cz/spravna-odpoved-na-hadanku-dve-dcery/
    je asi špatně, jak už zmínil David [109], nebo Karel [76]

    Jak jsem to nasimuloval v bashi :-)

    #!/bin/bash

    MAX_R=32767 # nejvetsi $RANDOM viz man bash
    M2=$[ $MAX_R / 2 ] # 1/2 je pravdepodobnost holky
    Mm=$[ $MAX_R / 10 ] # urcuje pravdepodobnost mandrivy
    POCET=10000 # pocet testovanych rodin

    function rodidlo() {
    if [ $RANDOM -lt $M2 ]; then dite="kluk"
    else dite="holka"
    fi
    }

    function pojmenuj() {
    if [ $RANDOM -lt $Mm ]; then jmeno="mandriva"
    else jmeno="jiny"
    fi
    }

    function rodina() {
    rodidlo #porodim prvni dite
    dite1=$dite
    if [ $dite1 = "holka" ] #pojmenuji ho
    then
    pojmenuj
    jmeno1=$jmeno
    else jmeno1="klucici"; fi
    rodidlo #porodim druhy
    dite2=$dite
    if [ $dite2 = "holka" ] #pojmenuji
    then
    if [ $jmeno1 = "mandriva" ] #aby nebyly obe holky mandrivy
    then
    jmeno2="jiny"
    else
    pojmenuj
    jmeno2=$jmeno
    fi
    else jmeno2="klucici"; fi
    }

    n2dcer=0
    n=0
    while [ $n -lt $POCET ]
    do
    rodina
    #if [ $dite1 = "holka" ] || [ $dite2 = "holka" ] #tedy jedno z nich je dcera
    if [ $jmeno1 = "mandriva" ] || [ $jmeno2 = "mandriva" ] #tedy jedno z nich je mandriva
    then
    if [ $dite1 = "holka" ] && [ $dite2 = "holka" ]; then n2dcer=$[ $n2dcer + 1 ]; fi
    n=$[ $n + 1 ]
    fi
    done
    echo $n2dcer $n
    echo $(echo "$n2dcer/$n" | bc -l)

    Pro pravděpodobnost jména Mandriva 1:10 to dává približně 0.48
    Změním-li tam na začátku pravděpodobnost Mandrivy na 1:2 dá to asi 0.42
    No a budou-li všechny holky Mandrivy stane se Mandriva synonymem k dcera a přejde to na první hádanku a opravdu mi to pak dává kolem 0.33