Ř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
Petr Krčmář pracuje jako šéfredaktor serveru Root.cz. GNU/Linuxem a Unixem obecně se zabývá již více než deset let a věnuje se především jeho nasazení v počítačových sítích a bezpečnostní politice. Zde bloguje o Root.cz, Linuxu, internetu a světě kolem sebe.
Přečteno 99 247×
Přečteno 86 286×
Přečteno 68 603×
Přečteno 56 686×
Přečteno 51 943×