Questions tagged «quine»

quine是一个程序,它产生其源作为输出。该标签表明挑战与奎因有关。

11
自我修改相乘
...至少对于“自我修改”的某种定义 任务 在此挑战中,您的任务是编写三个字符串A,B并且C满足以下属性。 字符串的B长度至少为1。 对于每种n ≥ 0,字符串都是您选择的编程语言中的有效程序(表示完整的可运行程序或函数定义)。上标表示的重复,因此,这意味着字符串,,,等。每一个程序需要一个字符串作为输入,并返回一个串作为输出。ABnCACABCABBCABBBC 对于任何m, n ≥ 0程序,如果程序使用输入运行,它将返回。对于非这种形式的输入,程序可能会执行任何操作,包括崩溃。ABmCABnCABm*n+1C 格式program(input) -> output如下: AC(AC) -> ABC ABC(AC) -> ABC ABBBBBC(AC) -> ABC AC(ABC) -> ABC AC(ABBBBC) -> ABC ABC(ABC) -> ABBC ABBC(ABC) -> ABBBC ABBBBC(ABBBC) -> ABBBBBBBBBBBBBC ABBBC(ABBBBBBC) -> ABBBBBBBBBBBBBBBBBBBC 规则和计分 你的分数是总长度A和C较低的分数更好。请注意,虽然B不计入分数,但它必须由A和生成,C如第一个示例中所示。 不允许出现标准漏洞。不允许程序直接或间接访问其自己的源代码(除非将它们作为输入提供)。您需要识别字符串A,B并C以某种方式在您的答案中,并鼓励您解释您的解决方案。

20
写一个聚喹
聚喹啉既是奎宁又是多色。1您将写一个至少在两种不同语言中有效的藜。这是代码高尔夫球,因此最短的答案(以字节为单位)获胜。 1我弥补了。确切地说,Geobits做到了。显然,他也不是第一个。 规则 仅接受真正的奎因。也就是说,您需要将整个源代码原样打印到STDOUT,而无需: 直接或间接阅读您的源代码。 依靠REPL环境,该环境仅评估并打印您提供给它的每个表达式。 依靠在某些情况下仅能打印出源代码的语言功能。 使用错误消息或STDERR编写全部或部分的藜。(您可以将内容写到STDERR或产生警告/非致命错误,只要STDOUT是有效的Quine,并且错误消息不属于其中即可。) 此外,您的代码必须包含字符串文字。 多语规则 所使用的两种语言必须明显不同。特别是: 它们不能是同一语言的不同版本(例如,Python 2与Python 3)。 它们不能是同一语言的不同方言(例如Pascal与Delphi)。 一种语言可能不是另一种语言的子集(例如C与C ++)。

6
评分Tarzan的奥林匹克葡萄摇摆常规
奥运会的葡萄树摆动者在标准的树上执行常规活动。特别是,“标准树” n具有0向上穿过的顶点n-1以及将每个非零顶点连接a到其n % a下面的顶点的边。因此,例如,标准树5如下所示: 3 | 2 4 \ / 1 | 0 因为5除以3时的余数为2,所以5除以2或4时的余数为1,而5除以1时的余数为0。 今年,泰山将捍卫他的金新套路,每个始于顶点n - 1,秋千到顶点n - 2,继续顶点n - 3,等等,直到最后他卸除到顶点0。 例行程序的分数是每个挥杆(包括拆卸)的分数之和,挥杆的分数是树内起点和终点之间的距离。因此,Tarzan在标准树5上的例程得分为6: 从摇摆4到3得分3分(向下,向上,向上), 从摇摆3到2得分(下降)一分, 从摆动2到1得分1分(向下),并且 从下来1,0得分为1分(下降)。 编写一个程序或函数,给定一个正整数n,该程序或函数将计算Tarzan例程在Standard Tree上的得分n。样本输入和输出: 1 -> 0 2 -> 1 3 -> 2 4 -> 6 5 -> 6 6 -> 12 7 -> 12 8 …
32 code-golf  math  number  number-theory  code-golf  code-golf  restricted-source  programming-puzzle  css  code-golf  parsing  code-golf  random  encryption  code-golf  ascii-art  fractal  code-golf  math  code-golf  sorting  graph-theory  path-finding  permutations  code-golf  tetris  code-golf  card-games  code-golf  math  sequence  rational-numbers  code-golf  chess  code-golf  string  geometry  grid  code-golf  ascii-art  grid  code-golf  sequence  integer  code-golf  math  number-theory  packing  polyomino  code-golf  math  code-golf  string  quine  permutations  code-golf  math  code-golf  image-processing  optical-char-recognition  code-golf  string  kolmogorov-complexity  sequence  integer  code-golf  number  permutations  palindrome  code-golf  kolmogorov-complexity  code-golf  number  sequence  string  fewest-operations  code-golf  string  kolmogorov-complexity  sequence  primes  code-golf  string  ascii-art  code-golf  string  number  alphabet  code-golf  counting  code-golf  number  sequence  number-theory  primes  code-golf  subsequence  word-search 

