действительно ли возможно записать программу, которая печатает ее собственный исходный код, использующий “производящую функцию последовательности”

действительно ли возможно записать программу, которая печатает ее собственный исходный код, использующий "производящую функцию последовательности"?

что я называю, производящая функция последовательности является просто функцией, которая возвращает значение из определенного интервала (т.е. печатаемый ascii-charecters (32-126)). точка теперь, что эта сгенерированная последовательность должна быть программами собственный исходный код. как Вы видите, реализовывая функцию, которая возвращается, произвольная последовательность действительно тривиальна, но так как возвращенная последовательность должна содержать реализацию самой функции, это - очень нетривиальная задача.

это - то, как такая программа (и ее соответствующий вывод) могла быть похожей

#include <stdio.h>

int fun(int x) {
    ins1;
    ins2;
    ins3;
    .
    .
    .
    return y;
}

int main(void) {
    int i;
    for ( i=0; i<size of the program; i++ ) {
        printf("%c", fun(i));
    }
    return 0;
}

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

9
задан alain.janinm 29 April 2012 в 15:59
поделиться

3 ответа

Если вы знаете, как закодировать массив как функцию (похоже, вы говорите, что уже знаете, как это сделать), то теорема рекурсии Клейна гарантирует, что это можно сделать.

Но для сомневающихся Томасов, вот пример на Си. В нем есть функция генерации программы, которая использует только +, -, *, / или вызывает другие функции, которые их используют.

Квины всегда возможны, если у вас есть полнота Тьюринга и свобода печатать то, что вам нравится.

2
ответ дан 5 December 2019 в 01:42
поделиться

То, что вы имеете в виду, - это КОЙНА. Статья в Wiki об этом довольно хороша, с некоторыми полезными ссылками. http://en.wikipedia.org/wiki/Quine_%28computing%29

1
ответ дан 5 December 2019 в 01:42
поделиться

Чтобы улететь по касательной, попробуйте посмотреть на формулу самореферентности Таппера .

0
ответ дан 5 December 2019 в 01:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: