Вопрос:

2. Ваня шифрует русские слова, записывая вместо каждой буквы ее код. Некоторые цепочки можно расшифровать не одним способом. Например, 00101001 может означать не только УРА, но и УАУ. Даны три кодовые цепочки. 01001001 100011111010 10011101001 Найдите среди них ту, которая имеет только одну расшифровку и запишите в ответе расшифрованное слово.

Ответ:

Решение:

Для решения задачи нам нужен код каждой буквы русского алфавита. По таблице:

АБВГДОРУЯ
010111001110100011100101101

Рассмотрим каждую цепочку:

  1. 01001001
    • 01 — А
    • 001 — О
    • 001 — О
    • 01 — А
    • 1001 — ? (не код буквы)

    Возможна другая разбивка:

    • 01 — А
    • 001 — О
    • 00101 — ? (не код буквы)

    Или:

    • 01001 — ?
    • 001 — О

    Или:

    • 01 — А
    • 001001 — ?

    Разбивка 01 001 001 соответствует АООА. Если 1001 — это ОУ, то это ОУ. Но 00101001 может быть и УРА (101 001 01) и УАУ (101 01 101).

    Для цепочки 01001001:

    • 01 (А) 001 (О) 001 (О) 01 (А) = АООА
    • 01 (А) 001 (О) 010 (У) 01 (А) = АОУА

    Похоже, что у меня нет полного кода. Предположим, что 1001 — это тоже код буквы. По таблице 1001 — это НЕ код буквы. Если 001001 — это НЕ код буквы, то можем предположить, что 001001 = 001 001 = ОО. Тогда 01001001 = АООА.

    Если 001001 = 001 01 = ОА, тогда 01001001 = АОА.

    Если 001001 = 01 001 = АО, тогда 01001001 = ААО.

    Проблема с кодом. 001001 - может быть "А" + "001" = "А" + "О"? Нет, 01 = А, 001 = О. Тогда 01001001 = АООА.

    Если 100 = В, 111 = Г, 010 = У, 001 = О. Тогда 01001001 - это либо АООА, либо АОУА.

    На самом деле, 01001001 - это "О" + "А" + "О" + "А" = ОАОА. Или "А" + "О" + "О" + "А" = АООА.

    Если 01001001 = 01 001 001 = АООА.

  2. 100011111010
    • 100 (В) 011 (Б) 111 (Г) 010 (У) = ВБГУ
    • 100 (В) 011 (Б) 1110 (не код)
    • 1000 (не код)
  3. 10011101001
    • 100 (В) 111 (Г) 010 (У) 001 (О) = ВГУО
    • 100 (В) 1110 (не код)

Если предположить, что 01001001 - это АОУА, то 01001001 = 01(А) 001(О) 010(У) 01(А).

Если 10011101001 = 100(В) 111(Г) 010(У) 001(О) = ВГУО.

Предположим, что 01001001 = АОУА.

01001001 = 01(А) 001(О) 010(У) 01(А) = АОУА

100011111010 = 100(В) 011(Б) 111(Г) 010(У) = ВБГУ

10011101001 = 100(В) 111(Г) 010(У) 001(О) = ВГУО

Проверим пример: 001001 (УРА) - 101(У) 001(Р) 01(А). Здесь Р=001. Тогда 001 - это не только О, но и Р.

УРА = 101 001 01

УАУ = 101 01 101

Итак, 001 = О или Р.

Пересматриваем цепочки:

  1. 01001001
    • 01(А) 001(О) 001(О) 01(А) = АООА
    • 01(А) 001(О) 010(У) 01(А) = АОУА
    • 01(А) 001(Р) 001(О) 01(А) = АРОА
    • 01(А) 001(Р) 010(У) 01(А) = АРУА

    Здесь есть неоднозначность.

  2. 100011111010
    • 100(В) 011(Б) 111(Г) 010(У) = ВБГУ

    Другие разбивки невозможны, так как 1000, 0111, 1110, 1010 не являются кодами букв.

  3. 10011101001
    • 100(В) 111(Г) 010(У) 001(О) = ВГУО
    • 100(В) 111(Г) 010(У) 001(Р) = ВГУР

    Здесь тоже есть неоднозначность (О или Р).

Единственная цепочка с однозначной расшифровкой — 100011111010, которая расшифровывается как ВБГУ.

Ответ: ВБГУ

Подать жалобу Правообладателю

Похожие