За последние 24 часа нас посетили 112693 программиста и 5152 робота. Сейчас ищут 3119 программистов ...

Головоломка с BBC

Тема в разделе "Беседы", создана пользователем dcc0, 14 дек 2023.

  1. dcc0

    dcc0 Активный пользователь

    С нами с:
    27 июн 2014
    Сообщения:
    219
    Симпатии:
    4
    Свежая головоломака с сайта BBC. Утвеждают, что такие дают британским школьникам
    MI*MI=MAA
    TI+TI=RA
    DO-SO+TI-MI=RE
    RE*RE=?


    RE*RE=TREE (3600)

    P.S.
    Вроде элементрано, а все равно можно и застопориться.
     
    #1 dcc0, 14 дек 2023
    Последнее редактирование модератором: 21 дек 2023
  2. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Небольшое уточнение.
    Это головоломка не от BBC, а от GCHQ (Британское агентство разведки, безопасности и кибербезопасности )
    https://www.gchq.gov.uk/
    Ежегодно 14 декабря GCHQ устраивают Рождественский конкурс для детей от 11-18 лет
    Это ссылка опубликована 14.12.2023
    https://www.gchq.gov.uk/files/2023 GCHQ Christmas Challenge.pdf

    Вы показали вопрос не полностью. Потеряна первая строка.
    Each letter represents a difference digit:
    MI+MI=MAA
    TI+TI=RA
    DO-SO+TI-MI=RE
    RE*RE=?
     
    #2 Vladimir Kheifets, 15 дек 2023
    Последнее редактирование модератором: 21 дек 2023
    Дюран нравится это.
  3. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    К сожелению, не могу исправить опечатку. Верно так.
    Each letter represents a different digit:
    MI+MI=MAA
    TI+TI=RA
    DO-SO+TI-MI=RE
    RE*RE=?
     
  4. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    MI*MI=MAA
    --- Добавлено ---
    у меня получается
    RE * RE = TREE
    60 * 60 = 3600
    при этом все буквы расшифровал, кроме O - она может быть или 7 или 8, на ответ не влияет
     
    dcc0 нравится это.
  5. miketomlin

    miketomlin Старожил

    С нами с:
    9 авг 2016
    Сообщения:
    3.861
    Симпатии:
    656
    Спасибо, кэп. А то у меня чуть взрыв мозга не случился.
     
  6. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Спасибо. Верно M * MI = MAA , извиняюсь, MI + MI = MAA скорпировал у dcc0
    у меня получилось так
    E = 0
    M = 1
    I = 2
    T = 3
    A = 4
    S = 5
    R = 6
    O = 7|8
    D = 9

    MI * MI = MAA => 12 * 12 = 144

    TI + TI = RA => 32 + 32 = 64

    DO - SO + TI - MI = RE
    ("O" = 7) => 97 - 57 + 32 - 12 = 60
    ("O" = 8) => 98 - 58 + 32 - 12 = 60

    RE * RE = ? => REE => 60 * 60 = 3600
     
  7. dcc0

    dcc0 Активный пользователь

    С нами с:
    27 июн 2014
    Сообщения:
    219
    Симпатии:
    4
    Простите за опечатку. Зачем-то набрал руками, надо было скопировать.
    Мне показалась задачка интересной, хоть и простой.
    Сначала подумал, что ломать голову буду долго, но потом за пару минут, частью интуитивно, частью цепочкой рассуждений, нашёл ответ. Спасибо, что зашли размять мозги. :)
     
  8. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Добрый день!
    Спасибо за интересную задачку.
    Здесь моя "цепочкой рассуждений" https://github.com/VladimirKheifets/PHP-class-lettersDecode
    Demo: https://www.alto-booking.com/developer/lettersDecode/
    Удачи!
     
    artoodetoo нравится это.
  9. Дюран

    Дюран Активный пользователь

    С нами с:
    9 мар 2018
    Сообщения:
    291
    Симпатии:
    21
    Нельзя модератору исправить первое сообщение?
    Топикстартер там же два раза налажал, зачем неуважительно тратить время людей, которые зайдут в эту тему, они же не станут дальше подглядывать
     
  10. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.129
    Симпатии:
    1.223
    Адрес:
    там-сям
    Если бы автор попросил - без проблем. Я указал на ошибку в комментарии, а править чужие посты это плохая манера. Должны быть основания.
     
    #10 artoodetoo, 20 дек 2023
    Последнее редактирование: 20 дек 2023
  11. dcc0

    dcc0 Активный пользователь

    С нами с:
    27 июн 2014
    Сообщения:
    219
    Симпатии:
    4
    Здравствуйте. Если есть возможность, поправьте, пожалуйста, первое сообщение. У меня уже нет возможности.
     
    artoodetoo нравится это.
  12. Vladimir Kheifets

    Vladimir Kheifets Новичок

    С нами с:
    23 сен 2023
    Сообщения:
    485
    Симпатии:
    97
    Адрес:
    Бавария, Германия
    Добрый день!
    Ещё одна задачка с Рождественского конкурса GCHQ
    Find the pairs of letters which come next in sequence: WU,SQ,OM,??

    Вот, что получилось
    PHP:
    1. <?
    2. $str = "WU,SQ,OM";
    3. echo "Find the pairs of letters which come <br>next in sequence:
    4. <b>$str,??</b><hr>";
    5. $pairLetters = explode(",",$str);
    6. $lettersAlpha = explode(",","A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z");
    7. $lettersAlphaCode = array_flip($lettersAlpha);
    8.  
    9. $lettersToCode = [];
    10. $codeKey = [];
    11. foreach($pairLetters as $i => $pairLetter){
    12.     foreach(str_split($pairLetter) as $j => $letter)
    13.     {
    14.         $lettersToCode[$i][$j] = $lettersAlphaCode[$letter];
    15.         if($i>0)
    16.         {
    17.             $codeKey[] = $lettersToCode[$i][$j] - $lettersToCode[$i-1][$j];
    18.         }
    19.     }
    20. }
    21. $codeKey = array_unique($codeKey);
    22. if(count($codeKey) == 1)
    23. {
    24.     echo <<<EOF
    25.     <b>Сrack of the Caesar's Cipher</b><br><br>
    26.    Key of the cipher:  {$codeKey[0]}<br><br>
    27.    Next pair of letters after:<br>
    28.    EOF;
    29.   foreach($pairLetters as $pairLetter){
    30.        $tmp = str_split($pairLetter);
    31.        $nextPairLetter = "";
    32.        $pairLetterCode="";
    33.        foreach(str_split($pairLetter) as $letter)
    34.        {
    35.            $nextCode = $lettersAlphaCode[$letter] + $codeKey[0];
    36.            $nextPairLetter .= $lettersAlpha[$nextCode];
    37.            $pairLetterCode .= $lettersAlphaCode[$letter];
    38.        }
    39.        echo "$pairLetter is $nextPairLetter<br>";
    40.    }
    41.    echo "<hr>Next pair of letters after $str, is  $nextPairLetter";
    42. }
    43. else
    44.    echo "Key of the Caesar's Cipher not found. Encoding method is not defined";
    45. /*
    46. Find the pairs of letters which come
    47. next in sequence: WU,SQ,OM,??
    48.  
    49. Сrack of the Caesar's Cipher
    50.  
    51. Key of the cipher: -4
    52.  
    53. Next pair of letters after:
    54. WU is SQ
    55. SQ is OM
    56. OM is KI
    57.  
    58. Next pair of letters after WU,SQ,OM, is KI
    59. */
    60. ?>