Questions tagged «quine»

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

3
Codegolf:Quine和Antiquine
该挑战类似于您可以进行Meta Quine吗? quine是在STDOUT上产生自身的程序。挑战在于产生程序A,该程序在运行时会在STDOUT上产生程序B。运行时,程序B在STDOUT上生成程序A。程序A和B必须以相同的语言编写(并运行)。链接的问题约束A!=B。这看起来太简单了。因此,对于这个问题,我们坚持使用以下规则,将A和B定义为对数: 程序A和B不得使用任何相同的字符,但空格和语句分隔符以及标点符号除外。 程序A和B必须分别包含至少一个既不是空格也不是语句分隔符,也不是标点符号的字符。 出于规则1和2的目的,术语“空白”不包括任何符号或符号序列,它们本身就是被解释的语句,运算符或符号(与分隔符相对)。因此,在空白语言中,没有空白。 语句分隔符是该语言中通常用于分隔语句的语法元素。这将包括python中的换行符,或Java,perl或C中的分号。 标点符号是ASCII字符,它既不是空格也不是POSIX单词字符类(即,下划线不是用于此目的的标点符号),即ispunct()返回true,而不是_。 程序A在运行时必须在其STDOUT上生成程序(程序B),而程序在运行时又会生成程序A。 程序A和B必须使用相同的编程语言。 使用的编程语言实际上必须是一种编程语言。除非您没有其他理由,否则我建议它必须是图灵完整的。 A和B中的至少一个必须在该语言中执行至少一个语句。 这是代码高尔夫,所以最短的答案会获胜,得分是程序A的长度(以字节为单位)(即程序B的长度无关紧要)。
13 code-golf  quine 

12
回奎因
这里的挑战很简单,而不是字节数。您的工作是输出前一个quine源代码的前50个字符,并与您的前50个字符(从我在下面放置的50个字符开始)连接在一起: abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXY 因此,让我们在这里举个例子,如果您要在05AB1E中回答,那么仅输出前50个字节的解决方案是: ži50£ 这意味着您需要输出: abcdefghijklmnopqrstuvwxyzACDEFGHIJKLMNOPQRSTUVWXYži50£ 如果您的程序较短,只需使用第一个x < 50字符即可。如果您的程序较长,则只能连接前50个字符,并以第50个字符结尾。然后,下一个人将必须输出您的Quine的前50个字符以及它们自己的代码。 您的代码可以是任意大小,但是您只能输出与前一个答案的代码的前50个字节末尾串联的代码的前50个字符。 限制条件: 除了使用适当的quine的定义外,还使用以下内容: 完全禁止评论。 请特别注意本节内容,如果滥用话语可能会引起注意 如何发布链接答案: 发布占位符: 提及您的答案号码和将使用的语言。 按日期排序,如果您发现其他人在您之前1毫秒发布了占位符: 删除您的,等下一次机会,对不起。 如果您已获得下一个位置,请在6小时内答复: 如果您无法回答,请删除您的保留空间。 如果空间已超过6小时。 投票删除保留空间,我来处理。 您的帖子格式: #[Answer #]:[Character Count] Characters, [Language Used] {TIO MARKDOWN} {LINE_SEPARATOR="---"} {ADDITIONAL EXPLANATION OR INFORMATION} 一些特定的注意事项(对于简化竞争很重要): 如果之前的人员在其来源中包含换行符或非ASCII字符,则可以将其删除。这就是说,x="a\nb"变成了ab哪里x[0]=a;x[1]=b;。 您必须声明您已应用于前一个来源的突变。 尽管有代码页或语言编码,所有字符都被视为单个字符。请不要使用字节计数,请使用字符计数。 接受的答案将是50th答案,仅仅是因为;我的意思是,毕竟是SE。

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

14
用零填充文件
今天的任务是获取一个现有文件,并将零添加到该文件,直到达到一定大小为止。 您必须编写一个程序或函数,该程序或函数采用当前目录中文件的名称f和字节数b。在保留的原始内容的同时f,您必须在末尾写入零(空字节,而不是ascii 0),以便其新大小为b字节。 您可以假设名称中f仅包含字母数字的ascii,您对此具有完全权限,其初始大小不大于b,但可能与一样大b,并且有无限的可用磁盘空间。 您可能不会假设f它是非空的,或者它不已经包含空字节。 执行结束后,不应修改其他现有文件,也不应该存在新文件。 测试用例 f的内容| b | f的结果内容 12345 | 10 | 1234500000 0 | 3 | 000 [空] | 2 | 00 [空] | 0 | [空] 123 | 3 | 123
12 code-golf  file-system  code-golf  code-golf  string  code-golf  string  code-golf  random  game  compression  code-golf  array-manipulation  sorting  code-golf  number  arithmetic  primes  code-golf  geometry  code-golf  code-golf  decision-problem  regular-expression  code-golf  string  math  code-challenge  restricted-source  integer  palindrome  code-golf  string  palindrome  code-challenge  busy-beaver  code-golf  ascii-art  code-golf  string  code-golf  string  permutations  code-golf  code-golf  string  permutations  code-golf  number  primes  function  set-theory  code-challenge  hello-world  code-golf  math  number  decision-problem  code-golf  code-golf  sequence  arithmetic  integer  code-golf  math  number  arithmetic  decision-problem  code-golf  kolmogorov-complexity  alphabet  code-golf  combinatorics  graph-theory  tree-traversal  code-golf  set-theory  code-golf  interpreter  brainfuck  substitution  code-golf  quine  permutations 

27
你必须打几遍奎因?
为应对这一挑战,您必须创建一个程序,该程序需要一个整数x并x多次输出其源代码。 规则 这是代码高尔夫,目的是使您的程序具有最少的字节数 如果提交函数,则该函数必须x作为参数,并且x多次将整个代码返回或打印到STDOUT。功能体也不能为空 如果您提交lambda,则不需要将其分配给变量 适用标准漏洞限制。 禁止空程序 您的程序仅在x整数大于或等于0 时才起作用 您的程序也可能不会直接读取其源代码的任何部分
12 code-golf  quine 

4
熵奎因!
您的任务是编写一个程序或函数,其中: 首次运行时,输出其源代码。 在随后的执行中,它应该输出先前输出的内容,但是会随机更改一个字符(定义如下)。它不必是一致的随机变化,但是每个可能的变化都应该有非零的发生机会。 第一次执行后,您的程序将不再是奎因。输出将已更改(该程序也可以自由修改自己)。 例如,如果您的quine是ABCD,则反复运行它可能会打印: ABCD A!CD j!CD j!CjD 技术指标 字符更改是: 插入一个随机字符, 删除随机字符,或 用新的随机字符替换字符。请注意,新字符允许与其替换的字符相同,在这种情况下,将不会进行任何更改。 当然,从空字符串中删除或替换字符不是有效的更改。 尽管将其标记为quine,但禁止阅读源代码的规则并不适用。 您可以使用任何字符集,只要它包含源代码中使用的字符即可。

