ЗАДАЧИ
problems.ru
О проекте | Об авторах | Справочник
Каталог по темам | по источникам |
К задаче N

Проект МЦНМО
при участии
школы 57
Задача 102951
Тема:    [ Прочие задачи на сообразительность ]
Сложность: 3+
Классы:
Название задачи: Правдивое предложение .
В корзину
Прислать комментарий

Условие

В этой задаче вы должны построить предложение русского языка, которое говорит о себе правду, только правду, и ничего кроме правды. Это предложение должно содержать в себе информацию о количестве букв, слов, пробелов, запятых, точек, кавычек в предложении и о количестве вхождений в предложение всех его слов. Оно должно быть орфографически и пунктуационно правильным, а также корректным с точки зрения русского языка. Все числительные должны быть записаны словами.

Моделью такого предложения (не удовлетворяющей лишь свойству правдивости) может служить такой текст:
В этом предложении сто букв, двадцать слов, десять запятых,
двадцать пробелов, десять кавычек, одна точка, два слова "В",
два слова "этом", два слова "предложении", два слова "сто", два
слова "букв", два слова "двадцать", десять слова "десять",
десять слов "слова", два слова "слов", два слова "запятых", два
слова "пробелов", два слова "кавычек", два слова "одна", два
слова "точка", десять слов "два".


Выходные данные

В выходной файл нужно выдать правдивое предложение. Предложение должно быть не длиннее 10 килобайт. Оно может содержать также иную (правдивую) информацию. Предложение должно быть как можно короче.

Решение

Скачать архив тестов и решений

Возьмем в качестве исходного любое предложение русского языка. На каждом очередном шаге будем строить предложение, описывающее предыдущее (см. условие задачи). Рано или поздно на очередной итерации мы либо получим предложение, совпадающее с предыдущим (и тогда задача решена), либо войдем в цикл большей длины. В последнем случае (можно не проверять, что мы зациклились, а заменить эту проверку тем условием, что было выполнено достаточно большое число итераций) повторим процесс, отталкиваясь от другого исходного предложения. Эксперименты показывают, что правдивое предложение после нескольких таких попыток обязательно будет построено. Шансов на успех больше в том случае, если исходные предложения были истинны.

Когда «правдивое предложение» найдено, можно написать новую программу, которая станет окончательным решением задачи. В ней полученное предложение нужно записать в виде одной или нескольких строковых констант, а саму программу устроить так, чтобы при запуске она просто выдавала эти константы.

Источники и прецеденты использования

книга
предмет информатика
Автор Беров В., Лапунов А., Матюхин В., Пономарев А.
Название Особенности национальных задач по информатике
Издательство Триада-С
Год издания 2000
глава
Номер 6
Название Задачи на разные темы
Задача
Номер 6

© 2004-... МЦНМО (о копирайте)
Пишите нам

Проект осуществляется при поддержке Департамента образования г.Москвы и ФЦП "Кадры" .