7
三个多义词,两个句点,两个奎因和一个密码高尔夫球挑战
产生一个程序A,以便以语言A运行它会产生程序B,而以语言B运行程序A会产生程序C。 以语言B运行时,程序B生成程序A,以语言A运行程序B时生成程序C。 程序C以语言A或语言B运行时,输出“语言错误!”。 Program | Language | Result --------|----------|---------- A | A | Program B B | B | Program A A | B | Program C B | A | Program C C | A | "Wrong language!" C | B | "Wrong language!" 您的答案应使用以下模板: 语言A /语言B,{a字节} + {b字节} …

7
牛顿法递归法
您的任务是使用牛顿法计算2的平方根-稍有扭曲。您的程序将使用牛顿法计算迭代,并输出后续迭代的源代码(必须能够执行相同的操作)。 牛顿的方法已在Wikipedia上进行了详尽的描述。 要使用牛顿法计算平方根2,您: 限定 f(x) = x^2 - 2 限定 f'(x) = 2x 定义x[0](初步猜测)= 1 限定 x[n+1] = x[n] - (f[n] / f'[n]) 每次迭代会将x [n]移到更接近于2的平方根。所以- x[0] = 1 x[1] = x[0] - f(x[0])/f'(x[0]) = 1 - (1 ^ 2 - 2) / (2 * 1) = 1.5 x[2] = x[1] …
32 code-golf  math  quine 

6
镜子奎因(或我的头很痛)
我正在阅读将您的代码向后打印-反向quine,我想,如果您的向后代码也是可执行的,这可能会更有趣。因此,此挑战将具有其他挑战的所有规则和要求,但一旦反向(以相同或另一种语言显示,也必须向后打印其来源),也必须是有效的来源。 逆向拉网挑战的所有规则和计分均适用,因此该问题的所有答案都将回答该问题(但得分也不相同)。 编辑: 根据要求,所有规则现在都复制到此处。 规则: 编写程序p,该程序在执行时会产生输出p',其中p'向后p,而在执行时会产生p'。 请勿使用其他文件(例如reverse.txt) 最小代码长度为两个字符。 您的程序不能是回文。 得分: +50(如果您使用来自互联网的提取数据)。 +25,如果您阅读自己的源代码。 每个字符+1点。 最低分获胜。
32 code-golf  quine 

6
尽最大可能!
该序号系统是无限的数字系统。许多无穷大。如此众多的无穷数字,以至于它实际上没有一个无穷大来表示自己的无限性。上图给出了它们如何工作的一点想法。序数(冯·诺依曼构造)是一组先前的序数。例如,0是空集,1是集{0},2是集{0,1},依此类推。然后我们得到ω,即{0,1,2,3 ...}。ω+ 1是{0,1,2,3 ...ω},ω乘以2是{0,1,2 ...ω,ω+ 1,ω+ 2 ...}然后你会像那。 您的程序将输出一组序数,例如{0,1,4}。这样,您的分数将比集合中所有序数的最低序数高。对于{0,1,4},得分将为5。对于{0,1,2 ...},得分将为ω。 您如何输出您要求的序号。当然是代码。即,您的程序将在每行中用引号输出一个可能无限的其他程序列表(用引号引起来)(使用文字字符串“ \ n”表示新行)。程序对应于其得分,如上所述。例如,如果您输出 "A" "B" "C" 其中A,B和C本身是有效答案,并且得分为{0,1,4},则您的程序的得分为5。请注意,A,B和C必须是完整程序,而不是片段。 根据上述规则,不输出任何内容的程序的得分为0(大于所有{}的最小序数为0)。另外,请记住,根据基础公理,集合不能包含自身。即,每个集合(因此是序数)都具有下降到零的路径。这意味着完整的quine将无效,因为它不是一个set。 另外,不允许任何程序访问外部资源(其自己的文件,互联网等)。另外,在列出分数时,如果可以的话,请将分数的Cantor普通形式放在旁边,如果可以的话(如果没有,则其他人可以)。 考虑以上所有因素后,您发布的实际答案必须少于1,000,000字节(不包括注释)。(此上限可能只会对自动生成的代码起作用)。同样,您可以为不使用的每个字节增加分数(由于我们处理的是无穷大,只有当序数非常接近或相同时,这才可能被考虑在内)。同样,本段仅适用于发布的答案,不适用于生成的答案或生成的答案生成的答案,依此类推。 这具有quine标记,因为生成至少部分源代码自己的代码可能有助于生成大型序言。但是,它绝对不是必需的(例如,分数为5的提交可能不需要其自己的源代码)。 有关示例的注释示例,请参见此处。

1
混淆了我解决暂停问题的尝试
请注意:从本质上讲,此挑战的规范很难理解。它可能至少需要一门有关可计算性理论的新生课程,或者具有同等背景的阅读知识。此外,挑战本身也相当艰巨。要回答该问题,就需要为所选语言的某些子集编写一个完整的口译员,不仅如此,而且口译员也必须采用像奎奴纳这样的形式。如果您的答案不能满足所有要求,则可以肯定不符合规范。 您无需解决暂停问题(甚至部分解决)即可解决此挑战。但是,你几乎可以肯定做必要写(您使用写在上面解释同一种语言的语言,)一个解释,虽然它不一定是功能齐全。正是这个使这成为一个有趣的挑战。 我答应为符合规范的第一个答案奖励500点奖励,这将奖励给Jo King的BF答案。 挑战 Alan Turing关于停止问题无法解决的证明的粗略简化版本如下所示: 假设我已经编写了一个程序F来解决暂停程序。即,F将另一个程序的源代码作为输入,如果停止F(G)则返回,否则返回。1G0 但是,如果我给您我的程序,F那么您可以构建另一个程序H,它以我的程序H作为输入来运行。如果F(H)return,0则H返回0,但否则故意进入无限循环。这导致了一个悖论,我们必须得出结论,F毕竟这不能解决暂停问题。 您的任务是编写程序H,但要有所不同:我不会给您我的程序。相反,您的程序将接收我程序的源代码作为输入。那是: 您的程序将以源代码形式接收我的程序作为输入。(例如,作为文件还是作为命令行输入,详细信息取决于您。) 我的程序将使用与您的程序相同的语言编写,并且还将以源代码字符串的形式接受输入。 如果我的程序返回0给定当你的程序作为输入,你的程序应该停止(和返回0)时给予我的程序作为输入。(“重现0” 的确切含义取决于您。) 如果我的程序没有停止,或者返回除0给定程序作为输入时以外的其他任何内容,则程序应无限期运行。 唯一的困难就是,要使其变得更加困难,就必须遵守以下规则: 您不能使用任何内置函数exec或eval-type函数。 您不能使用任何“作弊”方法来获取自己程序的源代码。(例如,您不能说“将其保存在名为'程序'的文件中”,然后再包含open(program)在您的程序中。) 这意味着您的程序必须是某种疯狂的超级字符串,它们不仅可以以字符串的形式重现其自身的源代码,而且还能够正确地解析和解释其编写的语言。 为了使它的疯狂程度有所减轻,只允许使用所选语言的一部分(图灵完成)。因此,如果您的程序是用Python编写的,并且仅在我的程序仅包含ifs和while循环以及基本的字符串操作时才可以运行,那么只要您的程序也仅使用这些内容就可以了。(这意味着您不必担心实现所选语言的整个标准库!)但是,您的程序确实必须运行-您不能只编写自己的语言。 这是一场人气竞赛,因此得票最多的答案将获胜。但是,如上所述,要完全满足规范要求是一个严峻的挑战,因此,根据我的判断,我将对第一个回答给予500点奖励。 请注意:毫无疑问,鉴于我使用的确切措辞,您可以通过多种方式“应对”这一挑战。但是,我真的很希望能找到能使问题变得实质的答案。预期的挑战非常艰巨,但有可能实现,我真的希望看到真正的解决方案。我不会将悬赏奖励给在我的判断中感到作弊的答案。 注意:此挑战最初是作为人气竞赛发布的,但由于没有“客观的获胜标准”,于2016年关闭,为了将其重新开放,我将其更改为Code-Golf。但是,我发现,截至2018年1月,PPCG实际上并未禁止进行流行度竞赛(这是最新的元讨论),因此首先将其关闭是违反网站政策的。我知道popcons如今并不流行,但这是一个古老的挑战,它的性质使其确实不适用于代码高尔夫球计分系统。如果仍然有人强烈认为不应该这样做,那么让我们进行一次元讨论,然后再开始进行密切投票。最后,在有人花了最后一年尝试解决方案的机会之外,请放心,它在这项挑战中将具有竞争力,并且像在代码高尔夫球中一样值得悬赏版。

