Questions tagged «code-challenge»

代码挑战赛是一种创造性的竞赛,可以用客观的获胜标准来解决编程难题,而其他得分标记(例如,代码高尔夫)则无法涵盖这些目标。

28
计算Phi(非Pi)
不,我不是说ϕ = 1.618...和π = 3.14159...。我的意思是功能。 φ(x)的是一个整数小于或等于的数量x互质到x。 π(x)是小于或等于的素数x。 假设“非pi”为π̅(x),并将其定义为小于或等于的复合数x。 任务 给定一个严格的正整数x,计算φ(π̅(x))。得分以字节为单位。 例子 每行包括输入(从1到100,包括1和100),以及由空格分隔的相应输出。 1 0 2 0 3 0 4 1 5 1 6 1 7 1 8 2 9 2 10 4 11 4 12 2 13 2 14 6 15 4 16 6 17 6 18 4 19 4 …
73 code-golf  sequence  primes  number-theory  code-golf  decision-problem  code-golf  date  code-golf  typography  code-golf  math  number  multiple-holes  code-golf  quine  code-golf  string  syntax  code-golf  math  primes  rational-numbers  code-golf  graphical-output  image-processing  code-golf  kolmogorov-complexity  music  audio  code-golf  string  code-golf  math  geometry  code-golf  math  sequence  combinatorics  code-golf  game  grid  board-game  code-golf  restricted-source  array-manipulation  source-layout  code-golf  base-conversion  binary  code-golf  math  physics  code-golf  math  number  date  expression-building  code-golf  array-manipulation  graph-theory  decision-problem  popularity-contest  error-correction  code-golf  kolmogorov-complexity  geometry  grid  code-challenge  arithmetic  combinatorics  set-partitions  code-golf  kolmogorov-complexity  sequence  fibonacci  code-golf  restricted-source  pristine-programming  code-golf  code-golf  string  kolmogorov-complexity  code-golf  arithmetic  code-golf  string  parsing  code-golf  code-golf  sorting  counting  permutations  3d  code-golf  code-golf  ascii-art  music  code-golf  string  code-golf  string  ascii-art  code-golf  string  code-golf  quine  polyglot  code-golf  math  string  code-golf  internet 

14
多种语言的Hello World
任务 创建在多种编程语言中有效的程序或函数,并在将其编译/解释为其他语言时输出“ Hello,World!”。用另一种自然语言 例如,一个有效的解决方案Hello World!在编译并以C语言运行时可能会输出(英语),Hallo Welt!在编译并以C ++身份运行时可能会(德语),而在你好世界!Python时则输出(中文)。 规则 为了避免对答案的有效性产生歧义,下面列出了几种语言允许的短语版本。该列表包含这些短语,其中Google Translate对该短语进行了社区验证的翻译(截至撰写本文时)。* 这些翻译的准确性值得商,,但这正是挑战所要使用的。打印的字符串必须完全遵循以下格式(开头或结尾的空格除外)。 Afrikaans: Hello Wêreld! Albanian: Përshendetje Botë! Amharic: ሰላም ልዑል! Arabic: مرحبا بالعالم! Armenian: Բարեւ աշխարհ! Basque: Kaixo Mundua! Belarussian: Прывітанне Сусвет! Bengali: ওহে বিশ্ব! Bulgarian: Здравей свят! Catalan: Hola món! Chichewa: Moni Dziko Lapansi! Chinese: 你好世界! Croatian: Pozdrav svijete! …

27
2016 Time Capsule String:您的语言通用吗?
大约一年前,2015年12月31日,我想到: 我们应该制作一个时间胶囊线。每个人都可以添加一个角色,接下来的新年中,我们将看到谁可以用当时存在的esolang在所有角色中做出最好的程序。 Doorknob亲切地从PPCG社区中收集了角色,并确保它们安全了一年。 多达74人参加了比赛,所以我们有74个 可打印的ASCII字符供您玩耍! 以下是2016年时间胶囊字符串的74个字符,按提交顺序排列: H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``#|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{% 以下是2016年时间胶囊字符串的74个字符,按ASCII顺序排列(注意前导空格): !!!!!#$$%&())))*+...1449:=@@@AHILOQQQTTZ\\^`````````eefmpxy{||||~~~~~~~~~ 协作并不是很多,但在这里,我们就像是一个挑战。 挑战 为了确定时间胶囊字符串哪种语言“最好”,我们将面临6个(对于201 6)挑战,难度增加,其中每个挑战都必须使用74个时间胶囊字符中的一个子集。 面临6个不同的挑战有助于确保更多的语言可以竞争,但是只有最好的语言才能回答所有这些问题并获得高分。 得分: 根据使用了多少个角色,每个挑战的得分从0到74。 分数越高越好。 如果您的语言无法完成一项挑战,那么您对该挑战的评分为0。 挑战的任何非空子集都可以完成。 您的最终分数是所有6个挑战的分数之和。 最好的最终分数是6×74或444。 挑战 1.运行 如果某种语言的代码不能在一开始就运行,那么它将根本无能为力。 编写可能运行时间最长的完整程序(记住,仅使用74个时间胶囊字符),而不会出现编译时或运行时错误。 程序做什么无关紧要,它是否有输入/输出或进入无限循环都无关紧要,只重要的是程序运行没有错误。(警告是可以的,由于用户输入错误而引起的错误也可以。) 允许注释,因此可以很简单 #H@~*^)$.`~+1A|Q)p~`\Z!IQ~e:O.~@``|9@)Tf\eT`=(!``|`~!y!`) Q~$x.4|m4~~&!L{% 在Python中获得74分。 (如果这是您的语言可以完成的唯一挑战,请不要害怕回答,但是也不要期望获得很多选票。) 分数=程序长度(程序越长越好) 2.输入/输出 没有输入或输出形式的语言几乎和不能运行的语言一样没有用。 给定一个可打印的ASCII由字符!(0x33)至}(0x7D)包容,输出可打印的ASCII字符之前和之后。 输出可以是两个长度的字符串或列表,也可以是由空格或换行符分隔的字符。 例如,如果输入为}输出,则可能为|~或["|", "~"]或| ~或|\n~。 同样, "是的输出!,AC也是的输出B。 分数= 74-程序长度(程序越短越好) 3.可分支性 条件转换通常是图灵完整性的必要条件,而图灵完整性通常是一种有用的语言的要求。 给定一个正整数,如果以十进制数字结尾,16则将a更改6为a 7并输出结果;否则,输出不变。如果愿意,可以使用字符串作为输入/输出。 例子: 2016 …

30
编程语言中的字母
我们的任务是,在(英语)字母表中的每个字母,编写打印的字母,在其语言的程序名称以该字母开头。 输入: 无 输出: abcdefghijklmnopqrstuvwxyz 大写和尾随换行符可选 规则: 计分指标是编程语言的长名字,加上代码的长度。因此,C的“惩罚”为1,而GolfScript的惩罚为10。 每个答案一种语言/实现。鼓励多个答案。 在撰写本文之前,即2011年4月18日,应该已经存在编程语言。 如果编程语言名称的首字母不是英语字母,则不应将其强制为一个字母。它将被视为单独的字母(意味着减少竞争)。 在每个英文字母都有解决方案之前,不接受任何答案。 当前排名: 一个 PL:5 乙灰:20 Ç:35 d Ç:19 Ë:27 ˚F ISH:20 高语录:18 ^ h askell:28 我 Ø:33 Ĵ:15 ķ:13 大号胡:30 中号 ATLab的:19 Ñ IM:34 Ø WL:14 P ERL:14 Q基本:35 [R uby:17 S MBF:14 总含量:34 û尼克斯壳牌:31 V IM:12 w ^ …

18
鲁伯·戈德堡你好世界
对于这种高尔夫,您将需要使用多种语言。 任务 一鲁布·戈德堡机器是一个玩意儿,需要以执行一个非常简单的任务的复杂步骤的数量巨大。这项高尔夫运动的目标是输出Rube Goldberg...但不直接输出。 机器 您的“机器”是源代码,一旦执行,将提供另一种语言的另一种源代码,该源代码将Rube Goldberg在执行时输出。得到它了? 我改一下:您的初始代码必须提供另一个代码,该其他代码必须输出Rube Goldberg。两种代码必须用不同的语言编写。 奖金更像是唯一有趣的方式 如果您的代码输出的代码将输出将输出...的代码,则有好处Rube Goldberg。 注意:可以使用任何类型的输出(stdout,stderr,对话框等) 要点 点数等于代码中使用的字节数除以您使用的独特的,额外的语言的数量。 注意:不同的语言使用不同的编码。字节数以其自身的编码以初始语言计数。 例子 Pyth -> J -> Javascript -> output30字节= 30/2 = 15点(J和Javascript是额外的语言) Java -> C# -> C++ -> PHP -> output在36个字节中= 36/3 = 12点(更多的字节和更多的语言可以赢得更少的字节和更少的语言(我知道这些语言不可能在36个字节中做到这一点)) C -> output10字节= 10/0 = 无限点(无其他语言) Python -> Perl -> Ruby …

7
容错Hello World(又名采访)
面试结束时,邪恶面试官告诉您:“我们让所有申请人进行简短的编码测试,以查看他们是否真的知道自己在说什么。不用担心;这很容易。如果您创建了一个工作程序,我会立即为您提供工作。” 他示意您坐在附近的计算机旁。“您要做的就是创建一个可正常运行的Hello World程序。但是,”-他大笑着说-“有一个陷阱。不幸的是,我们在这台计算机上拥有的唯一编译器存在一个小错误。它会从该计算机中随机删除一个字符。源代码文件,然后再编译。好的,五分钟后见!” 然后他走出房间,开心地吹口哨。 您能保证得到这份工作吗? 任务 编写一个程序,Hello, world!即使从文件中的任何位置删除了单个字符,也可以打印到标准输出。或者尽可能接近这个。 规则 没有多余的输出 - Hello, world!必须是打印到标准输出的唯一实质性内容。如果其他字符是由您选择的语言自然产生的,则可以包含其他字符,例如尾随换行符,甚至类似的字符[1] "Hello, world!"(例如,如果您使用的是R),但每次都必须打印完全相同的字符。 它不能打印Hello, world!Hello, world!或Hello world!" && x==1在某些时候,例如。但是,允许警告。 测试为了测试以确定您的分数,您必须测试程序的每个可能排列:在删除每个字符的情况下对其进行测试,并查看其是否产生正确的输出。为此,我在下面提供了一个简单的Perl程序,该程序应适用于多种语言。如果它对您不起作用,请创建一个测试程序并将其包含在您的答案中。 计分您的分数是程序失败的次数。换句话说,文件中删除字符的各个位置数量使程序无法运行。最低分获胜。如果出现平局,则以最短的代码为准。 诸如"Hello, world!"多种语言(15种分数)之类的简单解决方案是可以接受的,但它们不会赢。我至少找到了一个Perl解决方案,其得分为4,我将最终发布它。 更新: 官方优胜者将使用图灵完备的编程语言,并且不会使用任何预定义的打印机制Hello, world!。所使用的任何外部资源(语言的标准库除外)都被视为程序的一部分,并且会被相同的1个字符删除。 这些要求贴在桌子上的便签纸上。抱歉,如果您最初没有看到它们。 更新2:是的,您的程序必须实际完成上述任务才能获得分数!意味着它应该Hello, world!至少成功打印一次。这应该是显而易见的。命令行开关和其他添加功能的设置也算作程序的一部分,并且必须删除单个字符。该程序必须在没有任何用户输入的情况下完成其任务。编译失败包括在您的失败计数中。 祝您编程愉快,并祝您工作顺利。但是,如果您失败了,您可能还是不想为那个邪恶的老板工作。 Perl测试脚本: use warnings; use strict; my $program = 'test.pl'; my $temp_file = 'corrupt.pl'; my $command = "perl -X …

14
编写印刷该语言名称的多语种
您的任务是编写一个程序,该程序以尽可能多的语言执行,并使用尽可能少的字符。为了避免简单的解决方案,该程序必须打印其运行语言的名称。 计分 您的程序必须至少支持5种语言。程序的分数为: (number of languages)1.5 / (length of program) 最高分数获胜,不早于第一个有效答案后的10天。

15
9孔挑战赛[关闭]
9洞挑战赛 不同难度的9项代码挑战。 多次使用同一语言的处罚。 该问题将通过标准杆,洞冠军和奖杯得主进行更新。 这是我与一些朋友进行的比赛,不是通常的比赛形式,但是我希望你们中的一些人会喜欢它的不同之处。以下是挑战,规则和奖杯。 孔洞 格林威(24) f(c:string, n:integer) 打印包含的n实例的行c。 崎不平的地方(73) f(t:string, s:string, n:integer) -> iin中实例i的索引 在哪里?nthst 晚餐咖喱(6235) f(x:function, y: function) -> g 哪里g是将调用一个函数y,n时间; n的返回值在哪里x 喷(92) f(p:string) 写入文件,p并将其填充为随机大小的随机大小矩形(ascii)。 寻宝(75) f(p:string, c:char) -> (x, y) 读取p包含符号网格的文件,并假设该符号存在,则返回该符号在网格中的第一个实例的x和y坐标。 桂河大桥(179) f(l:list[int]) 打印的差异桥图l。例如[1,7,3,17,1] /+6\ /-4\ /+14\ /-16\ 1 7 3 17 1 确保根据上面数字的大小创建空格。对于3位长的数字,您将在下面一行的数字之间需要4个空格。 捕获:在某个地方,您的代码必须拼写裤子(必须至少具有1个非字母数字分隔符。例如 tr(ou,se)(rs) …

10
将图像编码成推文(极端图像压缩版)
基于Stack Overflow 上非常成功的Twitter图像编码挑战。 如果一张图像值1000个字,那么您可以在114.97字节中容纳多少图像? 我要求您提出一种通用方法,将图像压缩为仅包含可打印ASCII文本的标准Twitter注释。 规则: 您必须编写一个可以拍摄图像并输出编码文本的程序。 程序创建的文本最长不能超过140个字符,并且只能包含代码点在32-126(含)范围内的字符。 您必须编写一个程序(可能是同一程序),该程序可以获取编码的文本并输出照片的解码版本。 您的程序可以使用外部库和文件,但是不需要Internet连接或与其他计算机的连接。 解码过程无法以任何方式访问或包含原始图像。 您的程序必须接受以下格式中的至少一种(不一定是其他格式)的图像:位图,JPEG,GIF,TIFF,PNG。如果某些或所有示例图像的格式不正确,则可以在程序压缩之前自行转换它们。 评判: 这是一个比较主观的挑战,所以获胜者将(最终)由我来评判。我的判断将集中在几个重要因素上,下面列出这些重要性逐渐降低的因素: 能够合理地压缩各种图像,包括未列为样本图像的图像 能够保留图像中主要元素的轮廓 能够压缩图像中主要元素的颜色 能够保留图像中次要细节的轮廓和颜色 压缩时间。尽管不像压缩图像的程度那么重要,但是速度更快的程序要比速度相同的慢程序更好。 您的提交应包括解压后的结果图像,以及生成的Twitter评论。如果可能,您还可以提供指向源代码的链接。 样本图片: 兴登堡, 山地景观, 蒙娜丽莎, 2D形状

10
小钱德勒很伤心。画他的云,使他振作起来
小钱德勒很伤心。画他的云使他振作起来。 注意:画云实际上不会使他振作起来。 圆可以定义为三元组(x,y,r),其中x是圆在笛卡尔平面上的x位置,是圆在笛卡尔平面y上的y位置以及圆r的半径。x并y可能是负面的。r永远是积极的。输入是以空格分隔的三元组形式的圆的列表。例如: 3,1,1 3,2,1.5 1,2,0.7 0.9,1.2,1.2 1,0,0.8 的3,1,1意思是“在与中心点的圆3,1与1个半径。3,2,1.5是指”在与中心点的圆3,2用1.5半径。 如果我们在图形上绘制输入的所有这些圆,则看起来像这样(我仅出于清晰起见添加了网格线和标签;它们不是必需的): 注意所有的圆是如何凝聚的。也就是说,它们全部重叠在一起,从而形成一个大的组,而没有其他的小圈子。输入保证是内聚的。 假设现在绘制一条绕这些圆形成的“边界”行进的线,而没有其他任何线。就像绘制所有圆组成的轮廓的边界一样。生成的云看起来像这样: 因此,仅通过在输入中绘制形成边界的圆弧来形成单一形状即可形成此云。换句话说,仅通过绘制不在另一个圆内的圆弧来形成云。您的程序将以上述形式接受输入,并输出显示结果云的图像。云的整体形状必须正确,但是比例,颜色,线条粗细以及在顶点处的外观取决于您。请注意,云必须是可见的,因此您不能拉出类似“此程序在白色背景上绘制白色云”,“此程序以无限小的比例绘制云”,“此程序以0绘制云”之类的内容。线宽”等。还请注意,边框的颜色必须与填充或背景的颜色不同。 另一个例子。输入: 1,4,2 5,2,1 3,1,1 3.5,2,1.2 3,3,0.7 1,2,0.7 输出: 如果云中存在“洞”,则也应绘制该洞。输入: 0,5,4 3,4,4 4,3,4 5,0,4 4,-3,4 3,-4,4 0,-5,4 -3,-4,4 -4,-3,4 -5,0,4 -4,3,4 -3,4,4 输出: 这是一条重要规则:您的程序必须仅绘制形成边框的线。这意味着您不能简单地完全绘制圆,然后用白色填充将圆绘制得稍小一些,因为该方法仍会绘制不形成边界的线,之后只会将其覆盖。该规则的目的是防止“绘制圆,然后用白色填充再次绘制圆”的实现或类似的方法。预计答案将在绘制之前实际计算出绘制对象的位置。 这是代码高尔夫球,因此最短的字符数获胜。

30
OEIS的演变
在此挑战中,目标是一次重新创建一个整数序列在线百科全书。与《 Hello World的进化》相似,每个答案都取决于先前的答案。 随着时间的推移,这一挑战将创造出OEIS序列的“家族树”。添加到此树很简单。 查找先前的答案,该答案可以在树的任何深度N处。 确定该答案序列生成的前N个数字。 在OEIS中找到一个序列,该序列以相同的数字开头并且之前从未使用过。 编写一个程序以生成刚刚发现的这个新序列。 将答案提交为深度N + 1 由于答案的级别会影响评分,因此您应该始终将答案添加到树上尽可能深的级别。如果您无法在树上的任何位置放置答案,则可以开始树的新分支并将答案设为深度1。 答案要求 有几种输出序列的方法。 第一种选择是编写一个程序或函数,该程序或函数输入一个数字(从STDIN或作为参数)并按您选择的顺序返回第N个数字。您可以假定将为N定义序列,并且N和S_N的大小“合理”(因此不会引起溢出)。您也可以使用任何合理的索引,例如0索引,1索引或序列的OEIS页面上“偏移量”下列出的索引,都没有关系。第一个索引产生的术语必须与OEIS条目的第一个术语匹配。 第二种选择是编写一个程序或函数,该程序或函数输入一个数字并返回序列的前N个项。输出的第一项必须是OEIS条目的第一项(您不能忽略前几项)。连续术语必须由任意的非数字字符字符串分隔,因此0,1 1.2/3,5;8,11可以,但011235811不计算在内。 第三个选项是创建一个输出连续数字流的程序。与第二个选项类似,连续项之间必须有定界符。 您的答案应包含这样的标头,以帮助Stack Snippet解析: # [language], [number] bytes, depth [number], A[new sequence] from A[old sequence] 您的答案应包含生成序列的代码以及任何后代必须包含的前几个术语。这几个术语之前terms:应加上确切的词,以便控制器可以将它们用作树形图的一部分。还建议您对选择的顺序进行描述。 如果您的帖子是深度1答案,因此没有祖先,则只需from A[number]在标题中省略即可。 这是一个示例答案: # Perl, 26 bytes, depth 3, A026305 from A084912 various code here and here The …

20
退出代码高尔夫
受到IO默认设置的启发。 任务 编写一个程序,如果输入整数x在0到255之间,则退出代码将导致崩溃x。 限制条件 您不得调用直接用于退出代码输出的任何内容(System.exit(x),从main等返回)。而是,您的程序必须导致错误或崩溃,以1的概率导致程序以输入整数退出。 在这种情况下,“错误”和“崩溃”一词表示程序导致了一些致命的意外异常,其中错误地使用了方法,操作或其他方式导致了不可逆的故障。 您可能不会直接抛出错误而直接导致错误。您必须使用方法,函数或其他用途来实现此目的,而该方法,函数或目的是提供不同功能的函数(例如,尝试执行对只读目录的文件写入操作)。 您的程序中必须至少有两个退出代码。 禁止使用信号终止过程。(可以在此讨论中找到理由) 计分 程序的分数取决于所支持的退出代码的数量,其中代码简洁性是决胜局。支持的退出代码数量最多!

21
向编程语言添加功能
您的任务是通过实现一个非常聪明的库,或者通过处理输入文本和/或调整编译过程,将特征附加到编程语言上。 想法: 将PHP样式的演示文稿添加到C中(例如 <?c printf("Hello,"); ?> world!)。 添加一个空合并运算符到非C#的一种语言中。 将宏添加到PHP。 加 goto到JavaScript。 将模式匹配添加到语言X。 将名称空间支持添加到没有语言支持的语言中。 使C看起来像PHP。 使Haskell看起来像Pascal。 ...(可在评论部分中发表想法) 规则: 把东西拿到桌上。不要只说“ Template Haskell”即可向Haskell添加元编程功能。这不是StackOverflow。 整个实现应该适合一个屏幕(不包括示例)。 不要将代码托管在专门用于此任务的外部站点上。 最令人印象深刻或令人惊讶的功能获胜。 不必担心100%正确地实现该功能。离得很远!主要的挑战是弄清楚您想做什么,并恶毒地砍掉细节,直到计划好的工作变得可行。 例: 向C编程语言添加一个lambda运算符。 初始方法: 好的,我知道我想使用libgc,以便我的lambda可以解决向上和向下的funarg问题。我想我需要做的第一件事是为C编程语言编写/查找一个解析器,然后我需要学习有关C的类型系统的所有知识。就类型而言,我必须弄清楚如何理解它。我需要实现类型推断,还是只需要按照给定的形式键入形式参数?CI中所有不知道的疯狂功能怎么办? 很明显,在C中正确实现lambda是一项艰巨的任务。忘记正确性!简化,简化。 更好: 向上拧螺丝,谁需要它们?使用GNU C的嵌套函数和语句表达式,我也许可以做一些棘手的事情。我想用简洁的hacky代码展示C语言上惊人的语法转换,但是我什至不需要解析器。那可以等待另一天。 结果(需要GCC): #include <stdio.h> #include <stdlib.h> #define lambda(d,e)({d;typeof(e)f(d){return(e);};f;}) #define map(F,A)({typeof(F)f=(F);typeof(*(A))*a=(A);({int i,l=((int*)(a))[-1]; \ typeof(f(*a))*r=(void*)((char*)malloc(sizeof(int)+l*sizeof(*r))+sizeof(int)); \ ((int*)r)[-1]=l;for(i=0;i<l;i++)r[i]=f(a[i]);r;});}) #define convert_to(T) lambda(T x, …

1
构建移动最少的freecell求解器
在Freecell游戏中,您需要负责从王牌到国王建造四个基础桩,并在这些布置中以不同的颜色向下建造。但是,一次只能构建一张卡,因此会为您提供四个“自由单元”,每个单元可以包含一张卡来帮助您移动整个序列。想法是,您可以根据需要在空闲单元中编织单个卡片,以帮助解决游戏。 您的任务是建立一个程序,以尽可能少的动作解决这些游戏。 您的程序将采用以下格式输入52张卡片作为输入: 2S 9H 10C 6H 4H 7S 2D QD KD QC 10S AC ... 它将按以下顺序在初始布局中处理: 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 …

6
ASCII艺术日历
让我们制作一个ASCII艺术时钟和日历,告诉我们当前的月份,每月的某天,一周的某天,小时,分钟,以及它是夜晚还是白天(但不是年份或秒)。 在任何特定时间,日历将看起来像这样:(看起来更好,行距更少) ________________________________________________________________ |\ ____________________________________________________________ /| | | ___ | | | | _( ) | | | | (___)__) -.- | | | | | | | | | | | | -.- | | | | -.- | | | | ___ | | | | _( ) …

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.