2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




На страницу Пред.  1, 2, 3, 4  След.
 
 Re: Получила ли программа свой же код на вход?
Сообщение02.09.2014, 12:39 
А зачем тут требование тьюринг-полноты? HQ9+ и ему подобные обходятся без нее.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение02.09.2014, 12:56 
EtCetera в сообщении #902923 писал(а):
А зачем тут требование тьюринг-полноты?
Если его убрать, теорема, сформулированная EtCetera, станет неверной.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение02.09.2014, 23:26 
warlock66613 в сообщении #902933 писал(а):
теорема, сформулированная EtCetera, станет неверной
Прошу прощения, но я пока никакие теоремы не формулировал. :wink:

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение03.09.2014, 01:02 
warlock66613 в сообщении #902902 писал(а):
_hum_ в сообщении #901761 писал(а):
пусть есть универсальный (тьюринг-полный) язык программирования с интерпретатором $U$, который на вход принимает текст $p$ программы и исходные данные $x$ (в том же текстовом виде) для ее выполнения, а на выходе дает (в текстовом виде) результат $U(p,x)$ выполнения соответствующего программе алгоритма над данными $x$. Тогда существует такой текст программы $ p$, что $U(p,p) $ = "1", а $U(p,x)$ = "0", если $x \neq p$.
Я бы сформулировал более сильное утверждение - оно полнее отвечает на вопрос.

Пусть есть универсальный (тьюринг-полный) язык программирования с интерпретатором $U$, который на вход принимает текст $p$ программы и исходные данные $x$ (в том же текстовом виде) для ее выполнения, а на выходе дает (в текстовом виде) результат $U(p,x)$ выполнения соответствующего программе алгоритма над данными $x$. Тогда для любого текста программы $p_0$ существует текст программы $p$ такой, что 1) $U(p, \text{«1»} p)=\text{«1»}$; 2) $U(p, \text{«1»} x)=\text{«0»}$, $x \neq p$; 3) $U(p, \text{«0»} x)=U(p_0,x)$.

Честно говоря, я не понял Вашей идеи насчет "оно полнее отвечает на вопрос". И, например, для меня, на первый взгляд, вообще в таком варианте не очевидно, что ответ на изначальный вопрос положителен.

EtCetera в сообщении #902923 писал(а):
А зачем тут требование тьюринг-полноты? HQ9+
и ему подобные обходятся без нее.

Потому что без полноты нельзя гарантировать, что такая программа всегда существует.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение05.09.2014, 01:08 
_hum_ в сообщении #903202 писал(а):
Честно говоря, я не понял Вашей идеи насчет "оно полнее отвечает на вопрос".
Есть подозрение, что ТС хотел, чтобы программа не просто могла проверять, не подали ли ей на вход её собственный текст, но и чтобы эта программа делала что-то полезное (ну скажем могла напечатать 20 первых чисел Фибоначчи). То есть (возможно) вопрос должен был звучать так: "можно ли модифицировать уже существующую программу так, чтобы она (помимо основной задачи) могла определять, подали ли ей на вход её текст или нет?" Теорема, которую я написал выше, отвечает на этот вопрос положительно. (Правда я её не доказал.)

-- 05.09.2014, 02:11 --

_hum_ в сообщении #903202 писал(а):
И, например, для меня, на первый взгляд, вообще в таком варианте не очевидно, что ответ на изначальный вопрос положителен.
Утверждение в моём посте - более сильное, ваше получается из него как частный случай.

-- 05.09.2014, 02:16 --

(Оффтоп)

EtCetera в сообщении #903169 писал(а):
Прошу прощения, но я пока никакие теоремы не формулировал. :wink:
Значит это был _hum_. Это многое объясняет.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение14.09.2014, 14:38 
- "Локи, но зачем?"

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение14.09.2014, 19:34 
Аватара пользователя
 !  Theoristos, замечание за бессодержательное сообщение

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 14:20 
tenmin в сообщении #885673 писал(а):
Да, я уже сам придумал.

Код:
function f(p){return f.toString()===p?1:0;}

А ты хоть проверял свой код? Твоя функция работает только с нестрогой проверкой
Код:
==
Вот так правильно.
Код:
f=function(p){return f.toString()===p.toString()?1:0;}

Но опять же, узнаешь ли ты тут та ли эта программа или другая
Код:
f=function(p){return f.toString()===p.toString()?1:0;}
g=function(p){return f.toString()===p.toString()?1:0;}
console.log(f(f))//1
console.log(f(g))//1
console.log(f==g)//false

Это, как бы, философский вопрос.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 15:32 
Это не философский вопрос. Коды одинаковые, а считаются ли функции с одинаковыми кодами одинаковыми — это свойство конкретного ЯП и здесь не важно.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 15:42 
arseniiv в сообщении #908800 писал(а):
а считаются ли


И, что существенней: являются ли. Однако ТС расуждает безотносительно конкретного ЯП, поэтому, вопрос, по-прежнему, философский. Если бы он не был таковым, Вы, вероятно, смогли бы назвать критерии эквивалентности функций (или программ), безотносительно реализации, чего я пока не наблюдаю.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 16:05 
joke-100 в сообщении #908810 писал(а):
поэтому, вопрос, по-прежнему, философский
Поэтому вопроса просто нет.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 16:12 
arseniiv в сообщении #908825 писал(а):
Поэтому вопроса просто нет.


Нет, вопрос, по прежнему есть, например, следует ли считать эквивалентными программы с одинаковыми исходниками эквивалентными, или следует считать эквивалентными программы, которые делают одинаковые вещи, например, считать ли программы, f(x) return x и f(y) return y одной и той же программой. На мой взгляд, следует. В куайнах заложен изначально порочный взгляд на программы как на куски текста, однако кусок текста является не программой, а текстом программы, отсюда и идет вся эта зараза. Программа -- это абстракция, никак не связаная с тексовым ее представлением.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 16:18 
joke-100 в сообщении #908827 писал(а):
Нет, вопрос, по прежнему есть, например, следует ли считать эквивалентными программы с одинаковыми исходниками эквивалентными, или следует считать эквивалентными программы, которые делают одинаковые вещи, например, считать ли программы, f(x) return x и f(y) return y одной и той же программой.
Повторю: это уже зависимый от конкретного ЯП вопрос.

joke-100 в сообщении #908827 писал(а):
В куайнах заложен изначально порочный взгляд на программы как на куски текста, однако кусок текста является не программой, а текстом программы, отсюда и идет вся эта зараза.
Так вам кўайны не нравятся, что ли? Ну сразу бы так и написали, не темня.

joke-100 в сообщении #908827 писал(а):
Программа -- это абстракция, никак не связаная с тексовым ее представлением.
Осталось теперь определить, что вы понимаете под программой.

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 16:22 
arseniiv в сообщении #908832 писал(а):
что вы понимаете под программой.


Я понимаю под программой функцию (не ее синтаксическое представление -- текст). Так же можно считать программой абстрактную машину.

-- 17.09.2014, 17:28 --

arseniiv в сообщении #908832 писал(а):
Так вам кўайны не нравятся, что ли?


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

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

 
 
 
 Re: Получила ли программа свой же код на вход?
Сообщение17.09.2014, 17:06 
Аватара пользователя
joke-100 в сообщении #908770 писал(а):
А ты хоть проверял свой код?
 !  joke-100, замечание за фамильярность. Читайте Правила форума:
Forum Administration в Правилах форума #27356 писал(а):
1) Нарушением считается:

е) ..., фамильярность (у нас принято обращаться друг к другу на "Вы")...

 
 
 [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3, 4  След.


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group