14
两只猫在奎因
挑战 制作两个程序A和B,它们都是相同语言的cat程序。连接时,AB(也应使用相同的语言)应该是一个喹。 例如,假设hello和world都是使用XYZ语言的cat程序。如果helloworld是所说语言的奎因,则您的解决方案有效。 对于那些不熟悉猫和奎因的人来说,猫程序是一种完全打印通过stdin给它的东西的程序,而奎因是一种可以打印其自己的源代码的程序。 计分和规则 串联的AB程序的总字节数就是您的分数。因为这是代码高尔夫球,所以最低分获胜。 禁止出现标准漏洞 输入必须来自stdin,输出必须进入stdout。 cat程序不需要参数。他们只需要将stdin复制到stdout。 当没有任何输入程序但没有必要为其他输入正确运行(但是可能)时,该程序应该起作用。 如果仅打印一次源代码,仅需一次终止即可。 至少需要一个字节长。 A和B可以是同一程序。 BA不必是密码子,甚至不必是有效的程序。
30 code-golf  quine 

12
写一个Quine Suite
我们遇到了很多奎因挑战,但是许多奎因格式相似,因此可以使我们的奎因产生一些差异。 您的任务是用相同的语言(至少2种)创建一系列程序,所有程序都输出自己的源代码,但是,这些程序都不能共享任何字符。 例如,如果您使用以下程序创建程序: printf+qw(printf+qw(%s)x2)x2 您的下一个程序不能包含以下任何一项: %()+2finpqrstwx 等等。 规则 您可以使用unicode字符,但仍必须以字节为单位。 所有程序都必须符合社区对适当的标准的定义。这意味着,空字符串不算作有效的quine。 禁止出现标准漏洞。 只要满足上述定义,就可以使用功能或完整程序。 禁止使用与符号无关的语言(包括Lenguage和Headsecks)。 大多数程序都胜出,总代码最短的是决胜局。

7
生长缓慢的奎因
做个Quine。 看起来容易吧?那么,这个quine必须输出自己加上第一个字符,然后输出自己加上第二个字​​符,依此类推。 这样,木盒可以几代输出两个副本。 示例:让您的代码为x。运行它应该输出x + x[:1]。运行生成的程序应输出x + x[:2],依此类推... 如果您的代码是foobar,运行此应输出foobarf。运行这个应该输出foobarfo。依此类推,依此类推: foobar foobarf foobarfo foobarfoo foobarfoob foobarfooba foobarfoobar foobarfoobarf 您的程序必须长于2个字节,并且每次迭代只能输出自己代码的一个额外字符。
30 code-golf  quine 

7
编写藜的技巧
甲喹是产生输出这等同于程序的源代码的程序。在此网站上,我们通常只关心适当的奎因(在撰写本文时,当前定义是“输出的某些部分由程序的不同部分编码”)。 您对编写适当的quines或具有quine类特性的程序有什么建议?像往常一样,每个提示都应使用不同的答案。
30 tips  quine 

