Questions tagged «quine»

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

5
TryItOnquine挑战
(基于这篇文章以及随后的聊天讨论 -同样,非常感谢Dennis的TIO!) 挑战 选择TryItOnline网站上当前可用的语言,例如PowerShell。在该页面上以该语言编写代码,不需要任何输入,因此,当单击“ 运行”按钮时,该页面上的输出与“ 保存/存储 ”时“纯URL”字段中的输出完全相同。而是单击按钮。 举一个虚拟的例子,假设这aaa是PowerShell中解决此问题的代码。然后,单击Run with aaaas the code on的结果https://tio.run/#powershell应输出https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA,当单击Save / Store按钮时,它也是“ Plain URL”字段。 计分 该结果URL是您提交这一挑战。获胜者是最短的URL,以字节为单位。对于上面的示例,URL https://tio.run/##K8gvTy0qzkjNyfn/PzEx8f9/AA是挑战的提交,为44个字节。满足其余挑战要求的最短URL会赢得挑战,并获得布朗尼积分(不可兑换的积分)。鉴于存在明显的最小可能长度,如果两个提交的长度相等,则以较早的提交为准。 URL生成 这是存储库中URL生成算法的开始。您可以看到如何使用主代码区域,如何附加任何额外的元素,对字符串进行放气,然后对Base64进行转换,然后对其进行##前缀等。在此,我将不做详细介绍;挑战的一部分是解析并了解如何生成URL,以利用所述算法中的任何潜在怪癖。 规则/说明 实际的代码不应输入任何内容,而只能产生quine-URL作为输出。 -这意味着,应该点击进入网址时,系统都将填充仅文本字段的Code,Header,Footer或相应的“编译器标志”领域; 在Input和Arguments领域都被禁止,必须保持为空/不用。单击运行按钮应仅更改该Output字段。对于此挑战,Debug在所有情况下都将忽略该字段。 通常的规则适用于代码(例如,代码无法通过读取其自身的源代码.code.tio)。 请在您的提交中说明代码的工作方式。 不允许通过将Git提取请求提交到TIO储存库以创建“技巧” URL或快捷方式等来提交“骗人的”奎因。 类似地,不允许提交拉取请求以更新特定语言以产生“技巧” URL。 请对Dennis的服务器好,不要为了挑战而滥用它们或尝试利用漏洞。

1
循环Levenquine
背景 正如大多数PPCG常规人员所知道的,quine是一个程序,在运行时会输出自己的源代码。而两个字符串之间的Levenshtein距离是将一个字符串转换为另一个字符串所需的最小插入,删除和编辑次数。在这个挑战中,我们将两个概念组合成一个“ levenquine”:一个程序输出自己的源代码,但插入,删除或替换一个不同字符的一个字符的一个实例。(换句话说,程序与其输出之间的Levenshtein距离为1。) 任务 编写一个levenquine,使其输出为levenquine,该程序的输出也为levenquine,依此类推。此外,在某些时候,重复运行程序,运行其输出,运行其输出的输出等的顺序最终必须返回到原始程序。 还有一个额外的限制使事情变得更加困难:在此循环内某个地方必须有两个不同的程序,它们没有共同的字符(换句话说,一个程序中没有字符,另一个程序中也没有字符)。因此,您的程序将不得不逐渐将自己转换为其他字符集,然后再次返回。 如果您使用的编程语言在任何产生输出的程序中都具有不可避免的样板(例如,它只有一种编写print语句的方式,而没有其他有用的输出形式),则可以出于该目的将该样板视为不存在确定两个程序有哪些共同点。但是,为了确定代码的Levenquine属性,您仍然必须计算该样板。 澄清说明 循环中的每个“程序”都可以是完整程序或功能。它们不必全部相同,例如,有些可能是完整程序,有些可能是函数。 并非周期中的所有程序都需要使用相同形式的输出。例如,有些可以通过标准输出输出,而有些可以通过标准错误输出。 您的程序将在没有输入的情况下运行(或以需要输入才能执行任何操作的语言,即最简单的输入)运行。 适当的奎规则。尽管Levenquine不是真正的奎因,但是在编写适当的奎因时,您可能不会做任何非法的事情。特别是,空程序永远不会是来自正确的Levenquine的有效输出(因此不能成为您循环的一部分)。 Levenquine限制是根据字符而不是字节来衡量的(例如,ê即使源是用UTF-8编码的,也是一个字符)。不常见字符限制也以字符进行度量。但是,胜利条件以字节为单位。 胜利条件 请从周期中至少提交以下三个程序:最短的程序(以字节为单位);循环中的两个程序没有相同的字符。这些中的两个可能是相同的,并且三个都可能是不同的。分数基于最短程序的字节长度,越短越好,因此成为一种代码高尔夫竞争。

24
输出程序中每个输入字符的第一个位置
挑战 编写一个非空程序/函数p,给定一个非空输入字符串s,该程序/函数输出的源代码中的每个字符第一次出现的位置。sp 例如,如果您的程序是 main() { cout << magic << cin } ^0 ^5 ^10 ^15 ^20 ^25 它收到一个输入abcd{,输出应该是 [1, x, 9, x, 7] (0-based) [2, x, 10, x, 8] (1-based) 在此,x表示任何不是字符位置有效输出的输出(例如,负数,0如果您使用基于1的索引,则NaN,Inf字符串potato,大于程序长度的数字等)。 限制条件 不允许读取源代码(如适当的quine)。允许使用评论,但会计入您的分数。 输入和输出可以在一个合理的形式进行,但必须是明确的(唯一的额外分隔符,没有rand流,并声称,答案是在那里的地方),一致(例如,x从上面应该始终是相同的值)和人-可读性 ; 例如字符串或字符数组。您可以假设输入是可打印ASCII字符的字符串(或数组);无需处理整个Unicode集。 自定义代码页或代码中不可打印的ASCII? 如果您的语言使用自定义代码页(Jelly,APL等),则必须将其考虑在内(因此,程序€æÆ必须[1, x, 2]为input输出€%æ)。仅使用非ASCII字符-1始终输出(因为输入仅是ASCII)不是有效的解决方案。您可以假定您的程序本机接受您的自定义代码页,即,如果您的程序具有将字符转换为A整数65(ASCII编码)的方法,则可以假定它现在将代码页中的第65个字符转换为65。 受到以下挑战的启发:位置意识

3
自行运行生命游戏的代码
编写两个矩形代码块,每个代码块宽w个字符,高h个字符,这些代码块在排列成网格时实现Conway的生命游戏。(w和h可以是任何正整数) 例如,两个代码块可能是:(w = 3,h = 2,不是实际代码) XX| --+ 和 | --+ 将第一个块视为“生命游戏”中的“活动”单元,将第二个块视为“死亡”单元。 现在,将这两个块的多个副本安排到一个更大的程序中,该程序代表一个生命游戏网格,例如以下滑翔机: | | | | | --+--+--+--+--+ | |XX| | | --+--+--+--+--+ | | |XX| | --+--+--+--+--+ |XX|XX|XX| | --+--+--+--+--+ | | | | | --+--+--+--+--+ | | | | | --+--+--+--+--+ 现在是关键点:运行此代码时,输​​出必须是“生命游戏”网格,此后就是该网格,并为单元格使用相同的活动代码块和无效代码块。 因此,上面程序的输出将是下一代滑翔机,它也可以作为可运行程序: | | | | …

30
StringgnirtSStringgnirtSStringgnirtS
这对您来说是一个相对简单的挑战。 给定长度为N的字符串,向前输出该字符串,然后向后输出,然后向前,然后向后输出……等等。N次。例如,如果您输入的是 Hello! 您应该输出: Hello!!olleHHello!!olleHHello!!olleH 您也可以选择输出一个尾随换行符。 您的提交可以是完整程序,也可以是函数,并且您可以采用任何合理的格式进行输入和输出。例如,您可以从STDIN / STDOUT中获取IO,从函数中获取参数,并从文件中获取返回值,等等。您可以放心地假设输入字符串将不会为空,并且仅包含可打印的ASCII。您必须在一行上输出新字符串。因此,例如,如果最后一个示例的输出是 Hello! !olleH Hello! !olleH Hello! !olleH 这不是有效的解决方案! 这里是更多测试用例: Input: a Output: a Input: abcd Output: abcddcbaabcddcba Input: OK! Output: OK!!KOOK! Input: 4815162342 Output: 4815162342243261518448151623422432615184481516234224326151844815162342243261518448151623422432615184 Input: PPCG Output: PPCGGCPPPPCGGCPP Input: 42 Output: 4224 排行榜 由于这是一个代码高尔夫挑战,因此禁止了标准漏洞,以字节为单位的最短答案胜出!但是,这也是在任何特定语言中答案最短的竞赛。尽管Java答案不太可能会击败perl或某些打高尔夫球语言的答案,但拥有最短的Java答案仍然令人印象深刻。因此,您可以使用此页首横幅查看 所有语言中最短的答案,以及 每种语言的最短答案。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
42 code-golf  string  code-golf  math  geometry  data-structures  repeated-transformation  code-golf  number  random  code-golf  math  rational-numbers  code-golf  ascii-art  animation  code-golf  ascii-art  number  code-golf  math  number  code-golf  data-structures  code-golf  string  parsing  code-golf  array-manipulation  random  permutations  code-golf  string  code-golf  parsing  code-golf  string  quine  code-golf  string  parsing  comment  code-golf  string  counting  natural-language  code-golf  string  decision-problem  code-golf  math  code-challenge  metagolf  test-battery  code-golf  string  code-golf  math  number  arithmetic  source-layout  code-golf  number  primes  decision-problem  code-golf  math  arithmetic  code-golf  date  code-golf  string  cryptography  code-golf  code-golf  chess  board-game  code-golf  geometry  grid  puzzle-solver  set-partitions  code-golf  number  natural-language  code-golf  ascii-art  code-golf  math  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  string  natural-language  code-golf  game  board-game  tic-tac-toe  code-golf  ascii-art  hexagonal-grid  code-golf  string  comment  code-golf  internet  code-golf  sorting  code-golf  kolmogorov-complexity  unicode  code-golf  tips  code-golf  string  natural-language  code-golf  string  kolmogorov-complexity  source-layout  hello-world  code-golf  string  kolmogorov-complexity  counting  natural-language  code-golf  random  quine  code-golf  string  math  bitwise  code-golf  permutations  code-golf  string  code-golf  arithmetic 

27
自我成长编码编码编码编码
编写一个程序(或函数)(我们称其为P1),然后在运行时输出另一个相同语言的程序P2,并且比P1长1个字节。 程序P2运行时,应输出比P2长1个字节的第三个程序P3。P3必须输出比P3长一个字节的程序P4,依此类推。P5,P6,...,P∞相同。 程序链应无限期运行,或到达解释器不再处理的地方(但必须保留为该语言中理论上有效的程序) 规则 禁止标准漏洞 链中的所有程序都应使用一种语言 没有输入。输出转到标准输出或函数返回值 该程序必须在一段时间后结束。在特定时间点后停止生成输出但永不终止的程序不符合条件 每种语言中以字节为单位的最短程序P1获胜!
41 code-golf  quine 

9
用普通英语写奎因
写一个包含由单个英文空格分隔的真实英语单词的藜。“单词”定义为仅包含小写和大写字母的字符串(/[a-zA-Z]+/在正则表达式中)。要“真实”,您的单词必须由官方的Scrabble词典识别。 我使用的是Scrabble字典,因为它对有效和无效给出了明确的答案。普通词典中的灰色区域过多。注意,“ A”和“ I”(更不用说“ quine”)不是有效的拼写单词。 在大多数编程语言中,由于仅使用字母和空格来编写奎因几乎是不可能的,因此您可以选择用您选择的字符替换单词之间的单个空格。您还可以选择将字符追加到第一个单词的开头和最后一个单词的结尾。这些添加的字符可以是字母(az,AZ)以外的任何字符(包括换行符和非ASCII )。不过,添加它们会受到惩罚(请参阅评分)。 细节 通常,这些木马可能不会读取或访问其自己的源代码。(我想说的是HQ9 +的 Q命令违反了这一点。) 输出应转到stdout或类似的替代方法。没有输入。 这些单词不需要正确地大写。他们在任何地方都可以有大写字母和小写字母。单词的顺序没有任何意义。 在您的程序中,一个单词的使用次数不得超过3次。大写的单词仍然是同一个单词(例如,“ DOG”,“ dog”和“ dOg”都是同一个单词)。 使用如PHP或HTML,可以只是语言猫他们的内容被认为是微不足道的漏洞,是不允许的。 该程序必须包含至少一个单词。 计分 您的分数是程序中“真实单词”的数量加上以下惩罚: 对于每个被另一个字符替换的空格,+ 1 您在第一个单词前添加的每n个字符n n(是,n为幂n) 在最后一个单词之后每添加n个字符n n 例如程序 We all LIKE PROgraMmING 得分为4,因为它包含4个单词;没有添加或替换任何空格的字符。它的输出当然是We all LIKE PROgraMmING。 该程序 !We@all LIKE#PROgraMmING- = 将得分4 + 2 + 1 + 27 = 34; 单词4,替换空格2,!前面的1,- …

14
堆栈交换投票计数器
编写一个程序/函数,在执行时返回其自己的Stack Exchange答案的投票计数。 您的程序/功能可以通过Internet访问此页面(codegolf.stackexchange.com/questions/82609),但是: 您的程序/功能可能不接受任何用户输入,并且 不允许使用URL缩短器 您的程序/函数只能使用其自身的来源作为其投票计数的参考点(例如:在其包含的答案中没有引用文本字符串,但在其自身的来源中没有引用字符串) 您的程序/函数必须输出自己的投票数,并且只能输出自己的投票数(例如:在此页面上不返回所有投票数) 这是代码高尔夫,最短的代码胜利。

3
防辐射奎因
正如您应该(希望)知道的那样,防辐射的奎因是一种奎因,您可以从其中删除任何一个字符,但仍打印其原始的,预先修改的源。事实是,使用其中大多数,您只能删除一个字符。否则一切都会崩溃。这就是它的来历;您的目标是构建一个可以进行尽可能多的字符去除的防辐射的奎因。符合规则的任何语言都可以。 规则 该程序必须至少一个字符长 使用的语言必须是完整的(因此HQ9 +等语言不符合条件) 适用于普通拉皮的所有其他规则也适用于此。 用最少的溶液program_length^(2/n),其中的任何一组的准确n的字符,同时仍打印原始源代码胜被移除。

26
制作平方字
挑战 您的任务是创建一个程序,该程序接受任何给定的字符串输入,并以平方格式输出输入。空字符串应返回一个空字符串。 例子 给定输入: golf 您的程序应输出: golf o l l o flog 输入: 123 输出: 123 2 2 321 输入: a 输出: a 输入: Hello, world! 输出(注意,和之间的空格-间隙不只是换行符): Hello, world! e d l l l r o o , w w , o o r l l l d e !dlrow …

2
防辐射软喹
很简单:制作一个适当的藜,如果您删除任何字符,它仍然是藜。 此代码与防辐射的quine之间的区别在于,如果您的程序是AB,A将输出防辐射的quine AB,但在这里A将输出A。 编码高尔夫球,所有标准规则,标准漏洞适用,不作弊。

9
做一个缓慢的错误奎因制造商!
作为他对“犯错误的原因” 的回答的一部分!,@ Falko提出了以下算法: 如何在2分钟内创建自己的解决方案? 在您选择的IDE中打开一个新文件。 将头撞到前方的键盘上。 编译。 将代码替换为编译器错误消息。 重复步骤3和4,直到代码收敛。 我敢打赌,这样的程序在大多数情况下会很快终止! 任务 您的任务是证明他错了。 编写一个满足以下条件的完整程序: 在编译或解释时,它会生成一条错误消息,而在依次编​​译或解释时,它也会导致一条错误消息。 一遍又一遍地重复步骤1,最终将遇到一个固定点,即一个错误提示。 附加规则 最终错误消息的长度必须为正。但是,以前的错误消息和原始的源代码可能为空。 原始源代码的长度不得超过1024个字节。 原始代码或任何步骤中生成的代码均不会产生非错误输出。 输出必须清楚地标识为错误消息,由于语法错误,运行时错误,未定义引用等原因,必须由编译器/解释器生成输出。 您的程序可能未收到任何输入或需要任何标志来产生循环。 您的程序可能依赖于其语言或版本的特定实现。 计分 您的分数是您的源代码在生成错误提示之前需要执行的有限步骤。得分最高的提交者获胜。 原始源代码的长度将用作平局决胜局。越短越好。 例 在Chicken中,该程序 生成以下错误消息: TypeError: Cannot read property 'NaN' of undefined 如果反过来解释此错误消息,则会生成错误消息 Error on line 1: expected 'chicken' 如果反过来解释,它就会产生自己。 因此,空Chicken程序的得分为2。 反例 PHP代码 ab<?=c 生成错误消息 PHP Parse …

13
打高尔夫球
使用2种您所选择的语言,写的最小的“相互奎因 ”就可以了。 即,用语言A编写程序P,以语言B输出程序Q的源代码,以使程序Q的输出与P的源代码相同。 空文件不计,“读取源文件并打印”样式的程序也不计。 编辑: P = Q的答案不再计数。

9
蛇化字符串
修饰后的字符串如下所示: T AnE eOf ifi ing h s x l A k e r isI amp Sna dSt 你的任务 取一个字符串s和一个size n,然后输出连串的字符串。输入ThisIsAnExampleOfaSnakifiedString和3将产生上面的示例。 技术指标 s 只会在代码点33和126之间(含端点)包含ASCII字符(不包含空格或换行符)。 s 长度在1到100个字符之间。 n是一个整数,代表每个输出字符串段的大小。组成“蛇”中曲线的每一行字符(上/下或左/右)都是n字符长。有关示例,请参见测试用例。 n 介于3到10之间(含3和10)。 输出字符串始终开始指向下方。 每行上都可以使用尾随空格。 在输出末尾也可以尾随换行符。 不允许前导空格。 code-golf表示以字节为单位的最短代码获胜。 测试用例 a 3 a ---------- Hello,World! 3 H Wor e , l llo d! ---------- ProgrammingPuzzlesAndCodeGolf …
35 code-golf  string  ascii-art  code-golf  code-golf  string  balanced-string  decision-problem  code-golf  string  geometry  grid  code-golf  tips  lisp  code-golf  quine  tips  king-of-the-hill  code-challenge  math  code-golf  string  palindrome  math  fastest-code  code-golf  string  counting  code-golf  code-golf  internet  code-golf  quine  source-layout  hello-world  code-golf  math  number  sequence  arithmetic  code-golf  ascii-art  grid  code-golf  number  grid  code-golf  string  crossword  code-golf  code-golf  ascii-art  grid  counting  code-golf  code-golf  math  sequence  arithmetic  number-theory  code-golf  code-golf  graphical-output  geometry  random  code-golf  ascii-art  grid  counting  code-golf  string  ascii-art  code-challenge  test-battery  code-golf  string  code-golf  ascii-art  kolmogorov-complexity  code-golf  interpreter  code-golf  math  sequence  code-golf  math  primes  set-partitions  code-golf 

13
1-平均你的平均成本
阿1向上喹是一个程序,它是非常类似于一个喹。一个主要的区别是,当连接n个程序副本时,结果不会打印自身一次,而是将原始程序打印n + 1次。 例 如果您的程序是Abc123: Abc123 -> Abc123Abc123 Abc123Abc123 -> Abc123Abc123Abc123 Abc123Abc123Abc123 -> Abc123Abc123Abc123Abc123 挑战 您面临的挑战是创建任何语言中最短的有效1-up quine。通常采用奎因规则,因此您可能不会: 提交空程序。 直接或间接读取1源代码。 使用内置的奎因。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。 1这不包括在程序中使用硬编码的字符串或代码块。

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.