Logik

Písmenkový Logik je hra pre dvoch hráčov, ktorá má nasledujúce pravidlá:
1. Prvý hráč si myslí pětipísmenné slovo, v ktorom sa žiadne písmeno neopakuje.
2. Druhý hráč napíše nejaké 5-písmenné slovo.
3. Prvý hráč odpovie dvoma číslami - prvé číslo udáva, koľko písmen napísaného slova sa zhoduje s mysleným slovom, tzn. stojí tiež na správnom mieste; druhé číslo udáva, koľko písmen napísaného slova je obsiahnuté v myslenom slove, ale nestojí na správnom mieste.
4. Kroky 2 a 3 sa opakujú, kým druhý hráč myslenej slovo neuhádne.
Záznam jednej hry dvoch kamarátov vyzeral nasledovne:
SONET 1 2
MUDRC 0 2
PLAST 0 2
KMOTR 0 4
ATOLY 1 1
DOGMA 0 2

V nasledujúcom ťahu bolo myslené slovo uhádnuté. Určte, ktoré slovo
to bolo.

Poznámka:
Nami uvádzané riešenie obsahuje program v jazyku PHP, ktorý danú kombináciu písmen vyrieši - metódou hrubej sily, rýchlo a bezbolestne.

Správna odpoveď:

x = STROM

Postup správneho riešenia:

x = STROM
function match($s1, $s2, $q, $w)
{
    $a = $b = 0;
    for($i=0;$i<5;$i++)
    {
        if($s1{$i} == $s2{$i})
        {
            $a++;
        }
        else
        {
            $b += strpos($s2, $s1{$i})!==false;
        }
    }

    return $a == $q && $b == $w;
}

for($a=65; $a<91; $a++)
{
    for($b=65; $b<91; $b++)
    {
        for($c=65; $c<91; $c++)
        {
            for($d=65; $d<91; $d++)
            {
                for($e=65; $e<91; $e++)
                {
                    $s=chr($a).chr($b).chr($c).chr($d).chr($e);
                    if(!match($s,"SONET", 1, 2)) continue;
                    if(!match($s,"MUDRC", 0, 2)) continue;
                    if(!match($s,"PLAST", 0, 2)) continue;
                    if(!match($s,"KMOTR", 0, 4)) continue;
                    if(!match($s,"ATOLY", 1, 1)) continue;
                    if(!match($s,"DOGMA", 0, 2)) continue;

                    echo $s;
                    exit;
                }
            }
        }

    }
}




Našiel si chybu či nepresnosť? Kľudne nám ju napíš.







Tipy na súvisiace online kalkulačky
Pozrite aj našu kalkulačku permutácií.
Chceš si dať zrátať kombinačné číslo?

Na vyriešenie tejto úlohy sú potrebné tieto znalosti z matematiky:


 
Odporúčame k tejto úlohe z matematiky si pozrieť toto výukové video: video1   video2

Súvisiace a podobné príklady: