Игра Яндекс Практикума
Игра Яндекс Практикума
Игра Яндекс Практикума

Сможете получить MU из MI, используя 4 правила?

Отредактировано

У вас есть 4 правила для преобразования строк. Сможете ли вы превратить MI в MU, не нарушая их?

5К открытий5К показов

У вас есть строка MI. Выясните, можно ли получить из неё строку MU, используя только следующие правила:

  1. Если строка заканчивается на I, можно добавить в конец U. Пример: MI -> MIU.
  2. Можно удвоить часть строки после M, то есть изменить Mx на Mxx. Пример: MIU -> MIUIU.
  3. Можно заменить III на U. Пример: MUIIIU -> MUUU.
  4. Можно удалить UU. Пример: MUUU -> MU.
Ответ

Нельзя.

Почему?

Если проанализировать правила, легко заметить, что у нас может быть всего одна M, которая уже есть в исходной строке. Это важно для понимания второго правила.

Теперь возьмём n — количество повторений I в строке. Для начальной строки MI n = 1, что не делится на 3. Только второе и третье правило могут изменять n, удваивая её или уменьшая на 3. Никакая из этих операций не может дать нам n, которая делится на 3 без остатка, если n не делилась на 3 до преобразований. Нам нужно получить строку MU, где n = 0 и как следствие делится на 3. Эта строка не может быть получена из MI, где n = 1 и не делится на 3.

Следите за новыми постами
Следите за новыми постами по любимым темам
5К открытий5К показов