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.

Výsledok

x = (Správna odpoveď je: STROM) Nesprávne

Riešenie:

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;
                }
            }
        }

    }
}








Napíšte nám komentár ku príkladu a riešeniu (napríklad ak je stále niečo nejasné...):

Zobrazujem 0 komentárov:
1st comment
Buďte prvý, kto napíše komentár!
avatar




Na vyriešenie tohto príkladu sú potrebné tieto znalosti z matematiky:

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

Ďaľšie podobné príklady:

  1. 16 študentov
    postielka_1 16 študentov na brigáde sa má ubytovať v jednej 8 posteľovej a dvoch 4 postelových izbách. Koľkými spôsobmi môžu to môžu spraviť?
  2. Danka 2
    dvojice_2 Danka a Janka zbierajú servítky. Danka mala o 9 viac ako Janka, a preto jej 7 dala. Ktorá má teraz viac servítok a o koľko?
  3. Traja 17
    terc2_2 Traja študenti sa nezávisle od seba pokúšajú vyriešiť úlohu. Prvý študent podobné úlohy vyrieši s pravdepodobnosťou 0,6, druhý študent s pravdepodobnosťou 0,55 a tretí s pravdepodobnosťou 0,04. Úloha je vyriešená, Aká je pravdepodobnosť, že ju vyriešil prv
  4. Koľko 18
    numbers_49 Koľko 3-ciferných čísel možno zostaviť z cifier 1,3,5,7,9 ak cifry nesmú v zápise čísla opakovať? Koľko z nich je delitelných piatimi?
  5. V kine
    cinema2_11 V kine sedi vedľa seba 7 chlapcov. Koľkými spôsobmi sa môžu usadiť na sedadlá, ak chlapci chcú sedieť vedľa seba?
  6. Aranžér
    oblek2_1 Aranžér má vo výklade vystaviť tri rovnaké béžové, dva rovnaké zelené a jeden čierny kabát. Koľkými spôsobmi to môže spraviť?
  7. Záhradník 2
    stromcek_4 Záhradník má zasadiť 6 okrasných stromčekov. K dispozicií má 8 rozličných druhov stromov. Dva stromy A a B majú byť zasadené na ľavom okraji. Koľkými spôsobmi to môže záhradník spraviť, ak všetky zasadené stromčeky majú byť rôzne?
  8. Ktoré
    numbers2_45 Ktoré prirodzené číslo menšie ako 100 má najväčší počet deliteľov?
  9. Traja 18
    gulky_9 Traja kamaráti mali na začiatku hry guľôčky v pomere 2:7:4. Mohli mať na konci hry rovnaký počet guľôčok? Zapíšte 0, ak nie, alebo zapíšte minimálny počet guľôčok ktoré spolu mali.
  10. Do triedy
    ziacka_9 Do triedy chodí viac ako 20, no menej ako 40 žiakov. Tretina žiakov napísala test z matematiky na jednotku, šestina na dvojku a devätina na trojku. Nikto nedostal štvorku. Koľko žiakov triedy napísalo test na päťku?
  11. 255 študentov
    fr_1 255 študentov istej strednej školy ovláda okrem anglického jazyka jeden ďalší jazyk. Nemecký jazyk ovláda o 23 žiakov viac než ruský jazyk. Francúzsky jazyk ovláda o 37 žiakov menej než nemecký jazyk. Koľko žiakov ovláda nemecký jazyk?
  12. Nádoby 2
    gule_4 V prvej nádobe máme 3 biele a 6 čiernych guľôčok. V druhej nádobe máme 2 biele a 6 čiernych guľôčok. Z prvej nádoby náhodne preložíme do druhej nádoby 1 guľôčku. Aká je pravdepodobnosť, že potom z druhej nádoby vyberiem 2 biele guľôčky?
  13. Kniha 14
    books_30 Ak budeme čítať knihu rýchlosťou 15 stran denne prečítame ju o 3 dni skôr ako keby sme ju čitali rychlosťou 10 strán denne. Ak budem čitať rychlosťou 6 stran denne, kolko dni budem knihu čitať?
  14. Kráľ rozdelil
    dukat_1 Kráľ rozdelil dedičstvo svojim trom synom v pomere 7:6:4. Dvaja z nich dostali spolu 286000 zlatých. Koľko dostal každý zo synov.
  15. Rudo má
    autosalon_3 Rudo má trikrát viac autíčok ako jeho kamarát Braňo. Keď obom zobral Rudov mladší brat Igorko po 4 autíčka, mal ich Rudo päťkrát viac ako Braňo. Koľko autíčok má Braňo teraz?
  16. Obvod 18
    rectangle_15 Obvod obdĺžnika je 90 m. Rozdeliť ho na obdĺžniky, kratšiu stranu majú všetky tri obdĺžniky rovnakú, ich dlhšie strany sú tri za sebou idúce prirodzené čísla. Ako vypočítať rozmery každého obdĺžnika?
  17. Vypočítajte 5
    rt_triangle_1 Vypočítajte dĺžky strán a uhly v pravouhlom trojuholníku. S=210, o=70.