3
音位错误
性格 我们将这些Unicode字符称为英语IPA辅音: bdfhjklmnprstvwzðŋɡʃʒθ 我们将这些Unicode字符称为 英语IPA元音: aeiouæɑɔəɛɜɪʊʌː (是的,ː这只是长元音标记,但出于此挑战的目的,请将其视为元音。) 最后,这些是主要和次要压力标记: ˈˌ 注意,ɡ(U + 0261)不是小写的g,主应力标记ˈ(U + 02C8)不是撇号,并且ː(U + 02D0)不是冒号。 你的任务 给出一个单词,将元音堆叠在跟随的辅音之上,并将重音标记放置在其跟随的辅音下方。(正如问题标题所暗示的,这样的书写系统将辅音元音序列作为一个单元打包在一起,称为abugida。)给定输入ˈbætəlʃɪp,产生输出: æə ɪ btlʃp ˈ 甲字被保证是声母,韵母和应力标记的字符串,如上面所定义。永远不会有连续的重音标记,它们将始终放置在单词的开头和/或辅音之前。 测试用例 可能有连续的元音。例如,kənˌɡrætjʊˈleɪʃən变为 ɪ ə æ ʊeə knɡrtjlʃn ˌ ˈ 如果一个词以元音开头,打印在“基线”与辅音:əˈpiːl变 ː i əpl ˈ 一个测试用例的初始,强调元音:ˈælbəˌtrɔs变 ə ɔ ælbtrs ˈ ˌ 一句话:ˌsuːpərˌkaləˌfrædʒəˌlɪstɪˌkɛkspiːæləˈdoʊʃəs变成 æ ː ː ʊ uə aə …

2
解释基普尔!
介绍 Kipple是Rune Berg于2003年3月发明的基于堆栈的深奥编程语言。 Kipple有27个堆栈,4个运算符和一个控制结构。 堆栈 堆栈被命名为a- z并包含32位带符号整数。还有一个特殊的堆栈,@使输出数字更加方便。当将数字压入时@,实际上将压入该数字的ASCII值。(例如,如果您将12推到@,它将推49,然后推50。@) i在执行程序之前,将输入压入输入堆栈。解释器将i在执行之前要求存储值。执行完成后,输出堆栈上的所有内容o都会弹出以ASCII字符形式输出。由于这是Kipple唯一的IO机制,因此无法与Kipple程序进行交互。 经营者 操作数可以是堆栈标识符或带符号的32位整数。 推送:>或< 语法:Operand>StackIndentifier或StackIndentifier<Operand Push运算符将操作数向左移并将其推入指定的堆栈。例如,12>a将值12推入stack a。a>b将从堆栈中弹出最高值a并将其推入堆栈b。弹出空堆栈总是返回0 a<b相当于b>a。a<b>c从弹出最高值,b并同时推入c和a。 加: + 句法: StackIndentifier+Operand Add运算符将堆栈上最顶层项目和操作数之和压入堆栈。如果操作数是堆栈,则从中弹出值。例如,如果堆栈的最高值为a1,a+2则将3压入堆栈。如果a为空,a+2则将2推入。如果堆叠的最值a和b是1和2,然后a+b将从栈中弹出的值2 b和3推入堆栈a。 减去: - 句法: StackIndentifier-Operand 减法运算符的工作方式与加法运算符完全相同,只是它减去而不是加法。 明确: ? 句法: StackIndentifier? 如果最上面的项目为0,则Clear运算符将清空堆栈。 解释器将忽略操作符旁边不存在的所有内容,因此以下程序将起作用:a+2 this will be ignored c<i。但是,添加注释的正确方法是使用#字符。#执行前,a 和行尾字符之间的所有内容都将被删除。ASCII字符#10在Kipple中定义为行尾。 操作数可以由两个运算符共享,例如a>b c>b c?可以写为a>b<c?。 该程序1>a<2 a+a将导致a包含值[1 4](从下到上),而不是[1 3]。对于-操作员也是如此。 控制结构 Kipple中只有一种控制结构:循环。 句法: (StackIndentifier code …
12 code-golf  interpreter  code-golf  string  code-golf  math  string  code-golf  ascii-art  path-finding  code-golf  string  ascii-art  code-golf  interpreter  binary  logic-gates  logic  code-golf  ascii-art  code-golf  graph-theory  code-golf  string  code-golf  number  sorting  code-golf  number-theory  random  cryptography  polynomials  code-golf  number  code-golf  math  number  sequence  code-golf  quine  code-generation  code-golf  arithmetic  set-theory  code-golf  sequence  code-golf  code-golf  string  math  fastest-code  optimization  code-golf  code-golf  internet  stack-exchange-api  code-golf  array-manipulation  code-golf  string  internet  string  code-challenge  internet  test-battery  code-golf  math  pi  code-golf  arithmetic  primes  code-golf  array-manipulation  code-golf  string  code-golf  string  palindrome  code-golf  sequence  number-theory  fastest-algorithm  code-golf  math  number  base-conversion  code-golf  number-theory  sorting  subsequence  search  code-golf  permutations  code-challenge  popularity-contest  code-generation 

4
帮助重新计算您的代表!
几个月前,我们在meta上进行了讨论,讨论如何提高因问题投票而获得的声誉。这是我们目前的投票信誉系统的基础:1 问题投票U值得5个声望。 回答投票u值得10个声誉。 问题或答案不满意d的人值得-2声望。 对于新系统,已经有许多不同的建议,但是当前最受欢迎的与上面的相同,但是问题投票的比例扩大到+10个代表。这项挑战是要计算出安装该系统后您将获得多少代表。 让我们来看一个例子。如果投票活动为UUUUuuuuUUUUUduuudUU,则在当前系统下,您的收入为121: U x 4 x 5 = 20 = 20 u x 4 x 10 = 40 = 60 U x 5 x 5 = 25 = 85 d x 1 x -2 = -2 = 83 u x 3 x 10 = 30 = …

7
信号中断脉冲
奎因(Quining)历史悠久-如果您从未听说过,请单击该标签并对其进行一些阅读。 你的任务 输出无限个1s(没有其他间隔[换行符,空格等])的序列,直到调用UNTIL SIGINT(通常为CTRL-C)。调用时,输出程序源。 规则 它必须是有效的密码: 没有从磁盘读取源。 查看与奎因丝有关的所有其他标准漏洞。 您可以使用任何语言。 因为这是代码高尔夫球,所以最短的答案就是成功!
12 code-golf  quine 

8
源代码中的字符计数
编写一个程序,输出在其源代码中每个唯一字符出现次数的列表。 例如,此假设程序{Source_Print_1};应产生以下输出: ; 1 P 1 S 1 _ 2 c 1 e 1 i 1 n 1 o 1 p 1 r 2 t 1 u 1 { 1 } 1 格式应与此示例匹配。除可选的最终换行符外,不允许使用多余的空格。 您的程序可能无法从源文件中读取其自己的源代码。 列出的字符必须是两个顺序之一。语言使用的字符编码中的字符值顺序(可能是ASCII),或者字符在源中出现的顺序。 这个问题受到Jan Dvorak的评论的启发。
12 code-golf  quine 

3
做个差不多
我想给他一个愚弄的朋友奎因说几乎工作,但变得更模糊和更模糊。 创建一个程序,该程序在运行时将输出该程序,但只输出一个字符。可以添加,删除一个字符或同时添加两个字符(更改一个字符)。但是只有一个字符。 您的分数将是(length of your program) / floor(sqrt(number of times the program almost quines))(/ 0无穷大) number of times the program almost quines是程序在标准输出中只更改一个字符时运行的次数。您的程序可能不接受输入。它还可能不打印已经打印的程序。 您也可能不会添加以前添加的字符,也可能不会从同一索引中删除字符。例如,如果您之前添加1过,然后1又添加了,那么这就是number of times the program almost quines停止的地方。如果删除第一个字符,则不能再次删除第一个字符。如果将第三个字符更改为2,则不能添加2或删除第三个字符。
12 code-golf  quine 

1
编写代码滑动拼图!
最可识别的滑动拼图是十五个拼图。它具有4 x 4网格,15个图块和一个空白网格空间。磁贴只能移动到空白区域,并且必须始终与网格对齐。 让我们定义一个广义的滑动拼图,它是一个二维的W宽度,高为H个高网格(W,H均为正整数),其中包含一些相同的未标记图块(在0到W × H之间),对齐到网格,排列为任何方式(不重叠),用空的网格空间填充其余区域。 例如,如果W和H为3,并且图块为T,并且空白处E为许多可能的侧板拼图布置之一,则 TTT TET EET 对于这些难题,有4种可能的举动:将所有事物推高,将所有事物推低,将所有事物推向左侧或将所有事物推向正确。沿某个方向“平移”会使所有图块尽可能沿该方向移动,直到它们碰到另一个图块或网格边界为止。有时推不会改变网格的布局, 如果将示例网格向右推,则结果为 TTT ETT EET 向左推的结果是 TTT TTE TEE 推倒结果是 EET TET TTT (请注意,最左边T的都已移动) 在这种情况下,推挤不会改变网格布局。 请注意,由于图块是无法区分的,因此这些难题没有“已解决”状态。还要注意,难题可能始于一旦做出推就不可能回到的布局(例如,在3 x 3网格中间的一个图块)。 挑战 仅使用可打印的ASCII编写两个矩形代码块,宽度均为M个字符,高度为N个字符(对于任何正整数M,N)。一个代码块将代表一个滑动拼图块,另一个代码块将代表一个空的网格空间。 将这两个代码块排列成W by H网格将创建一个代码表示的滑动拼图,该拼图可以保存为文本文件并作为常规程序运行。在运行时,此类程序应通过stdin提示用户输入1到4之间的数字;1表示向上,2表示向下,3表示左侧,4表示右侧。当用户键入他们的编号并按回车键时,程序将计算如何向该方向推其源代码图块,并将新的拼图布局保存到文件(新文件或同一文件)中,然后终止。 每次推后生成的新的滑动拼图代码文件都可以无限期地重复此过程。 例 假设我的图块代码块看起来像这样 // my // tile 我的空网格空间代码块看起来像这样 //empty //space (M = 7,N = 2,这当然不是实际代码) 这两个模块的任何有效的滑动拼图布置都应该以我使用的语言创建一个程序,该程序可以运行以使用户朝某个方向推。 示例网格的代码表示为: …

1
打高尔夫球用不同的语言的一些奎尼条纹
您将选择m种语言,并用每种语言编写n个程序,每个程序的长度为n * m。第k个程序应按程序号输出每个程序的第k个字符。 例如,在此提交中(仅用于演示;它们可以是任何字符,包括换行符和制表符): ABC DEF GHI 计划ABC应输出ADG,以及程序DEF和GHI应该输出BEH和CFI分别。 列表中的所有程序都不能是普通的quine。因此ABC,ADG必须有所不同。其他两个程序也一样。注意,n * m必须至少为2才能使之成为可能。 您不必按特定顺序使用语言。因此,您可以用语言A写两个程序,然后用语言B写三个程序,然后再用语言A写另一个程序。但是所有语言必须使用完全相同的次数。 程序和输出中的前导/尾随换行符无关紧要。 最低n(m + 10)/ m 3的答案获胜。但是,如果大多数语言使用了至少3种语言,我还将奖励至少+100悬赏。赏金截止日期:一周没有改善或2015年3月1日,如果没有答案满足标准。 语言规则 您可以使用任何具有不同名称的语言或通常被认为足够不同的不同版本(例如Python 2/3,ECMAScript 5/6)。但是您的程序不得以您使用的任何其他语言输出完全相同的东西。

3
节省会话的Quine
受到这个问题的启发。 创建一个程序,提示用户存储一些数据,并在退出程序时吐出程序本身,但会话数据已更改。 然后,用户打开新生成的程序,并可以从先前的程序中调出数据。 指令 KEY VALUE:KEY将会话变量设置为VALUE *:清除所有数据 ! KEY:删除 KEY ? KEY:查询KEY(如果不存在:什么都不打印然后继续) 否则,退出程序 键或值都不能包含任何空格。新生成的程序的文件名必须标识该程序的版本,您可以使用日期或计数器。 交互示例: name test store name = test data is now { name: test } 0 1 data is now { name: test, 0: 1 } ? name output: test ! 0 delete 0 data is now …
12 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.