Различия между версиями 7 и 8
Версия 7 от 2021-11-28 22:07:20
Размер: 4908
Редактор: FrBrGeorge
Комментарий:
Версия 8 от 2021-11-28 23:23:50
Размер: 5004
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 38: Строка 38:
  * Проверяю каждую такую цепочку на введённом тексте, и как только там нашёлся фрагмент-инвариант, объявляю это решением!   * Пытаюсь перекодировать с помощью каждой такой цепочки введённую последовательность байтов, и если в тексте результата нашёлся фрагмент-инвариант, объявляю это решением!

Наши любимые Лев Николаевич и Анна Аркадьевна вновь пустились в приключения! На этот раз некто взял случайный фрагмент из 75 подряд идущих строк романа, и попытался их перекодировать. Но не точно из кодировки utf-8, а из случайной (набор разрешённых кодировок см. ниже). Кодировка, в которую происходило перекодирование, тоже была выбрана случайно из того же набора. Операция прошла успешно! Возможно, не один раз, а два или даже три (но не больше). Получилась редкостная бНОПНЯ. Вывести первую строку исходного фрагмента, в предположении, что обратная перекодировка также возможна.

  • Набор допустимых кодировок:
    • cp1026 cp1140 cp1256 cp273 cp437 cp500 cp775 cp850 cp852 cp855 cp857 cp860 cp861 cp862 cp863 cp865 cp866 gb18030 hp_roman8 iso8859_10 iso8859_11 iso8859_13 iso8859_14 iso8859_15 iso8859_16 iso8859_2 iso8859_4 iso8859_5 iso8859_9 koi8_r mac_cyrillic mac_greek mac_latin2 mac_roman utf_8
  • Ввод делать со стандартного ввода (не из файла)

…содержимое файла…
  • Файл с примером получен двумя операциями перекодирования:
    • cp775 → gb18030, cp1026 → iso8859_9
    • Например, в Linux это аналогично вот такой конструкции:
      • $ cat fragment | iconv -f cp775 -t gb18030 | iconv -f cp1026 -t iso8859-9 > bnopnya

      • Чтобы проверить: iconv -t cp1026 -f iso8859-9 bnopnya | iconv -t cp775 -f gb18030

  • Подсказка: число в 75 строк взято не случайно! В этой задаче сначала нужно поисследовать текст (я написал маленькую программку (спойлер): )

она. - Не говорите, пожалуйста, со мной про оперу, вы ничего не понимаете  в
  • Ещё один вариант редкостной бНОПНи, на этот раз 3 перекодировки

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

    • ('iso8859_5', 'utf_8') ('koi8_r', 'gb18030') ('iso8859_10', 'gb18030')

    • На моём компьютере решение заняло 5 секунд (но бывает и до 10; на EJudge, соответственно, примерно до 20)

Окончательный спойлер:


CategoryHomework

LecturesCMC/PythonIntro2021/Homework_BnopnyAnna (последним исправлял пользователь FrBrGeorge 2021-11-30 17:25:37)