8
脆弱的奎因
脆弱的奎因 脆弱的quine是满足通过删除单个字符来组成每个子字符串的属性的quine,在评估时会产生错误。 例如。如果您的程序asdf是木盒,那么它就很脆弱,以下程序必须出错: sdf adf asf asd 您的程序(及其所有子字符串)必须是完全确定性的,并且必须使用相同的语言。就此挑战而言,即使最终未产生错误,陷入无限循环(即无法终止)的程序也被视为“产生错误”。 存在标准漏洞,包括通常的quine限制(例如,无法读取自己的源代码)。 例如,print("foo")不是脆弱的。所有这些子字符串必须出错: rint("foo") pint("foo") prnt("foo") prit("foo") prin("foo") print"foo") print(foo") print("oo") print("fo") print("fo") print("foo) print("foo" 不会出错的是: print("oo") print("fo") print("fo") 因此它并不脆弱。 关于藜的重要说明 通过协商一致,任何可能的奎纳必须满足以下条件: 必须有可能识别程序的一部分,该部分对程序的不同部分进行编码。(“不同”表示两个部分出现在不同的位置。) 此外,木盒不得直接或间接访问其自身的源。 例 由于我认为JavaScript的function#toString是“正在读取其自身的源代码”,因此我不允许这样做。但是,如果我不想禁止它,那么这是JavaScript中的一个脆弱的方法: f=(n=b=`f=${f}`)=>(a=(n)==`f=${f}`,n=0,a)&(n!=b)?b:q 测试仪 这是一个程序,在给定程序源代码的情况下,它会生成所有必须出错的程序。 let f = (s) => [...Array(s.length).keys()].map(i => s.slice(0, i) + s.slice(i + 1)).join("\n"); let …
30 code-golf  quine  code-golf  date  code-golf  sequence  code-golf  sorting  file-system  code-golf  code-golf  ascii-art  hexagonal-grid  code-golf  string  arithmetic  code-golf  code-golf  code-challenge  source-layout  code-golf  ascii-art  cellular-automata  code-golf  string  arithmetic  balanced-string  code-golf  number  primes  code-golf  ascii-art  hexagonal-grid  code-golf  string  code-golf  string  code-golf  sequence  code-golf  ascii-art  code-golf  conversion  hexadecimal  code-challenge  restricted-source  code-golf  math  grid  code-golf  string  ascii-art  code-golf  random  minesweeper  code-golf  ascii-art  kolmogorov-complexity  board-game  scrabble  code-golf  ascii-art  code-golf  math  number-theory  decision-problem  code-golf  string  code-golf  natural-language  code-golf  internet  stack-exchange-api  code-golf  code-golf  conversion  code-golf  string  code-golf  math  arithmetic  code-golf  string  whitespace  code-golf  graphical-output  internet  code-golf  string  code-golf  string  random  permutations  code-golf  string  code-golf  string 

30
ASCII三角形
您的任务是编写一个打印ASCII三角形的程序或函数。他们看起来像这样: |\ | \ | \ ---- 您的程序将采用单个数字输入n,并带有约束0 <= n <= 1000。上面的三角形的值为n=3。 ASCII三角形将具有n反斜杠(\)和竖线(|),n+1线和破折号(-),并且每行除最终行外还将具有等于行号(从0开始,即第一行为行0)的空格。 。 例子: 输入: 4 输出: |\ | \ | \ | \ ----- 输入: 0 输出: 在此测试用例中,输出必须为空。没有空格。 输入: 1 输出: |\ -- 输入和输出必须完全是我指定的方式。 这是代码高尔夫球,因此请争取尽可能短的代码!
30 code-golf  ascii-art  code-golf  rubiks-cube  code-golf  path-finding  maze  regular-expression  code-golf  math  rational-numbers  code-golf  kolmogorov-complexity  graphical-output  code-golf  tips  code-golf  string  permutations  code-golf  sorting  base-conversion  binary  code-golf  tips  basic  code-golf  number  number-theory  fibonacci  code-golf  date  code-golf  restricted-source  quine  file-system  code-golf  code-golf  math  code-golf  ascii-art  code-golf  math  primes  code-golf  code-golf  math  matrix  code-golf  string  math  logic  factorial  code-golf  palindrome  code-golf  quine  stateful  code-golf  interactive  code-golf  board-game  code-golf  math  arithmetic  code-golf  string  code-golf  math  matrix  code-golf  math  abstract-algebra  polynomials  code-golf  date  code-golf  string  array-manipulation  sorting  code-golf  game  code-golf  string  code-golf  ascii-art  decision-problem  code-golf  number  sequence  code-golf  code-golf  code-golf  sequence  fibonacci  code-golf  math  geometry  random  code-golf  code-golf  math  decision-problem  fractal  rational-numbers  code-golf  number  number-theory  code-golf  combinatorics  permutations  card-games  code-golf  math  sequence  array-manipulation  fibonacci  code-golf  sequence  decision-problem  graph-theory  code-golf  ascii-art  parsing  lisp  code-golf  string  math  natural-language  logic  code-golf  math  logic  code-golf  string  alphabet  code-golf  string  code-golf  string 

29
每行的奎因
您的目标是创建一个可以无限打印的程序,并在每行之后添加一个新行。因此,如果您的程序是单行程序,那么它将在输出的每一行上重复执行。 例 程序: A 输出: A A A ... 规则 它必须是完整的程序,而不是摘要或功能。 该程序应永远循环,而不会出现堆栈溢出或递归限制错误。 输出是标准输出或最接近的替代输出。 不接受任何程序输入。 不允许出现标准漏洞,例如打开程序的文件或访问外部资源。空程序不允许作为标准漏洞。 如果您的程序代码以尾随换行符结尾,则这不算作成对字符之间的必要换行符,您必须打印另一个。 codegolf-最短的代码胜出!
30 code-golf  quine 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.