Ещё раз про квайны

Вспомнил про придуманный мной куайн на Паскале.. А ведь можно ещё проще.

begin
randomize;
repeat
write(chr(random(80));
until keypressed;
end.

Метки:

2 комментария

  • Это чисто теоретическое решение несколько завуалированным образом отсылает нас к теореме «о бесконечных обезьянах» (http://ru.wikipedia.org/wiki/Теорема_о_бесконечных_обезьянах), которая утверждает, что абстрактная обезьяна, ударяя случайным образом по клавишам печатной машинки в течение неограниченно долгого времени, рано или поздно напечатает любой наперёд заданный текст (в частности, «Гамлет» Шекспира.
    Кроме различных сомнений философского характера в истинности этой теоремы, о большинстве которых можно прочитать из указанной статьи в википедии, есть и практические сложности с имплементацией данного куайна. Даже если мы позволим компьютеру работать неограниченное количество времени, возможно, что текст программы так и не будет напечатан. Дело в том, что операторы randomize и random обеспечивают выдачу псевдо-случайных чисел, а отнюдь не генерируют настоящую случайную последовательность. Поэтому может так статься, что именно нужная нам последовательность символов не появится никогда в силу этой псевдо-случайности.
    Тем не менее оригинальность подхода к задаче заслуживает восхищения!

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *