Questions tagged «code-generation»

对于希望答案产生代码的挑战。

9
直到2017年
在这个挑战中,您将构建一个程序,该程序会随着时代的发展而不断发展……直到2017年。 挑战 每当此挑战说明说“程序”时,您也可以阅读“功能”。 您的提交在执行时将输出一个THE LENGTH OF YOUR SUBMISSION+ 1字节长的程序。 当该执行程序,它会输出一个程序,它是THE LENGTH OF YOUR SUBMISSION+ 2字节长...等等。 但是,当程序达到2017字节的长度时,它必须改为输出2017并退出。 规则 最终程序的输出必须为2017并且仅2017。它可以是字符串,也可以是整数,但必须读取2017并且不能读取或不读取,2017.0或读取0x7E1其他此类废话。 没有标准漏洞。 只允许您的初始程序要求输入,该输入将添加到您的字节数中。因此,如果您的初始程序是324个字符长,并且需要输入13个字节,那么您的总分将是 324 + 13 = 337, 并且它输出的程序必须是 338长个字节。 perl -X但是,只要您的初始程序和所有生成的程序都使用相同的标志,就可以使用命令行标志(例如)。同样,它们也计入总字节数。命令行标志前的破折号,斜杠等不计入总数,因此例如perl -X算作一个额外的字节。 如果返回一个函数,则它应该是一个实际函数,而不是在求值时产生一个函数的字符串。 不允许使用错误的奎因(如果您的程序是奎因)。 例 伪码,99个字节 IF (PROGRAM LENGTH == 2017) PRINT 2017 ELSE PRINT (THE SOURCE OF THIS PROGRAM + 1 …

30
创建一个鹦鹉程序
给定输入,输出该输入,然后不断地换行。 输入将是仅由可打印的ASCII字符(0x20-0x7E)和换行符(0x0A)组成的字符串。 如果输入长度为0,则不断输出换行符。 这是代码高尔夫球,因此每种语言中最少的字节会获胜!
15 code-golf  string  sequence  combinatorics  fastest-code  number  code-challenge  restricted-source  rosetta-stone  code-golf  arithmetic  decision-problem  integer  factorial  code-golf  arithmetic  decision-problem  integer  bitwise  code-golf  kolmogorov-complexity  code-golf  tips  vim  code-golf  quine  code-generation  code-golf  string  restricted-source  code-golf  string  random  unicode  code-golf  audio  code-golf  ascii-art  code-golf  decision-problem  code-golf  puzzle-solver  code-golf  restricted-source  code-golf  kolmogorov-complexity  permutations  hexagonal-grid  code-golf  string  math  combinatorics  fastest-code  code-golf  restricted-source  code-golf  string  code-golf  arithmetic  code-golf  math  number  code-golf  string  decision-problem  balanced-string  code-golf  binary  code-golf  string  number  code-challenge  restricted-source  code-golf  ascii-art  printable-ascii  interactive  code-golf  string  ascii-art  code-challenge  restricted-source  source-layout  code-golf  arithmetic  tips  functional-programming  golfing-language  code-golf  binary  encryption 

2
解决堆栈状态图
堆栈状态图显示了如何将一个堆栈上的值更改为另一个堆栈上的值。例如,这是一个堆栈状态图: 3 0 2 1 0 这意味着有一个堆栈最初包含3个值(3部分)。这些值的索引范围是0到2,顶部是0 2 1 0。下一部分0 2 1 0描述了堆栈的最终状态:最初位于堆栈顶部的值也已复制到背面。 这些转换发生在支持多种数据类型的堆栈上: “值”类型,最初是堆栈上的值。它可以是字符串,整数等,但是不需要知道其值。 “列表”类型,它是包含任何数据类型的值的列表。 为了对此转换建模,允许执行以下操作: S:交换堆栈顶部的两个值:2 1 0→2 0 1 D:将值复制到堆栈顶部:1 0→1 0 0 R:删除堆栈上的最高值。 2 1 0→2 1 L:将最高值变成包含该值的一元列表:2 1 0→2 1 (0) C:串联堆栈中的前两个列表:2 (1) (0)→2 (1 0) U:将列表中的所有值放入堆栈:2 (1 0)→2 1 0 这些等效于欠载命令~ : ! a …

2
将RoboCritters转换为Brainf ***
RoboCritters(词源学)是一种崭新的深奥编程语言(不必费心去寻找它,我只是发明了它)。它是是Brainfuck(BF)变体,比通常的运算符替换方案稍微复杂一些。RoboCritters中的每个程序都是一个矩形的文本网格,该文本网格仅包含七个字符. []/\|以及用于换行的换行符。 示例RoboCritters程序: |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ 要将RoboCritters程序转换为BF,请按正常阅读顺序(从左到右,然后从上到下)查看网格中的每个非换行符|\/||./|[]||[..][][] ||/\|[..][..][..] \/\/。 如果从当前角色向右和向下延伸的网格的4×2部分与下面列出的八个机器人生物之一完全匹配,请附加相应的BF命令(><+-.,[])到(最初为空)BF程序。 如果4×2网格部分与任何机器人生物都不匹配或超出范围,则不向BF程序添加任何内容。 Joybot,>命令: [..] \][/ Calmbot,<命令: [..] /][\ Squidbot,+命令: [..] //\\ Spiderbot, -命令: [..] |||| Bunnybot,.命令: [][] [..] Toothbot,,命令: [..] |/\| Foxbot,[命令: |\/| [..] Batbot,]命令: [..] \/\/ 因此,请阅读示例程序 |\/||./|[]|| [..][][] | |/\|[..][..] [..] \/\/ 我们可以看到我们首先遇到了Foxbot(在第1列第1行),然后是Toothbot(c1,r2),然后是Bunnybot(c5,r2),最后是Batbot(c9,r3)。这对应于BF程序[,.]。 请注意Foxbot和Toothbot重叠。这是故意的;重叠的机器人生物没有任何不同的解释。 挑战 编写最短的程序,该程序可以接收RoboCritters程序并输出等效的BF。您无需运行BF或检查其是否有效,只需将RoboCritters代码转换为BF代码即可。 …

5
通过重复添加2个数字来生成任何数字
您将获得一台具有两个16位寄存器的计算机,x和y。寄存器被初始化x=1和y=0。机器唯一可以执行的操作是加法65536。即: x+=y- x被替换(x + y) mod 65536; y不变 y+=x -类似地 y x+=x- x被替换2x mod 65536; 仅在x偶数时合法 y+=y -类似地 y 目标是在其中一个寄存器(x或y)中获得预定数量。 编写一个程序或子例程,该程序或子例程接收一个数字(在stdin,,argv函数参数,堆栈顶部或任何其他常规位置),并输出一个程序以获取该数字。输出应该转到任何其他常规输出设备stdout,或者(如果您的语言没有stdout)。 输出程序最多可以达到100%加上最佳值的2个步骤。也就是说,如果最短的获取目标编号的程序包含n步骤,则您的解决方案不能超过2n+2。此限制是为了避免“过于简单”的解决方案(例如,计算1、2、3,...),但不需要完全优化;我希望最短的程序最容易找到,但不能确定... 例如:输入=25。输出: y+=x x+=y x+=y x+=x x+=x x+=x y+=x 另一个示例:对于任何斐波那契数,输出具有此交替模式。对于输入= 21,输出为 y+=x x+=y y+=x x+=y y+=x x+=y y+=x 最短的代码(以字节为单位)获胜。 (这个难题的灵感来自于我最近必须生成的16位处理器的一些代码) PS:我想知道-最佳程序最长的数字是多少?

7
斐波那契程序长度
编写一个长度为n的程序,该程序输出另一个程序,其长度为n之后的下一个斐波那契数。新程序必须做同样的事情-输出另一个程序,该程序的长度是下一个斐波那契数,以此类推 。n本身(原始程序的长度)不必是斐波那契数,尽管它可以是斐波那契数。 最短的代码获胜。 无需外部资源,仅ASCII,需要免费的编译器/解释器。 如果您的输出以换行符结尾,则也将对其进行计数。

11
打印程序的程序
挑战 您的目标是编写一个可以打印另一个程序的程序。该打印的程序应打印另一个程序,而新程序应打印另一个程序,直到结束。 规则 每个程序必须少于256个字节。(如果需要更改,请发表评论) 最后一个程序必须为空程序。 必须有有限数量的程序,因此程序不能是程序。 程序必须全部以相同的语言运行。 不允许输入。 获胜程序是打印尽可能多的程序的程序,它会自动计数。 祝好运!

17
生成/ *行号注释* /
您的任务是编写一个程序(或函数),该程序将字符串作为输入并将文本追加到满足以下规则的每一行的开头: 附加的文本必须包含行号。您可以使用基于0或1的索引。 文字必须是您所用语言的注释。注释定义为语法上有效的一段代码,不更改程序状态。删除注释不应更改程序。 注释的末尾只能包含换行符。 您不必为仅包含空格和注释的行添加行号。 技术指标 您可以假定输入将是您所用语言的有效程序。 在缩进敏感的语言(如Python)中,您可以在所有缩进之后放置行号注释。您可以选择制表符或空格作为缩进字符,但必须在帖子中指定。 您可以假设代码中的每个语句最多占用1行的全部内容;即没有多行字符串或反斜杠继续。 测试用例 蟒蛇: #0 a = int(input()) #1 while a: #2 print(a) C :(老实说,我对此编译感到惊讶) /*0 */#include <stdio.h> /*1 */int main() /*2 */{ /*3 */ char c; /*4 */ c = getchar(); /*5 */ do /*6 */ { /*7 */ putchar(c); /*8 */ …

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 = …

2
数论解释器,模n
一个句子数论(我们的目的)的是下列符号序列: 0和'(后继) -后继手段+1,所以0'''' = 0 + 1 + 1 + 1 + 1 = 4 +(加法)和*(乘法) = (等于) (和)(括号) 逻辑运算符nand(a nand b是not (a and b)) forall (通用量词) v0,v1,v2等。(变量) 这是一个句子的示例: forall v1 (forall v2 (forall v3 (not (v1*v1*v1 + v2*v2*v2 = v3*v3*v3)))) 这not x是简写x nand x-实际的句子会用到(v1*v1*v1 + v2*v2*v2 = v3*v3*v3) nand …
12 code-golf  number-theory  parsing  code-golf  kolmogorov-complexity  code-golf  code-golf  array-manipulation  matrix  code-golf  array-manipulation  code-golf  string  code-challenge  graphical-output  compression  code-golf  kolmogorov-complexity  code-golf  sequence  array-manipulation  code-golf  number  base-conversion  code-golf  string  decision-problem  code-golf  string  ascii-art  code-golf  string  random  code-challenge  brainfuck  code-generation  code-golf  code-golf  quine  code-golf  interpreter  code-golf  interpreter  code-golf  array-manipulation  sorting  code-golf  halting-problem  code-golf  javascript  code-golf  algorithm  code-golf  arithmetic  code-golf  math  counting  code-golf  math  code-golf  decision-problem  radiation-hardening  code-golf  conversion  bitwise  code-golf  number  decision-problem  code-golf  string  decision-problem  code-golf  random  game  code-golf  ascii-art  graphical-output  code-golf  decision-problem  binary-tree  tree-traversal  code-challenge  array-manipulation  code-challenge  graphical-output  path-finding  test-battery  algorithm  code-golf  integer  factorial  code-golf  binary-tree  code-golf  grid  graph-theory  code-golf  regular-expression  quine  code-golf  encoding  code-golf  king-of-the-hill  javascript 

4
在Brainfuck中编码URL
受这个问题的启发,您今天的目标是用头脑风暴对URL进行编码。 我的浏览器被黑了!位置栏已经变成了一个让人烦恼的解释器。我需要一个将URL转换为“笨蛋”程序的程序。我的电脑也很慢,所以如果Brainfuck程序很小,那就更好了。 哦,我的Twitter上只有一个工作选项卡处于打开状态。因此,您只能通过推文向我发送该程序。 用任何以字符串作为输入并输出“脑力激荡”程序的语言编写适合于tweet(140个字符)的程序。 该Brainfuck程序将在没有输入的情况下运行,并将生成输出。 此输出将插入到Google Chrome浏览器的位置栏中,并执行。 如果Google Chrome的行为与您输入的#1输入字符串所获得的行为相同,则该解决方案有效。URL缩短程序的重定向被认为是不同的行为-至少保持在同一域中。 您可能会认为Brainfuck解释器在每个单元格中都有无限精度的有符号整数,并且单元格的数量不受限制。 您的分数取决于为编码以下URL集而生成的Brainfuck程序的总长度: https://www.google.com/ /codegolf/47895/ http://www.golfscript.com/golfscript/examples.html http://en.wikipedia.org/wiki/Percent-encoding ftp://ftp.freebsd.org/pub/FreeBSD/ https://github.com/isaacg1/pyth/blob/master/doc.txt#L92 http://ftp.gnu.org/non-gnu/nethack/nethack-3.4.0.tar.gz.back-RSN.README 得分最低者获胜。

8
生成一个Brainf_ck程序,该程序输出给定长度的字符串
您的朋友正试图闯入一个具有特殊锁定系统的保险库:它需要在特定位置轻敲几次。您的朋友发现了该号码(范围为1 ... 99999),并拥有一个可产生所需敲击声的小工具。但是,该小工具是Brainfuck解释器!因此,您的朋友需要为其提供一个Brainfuck程序,该程序显然应该尽可能短(小工具的I / O速度很慢)。 您的任务是帮助他!用任何语言编写一个程序或子程序,该程序或子程序接受数字作为输入N,然后输出Brainfuck程序,该程序不进行任何输入,而是输出一串可打印的ASCII字符(不包括空格字符-范围为33的代码... 126)的长度N。 示例:对于input 10,输出可能是 +++++++++++++++++++++++++++++++++.......... (但我可以确定可以缩短它!) 您的分数将是以下值N(它们是随机数)的输出长度的总和: 55 68 15 28 841 838 522 846 4898 9004 9363 3810 13230 67175 37231 44701 哦,您将通过Twitter将您的代码(生成器程序)传输给您的朋友。因此,请确保它不超过140个字符! PS Brainfuck语言有多种变体。假设磁带在两个方向上都是无限的(或“圆形且足够大”),并且这些单元具有32位int容量(有限,并且能够容纳高达99999的数字)。而且,无需包装:当单元溢出时,机器会自毁!

5
撰写两个Brainfuck程序
给定2个Brainfuck代码片段A和B,输出一些与输入s结果时C运行行为相同的Brainfuck代码。请注意,它必须适用于与以下假设相匹配的任何输入,就像给定了一样。BACA 您可以假设: 有限的输入。 A和B都停止了。 EOF始终为0或始终为-1。 始终允许或不允许细胞离开 磁带无界(否则可能无法达到要求) 始终为8位换行或无界整数 没有流(A或B的输入或输出)包含表示EOF的字节 代码A和B可以包含可能出现在C中的字符,并且 +-[]<>,. 例如(EOF = 0) A = ,[..,] B = ,[...,] C = ,[......,] A = >,[>,]<[.<] B = ,[...,] C = >>>>,[[-<+<+<+>>>]>>>,]<<<<[.<] A = >,[>,]<[.<] B = ,[...,] C = >,[>,]<[...<] A = ,. B = ,. C = ,>,[,]<. …

16
懒人打码高尔夫
你在这个代码高尔夫的目标是把两个字符串,language并且code (如果你这个写的golfed代码为多,那么这个变量将是多),和一个整数bytes。它们表示编程语言的变量,占用的字节数以及代码本身。 之后,您将像打高尔夫球的人一样格式化它。 输出变量是称为的多行字符串answer。 您可以在以下位置使用多行字符串: C ++ 蟒蛇 佩尔 的JavaScript 如果搜索Stack Overflow,则应该能够找到更多支持它的编程语言。 这是输出减价的模板。该code变量在代码块中,并且具有第二级标头。 ## {language}, {bytes} bytes {code} 这是粘贴到Markdown解析器中后的输出结果。 {language},{bytes}个字节 {code} 假定变量已经作为您在代码高尔夫代码中输入的语言,其占用的字节数以及实际代码进行了填写。 这是代码输出的另一个示例,这次填充了变量: ## JavaScript, 1337 bytes document.getElementById("foo").innerHTML = bar; 这是版本的块引用: JavaScript,1337字节 document.getElementById("foo").innerHTML = bar; 如果您使用一种<p>通过id 设置HTML中元素文本的方法,则可以从代码中删除字节result,例如以下JavaScript代码: document.getElementById("result").innerHTML = answer; 确保<p id="result"></p>在JSFiddle的HTML部分中也包含,这样才能起作用。 计分 像所有的代码问题一样,使用最少字节数的代码也是最好的。

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.