Logik

Písmenkový Logik je hra pro dva hráče, která má následující pravidla:
1. První hráč si myslí pětipísmenné slovo, v němž se žádné písmeno ne-
opakuje.
2. Druhý hráč napíše nějaké pětipísmenné slovo.
3. První hráč odpoví dvěma čísly — první číslo udává, kolik písmen na-
psaného slova se shoduje s myšleným slovem, tzn. stojí také na správ-
ném místě; druhé číslo udává, kolik písmen napsaného slova je obsa-
ženo v myšleném slově, ale nestojí na správném místě.
4. Kroky 2 a 3 se opakují, dokud druhý hráč myšlené slovo neuhodne.
Záznam jedné hry dvou kamarádů vypadal následovně:
SONET 1 2
MUDRC 0 2
PLAST 0 2
KMOTR 0 4
ATOLY 1 1
DOGMA 0 2

V následujícím tahu bylo myšlené slovo uhodnuto. Určete, které slovo
to bylo.

Poznámka:
Námi uváděné řešení obsahuje program v jazyce PHP, který danou kombinaci písmen vyřeší - metodou hrubé síly, rychle a bezbolestně.

Výsledek

x = (Správná odpověď je: STROM) Nesprávné

Řešení:

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

    }
}








Napište nám komentář ke příkladu a řešení (například pokud je stále něco nejasné ...):

0 komentářů:
1st comment
Buďte první, kdo napíše komentář!
avatar




K vyřešení tohoto příkladu jsou potřebné tyto znalosti z matematiky:

Chceš si dát spočítat kombinační číslo? Viz také naši kalkulačku permutaci.

Další podobné příklady:

  1. Heslo
    codes V rozvodně se každý den mění hlavní heslo, které se skládá z 3 písmen. Způsob generování kódu se však nemění a je založen na následujícím postupu: Následující písmena (A) až (I) odpovídají různým číslicím od 1 do 9. Pokud bychom písmena nahradili číslicem
  2. Osum kvádrů
    cuboids Dana měla za úlohu uložit osum kvádrů podle těchto pravidel: 1. Mezi dvěma červenými kvádry musí být jeden jiné barvy. 2. Mezi dvěma modrými musí být dva jiné barvy. 3. Mezi dvěma zelenými musí být tři jiné barvy. 4. Mezi dvěma žlutými kvádry musí být
  3. Hrací karty
    playing_cards Kolika způsoby lze zamíchat 9 hracích karet?
  4. Trojmístné čísla
    poker_hand_ranking Kolik je všech trojmístných čísel z číslic 2 0 4 6 8 (s/bez opakování)?
  5. Roberti (Z7–I–4)
    1-robot V robotí škole do jedné třídy chodí dvacet robotů Robertů, kteří jsou očíslováni Robert 1 až Robert 20. Ve třídě je zrovna napjatá atmosféra, mluví spolu jen někteří roboti. Roboti s lichým číslem nemluví s roboty se sudým číslem. Mezi Roberty s lichým čí
  6. Klávesy
    klavesy Míša mel na poličce malé klávesy, které vidíte na obrázku. Na bílých klávesách byly vyznačeny jejich tóny. Klávesy našla malá Klára. Když je brala z poličky, vypadly jí z ruky a všechny bílé klávesy se z nich vysypaly. Aby se bratr nezlobil, začala je Klá
  7. Obdélníky
    rectangles Kolik je obdélníků, jejichž délky stran jsou vyjádřeny přirozenými čísly a mají obsah 3002 cm2?
  8. Hokejisté
    players Po vystřídání si na střídačce náhodně sadlo vedle sebe pět hokejistů. Jaká je pravděpodobnost, že dva nejlepší střelci z této pětice budou sedět vedle sebe?
  9. Svetry
    sveter Mám vedle sebe umístit 4 svetry, dva jsou bily, 1 cervenej a 1 zelenej, kolika způsoby to jde?
  10. Telefonní čísla
    old_phone Kolik různých 7-místných telefonních čísel lze sestavit z číslic 0,1,2, .., 8,9 tak aby se žádná číslice neopakovala?
  11. Police
    bookshelf.JPG Kolika způsoby lze seřadit 6 knih na polici?
  12. Třída
    kids Kolika různými způsoby mohou sedět vedle sebe 5 chlapců a 5 dívek, pokud chtějí dívky sedět na kraji?
  13. Zámek
    combination-lock Kombinační zámek se otevře, když je vybrána správná volba 3 čísel (1 až 25 včetně). A. Koľko různých kombinací zamknutí je možných? B. Je správně použit název kombinační zámek?
  14. Vlajky
    vlajka_cz Kolik různých vlajek lze vytvořit z látek barvy modré, fialové, oranžové, žluté, zelené, bílé, rudé tak aby každá vlajka se skládala ze tří různých barev?
  15. Šachy
    sachovnica Kolik způsoby je možno na klasické šachovnici s 64 poli vybrat 4 polia tak, aby pole neměly stejnou barvu?
  16. Heslo dalibor
    lock Kamila si chce změnit heslo daliborZ tak, že a) dvě souhlásky vymění navzájem mezi sebou, b) změní jednu malou samohlásku na stejnou velkou samohlásku c) udělá obě změny. Kolik možností má na výběr?
  17. Olympiáda
    olimpiada-medaliile Kolika způsoby se mohou umístit 6 závodníci na medailových pozicích na olympiádě? Na barvě kovu záleží.