Может программа производить копию себя

Можно использовать ClientID (точно так же, как все остальные сказали), но проблема с тем, который является, что она не может использоваться во внешнем Файле JavaScript.

Так, идеально, вместо того, чтобы использовать идентификатор для ссылки на него из jQuery, используют класс CSS:

<asp:Label ID="Label1" runat="server" Text="test" CssClass="myclass"></asp:Label>

Затем можно сослаться на него как такой:

$(".myclass")
22
задан Shahbaz 10 June 2012 в 12:08
поделиться

8 ответов

Да. Программа, которая может копировать себя, называется "quine".

Основная идея большинства quine:

  1. Вы пишете код, который принимает строковый литерал s и печатает его, в то время как заменяя вхождения (или вхождение ) специальной подстроки foo в s значением s самого.

  2. Вы берете весь исходный код программы и используйте его как определение для s . но вы исключаете определение s из строки , вместо этого заменяя его на foo .

Это общая идея. Остальное - это детали форматирования строк.

15
ответ дан 29 November 2019 в 03:42
поделиться

Он называется quine , и есть сайт , который собирает их .

36
ответ дан 29 November 2019 в 03:42
поделиться

Это называется Куайн :

Куайн - это компьютерная программа, которая не принимает никаких входных данных и производит копию собственного исходного кода в качестве единственного выхода. Стандартные термины для этих программ в теории вычислимости и литературе по информатике - это самовоспроизводящиеся программы, самовоспроизводящиеся программы и самокопирующие программы.

Quine - это фиксированная точка среды выполнения, когда среда выполнения рассматривается как функция. Куайнс возможен на любом полном языке программирования Тьюринга как прямое следствие теоремы Клини о рекурсии. Для развлечения программисты иногда пытаются разработать кратчайший из возможных quine на любом заданном языке программирования.

Источник: Wikipedia

5
ответ дан 29 November 2019 в 03:42
поделиться

Это действительно классический вопрос!

Помимо существования конкретных quines , важным результатом теории вычислимости является то, что для любая функция вы можете захотеть вычислить, существует программа, которая «знает свой собственный программный текст», то есть может распечатать себя при желании. Эта теорема называется второй теоремой рекурсии Клини .

4
ответ дан 29 November 2019 в 03:42
поделиться

Если вы пишете quine, будьте осторожны, чтобы копии не записывали копии самих себя до бесконечности и в конечном итоге захватили мир.

1
ответ дан 29 November 2019 в 03:42
поделиться

Я предполагаю, что вы разрешаете интерпретируемые языки. (На каком-то уровне интерпретируются все языки.) Кто-то пишет интерпретатор, и если вы его пишете, вы можете добавить к нему любые встроенные функции, которые вам нравятся, например, функцию (lispy) (foo) , который ничего не делает, кроме print « (foo) ».

Или вы можете добавить более сложную функцию типа макроса (printMeAndMyArgs ...) .

Итак весь фокус в том, как вы определяете проблему.

1
ответ дан 29 November 2019 в 03:42
поделиться

In the language invented by Jon Skeet the following operator prints "Hello, world!\n".

h

I can make a modification of this language so that the following program prints "Hello, world!\n":

Hello, world!

So that's the program that prints itself.

Oh, you feel something strange about it, while it has a precise and correct mathematical definition? That's your problem. "I won't accept..." ha! Mathematics does accept, and she's the mistress I serve, so I post this answer.

1
ответ дан 29 November 2019 в 03:42
поделиться

«Введение в теорию вычислений» Майкла Сипсера объясняет в одной из глав, как построить квайн. Недавно я написал программу на Java, основанную на этой идее, и разместил ее по адресу: http://bornagainprogrammer.net/2009/11/07/hello-world-from-the-tm-self/

I ' Я предлагаю вам взять эту книгу и попробовать реализовать программу на вашем любимом языке. В этой книге есть много других забавных теорем.

-kiran

0
ответ дан 29 November 2019 в 03:42
поделиться
Другие вопросы по тегам:

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