DollyPapper
@DollyPapper

Возможно ли создать программу путем перебора символов в файле?

Пришла в голову мысль и прошу знающий людей сказать, почему скорее всего(я так подозреваю), нельзя сделать сабж вопроса? Допустим мы написали алгоритм который просто вставляет в файл допустим столько символов, чтобы заполнить 1кк строк. Допустим наш компилятор очень умная вещь, которой не важно как мы соблюдаем грамматику языка. Не ставим скобки, не ставим пробелы, вобщем просто рандомно вставляем любые символы. Так же условимся, что чтобы создать нужную нам программу нужно именно миллион строк. Ну написал какой то программист программу, в ней миллион строк, она компилируется и работает. Мы путем полного перебора хотим полностью повторить эту программу. Так же у нас в распоряжении все компьютеры мира, чтобы каждый из них параллельно генерировал и компилировал эту программу. Возможно ли за конечное время, что программа будет создана?
  • Вопрос задан
  • 499 просмотров
Решения вопроса 1
Пригласить эксперта
Ответы на вопрос 8
@Caitiff_One
Обычный человек, начинающий разработчик:)
Определенно возможно, а точнее вероятность отлична от нуля, хоть и мала. Но ничто не помешает "слепому случаю" устроить всё так, что такой набор символов будет сгенерирован в первую же итерацию.
Ответ написан
Допустим, человек — очень умная вещь, и ему не важно, как мы соблюдаем грамматику языка. Не ставим скобки, не ставим пробелы, в общем просто рандомно вставляем любые символы. Также условимся, что чтобы создать нужную нам книгу, нужно именно миллион строк. Ну написал какой-то писатель книгу, в ней миллион строк, она читаема и понятна. Мы путем полного перебора хотим полностью повторить эту книгу. Также у нас в распоряжении все компьютеры мира, чтобы каждый из них параллельно составлял эту книгу. Возможно ли за конечное время, что книга будет создана?
Ответ написан
@asd111
Можно даже посчитать какова вероятность.
У нас 1 млн строк, в каждой строке пусть по 80 символов итого 80 млн символов на файл.
Допустим мы используем 60 символов из тех что есть на клавиатуре. Т.е. в каждом месте файла может быть один из 60 символов с клавиатуры.
Получим количество возможных вариантов файлов 60 в степени 80 млн.
Т.е. вероятность написать таким способом нужную программу равна 1 / 60 в степени 80 млн.
Ответ написан
Griboks
@Griboks
Возможно, но долго. Данный подход является одним из методов создания искусственного интеллекта - искусственная эволюция.
Ответ написан
saboteur_kiev
@saboteur_kiev Куратор тега Программирование
software engineer
Упоминая Теорему о бесконечных обезьянах, большинство совершенно не способно представить себе неограниченное время.

Таким образом теорема остается лишь теорией. На практике это невозможно в силу того, что мы не можем создать устройство, которое будет способно работать в течение неограниченного времени.

По вашему вопросу - программу, которая запускается и завершается - скорее всего можно случайным образом написать за минуту. Программу, которая выполняет некий алгоритм действий - зависит от размера программы - чем больше размер, тем геометрически больше времени понадобится.
Ответ написан
@DmitryUlitin
Виктор Пелевин в своем романе "IPhuck 10" раскрыл тему.
Он назвал это рандомным кодом (RCP – "random code programming").
Вот цитата из книги: "RCP – это близкое по идеологии, но совершенно иное по целям и результатам направление в программировании. Здесь мы генерируем не случайные комбинации входных данных, а случайные последовательности самого программного кода. А потом прикладываем к этому коду принципы "exhaustive testing".
Это как с обезьяной, способной за миллион лет настучать на машинке "Войну и мир" – только в случае с RCP мы отводим миллиард лет, делаем обезьяне серьезный оверклок воткнутым в задницу высоковольтным проводом – и ожидаем, что она напишет нам не "Войну и мир", а программу, способную написать "Войну и мир".
Качество задачи меняется – поэтому нужна очень высокая производительность и большие объемы памяти. Сегодня с этим проблем нет: мощности избыточны. Достаточно задать требования к выходным секвенциям, и мы рано или поздно получим программу, которая будет делать то, что нам угодно..."
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
iChar Санкт-Петербург
от 120 000 до 180 000 ₽
от 250 000 до 450 000 ₽
от 150 000 до 250 000 ₽
19 янв. 2021, в 19:21
20000 руб./за проект
19 янв. 2021, в 19:18
160000 руб./за проект
19 янв. 2021, в 18:59
40000 руб./за проект