Questions tagged «code-challenge»

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

7
寻找最小的集合
考虑三组A,B并且C每片含n整数。由此我们可以设定 S_n = {a * b + c | a in A, b in B, c in C}. 给定一个n,存在一个或多个最小尺寸S_n,具体取决于A,B and C已选择的集合。 这些集合可以包含任何n不同的整数(正,零或负)。例如,它们不需要是连续的整数,也不需要集合彼此相等。 A = {-1, 0, 5, 10, 27}, B = {2, 5, 6, 10, 14} and C = {-23, 2, 100, 1000,10000}是可以接受的(尽管不是一个好主意)。 任务 任务是编写代码来找到最小的一组S_n针对每个它能n从1到20。 对于每个nfrom 1到20您的代码,应输出selected A,B以及C结果的大小S_n 得分了 您的分数将是S_n您创建的大小的总和。那将是二十个数字的总和。 …

1
生成ASCII Art
给定任何合理的无损格式的黑白图像作为输入,请输出与输入图像尽可能接近的ASCII图像。 规则 只能使用换行符和ASCII字节32-127。 输入图像将被裁剪,以使图像周围没有多余的空白。 提交的内容必须能够在5分钟内完成整个评分语料库。 只接受原始文本;没有富文本格式。 评分中使用的字体为20点Linux Libertine。 如下所述,输出文本文件转换为图像时,其尺寸必须与输入图像相同,且任一尺寸均在30像素之内。 计分 这些图像将用于评分: 您可以在此处下载图像的zip文件。 提交内容不应针对该语料库进行优化;相反,它们应该适用于任何8张相似尺寸的黑白图像。如果我怀疑针对这些特定图像优化了提交,我保留更改语料库中图像的权利。 得分将通过以下脚本执行: #!/usr/bin/env python from __future__ import print_function from __future__ import division # modified from http://stackoverflow.com/a/29775654/2508324 # requires Linux Libertine fonts - get them at https://sourceforge.net/projects/linuxlibertine/files/linuxlibertine/5.3.0/ # requires dssim - get it at https://github.com/pornel/dssim import PIL import PIL.Image …

1
制作(软件)调制解调器!
目的 设计一个MO dulator / DEM odulator对准确地传送数据尽可能快地经模拟普通老式电话服务(POTS) 。 脚步 生成一些随机(/dev/random或类似数据)的数据,将需要3-4秒来传输 使用您的调制器调制数据以生成音频文件 通过POTS模拟器传递音频文件。如果您没有Python / Scipy,则可以使用表单上传文件,或者发出JSON API请求。 将音频文件解调回二进制数据 验证输入和输出是否相等*(每1000位中的限制1个会损坏) 得分是传输的位数除以音频文件的长度(位数/秒) 规则 输入文件必须为3-4秒,44.1 kHz,单声道。 以30 dB的SNR运行模拟器(默认设置) 解调器必须以不超过10 -3(每千位1个)的误码率重建传输的数据。 不允许数字压缩(即压缩数据。这超出了挑战的范围。) 请勿尝试将数据推入4 kHz以上的频率。(我的过滤器并不完美,但它们的抽头数量相对来说相当像POTS。) 如果您的调制解调器协议需要简短的前同步码(不超过1秒)来同步/校准接收器,则不会受到影响。 如果可能的话,请将音频文件存放在可访问的地方,以便我们听到嘟嘟声。 例 这是一个示例笔记本,通过简单的“开-关键控”(包括音频样本!)演示了调制/解调。 它将得分为100(位/秒)。请注意,它的发射信噪比差得多,为5 dB。

1
计数坎宁安链
素数总是让人着迷。2300年前,欧几里得在他的《元素》中写道 质数是仅由一个单位测量的质数。 这意味着素只能被 1(或本身)。 人们一直在寻找素数之间的关系,并提出了一些非常奇怪的东西(如“有趣的”)。 例如,一个索菲·热尔曼质数是一个主要p针对2*p+1也是素数。 一个安全素是一种主要p用于哪些(p-1)/2也是黄金,而这正是一个索菲·热尔曼质数的倒退状态。 这些与我们在此挑战中寻找的东西有关。 一个坎宁安链型我是一系列素数,其中除了最后一个的每一个元素是的索菲·热尔曼质数,而除了第一个的每一个元素是一个安全的黄金。该链中元素的数量称为它的length。 这意味着我们从素数开始p计算q=2*p+1。如果也q为质数,则我们有长度为2的I型Cunnigham链。然后进行测试2*q+1,以此类推,直到下一个生成的数字为复合数为止。 II型坎宁安链是按照几乎相同的原理构造的,唯一的区别是我们检查了2*p-1在每个阶段。 坎宁安链的长度可以为1,这意味着2 * p + 1和2 * p-1都不是素数。我们对这些不感兴趣。 坎宁安链的一些例子 2启动长度为5的I型链。 2, 5, 11, 23, 47 下一个构造的数字95不是素数。 这也告诉我们,那5,11,23和47不启动类型的任何链我,因为这将有前述的元素。 2也开始长度为3的II型链。 2, 3, 5 接下来是9,这不是素数。 让我们尝试II11型(之前我们将其排除在I型之外)。 好吧,接下来是下一个,它不是素数,因此该“链”的长度为1,我们不将其计入此挑战。21 挑战 写一个程序或功能,给定一个号码n作为输入,写入/返回的起始数第n个的坎宁安链I或II型的至少长度为2,后跟一个空格,随后链的类型它开始(我或II),然后是冒号,然后是该类型链的长度。万一素数同时启动两种类型的链(类型I 和型 II型),则首先计算型链。 例: 2 I:5 请记住,这n可能是任何类型的先前启动链的一部分,在这种情况下,不应将其视为该类型链的起始编号。 让我们看看这是如何开始的 我们从开始2。由于它是第一个素数,因此我们可以确定没有链从包含的较低素数开始2。 类型I中的下一个数字将是2*2+1 == 5。5是素数,因此我们已经有了至少长度为2的链。 我们将其视为第一条链。那II型呢?下一个号码是2*2-1 == 3。3是素数,因此II型的链长也至少为2。 …

1
需要机器人卡车来打包卡车
作为乐队的路易,您必须打包卡车。您的程序将放置包装,使其适合最小高度。 一辆包装不好的卡车 规则 包装可以旋转90度的倍数。包装可能会碰触但不能重叠。 输出是重新打包的映像(到文件或标准输出)。您的程序可以使用任何输入或输出栅格图像格式。 您的程序必须接受任意数量的各种形状的软件包,图像的最大分辨率为4000x4000像素。请勿对此测试图像进​​行硬编码。如果我怀疑有任何针对该特定图像的提交内容,我保留用新的测试图像替换它的权利。 得分了 分数是包含排列的矩形的最小高度(宽度是输入矩形的宽度)。如果是平局,则最早的参赛者获胜。 照常禁止出现标准漏洞。

2
去让它满天星斗
在本竞赛中,您必须编写一个程序,该程序接受黑白像素图像,然后尝试对其进行更改,以使白色形状形成星形域,并尽可能减少更改。 允许的更改是将白色像素变成黑色,将黑色像素变成白色。 输出必须再次包含相同的图像,但是这次所有更改都带有,并且标有a /中心。从白色变为黑色的像素必须以蓝色显示,从黑色变为白色的像素必须以黄色显示,并且至少一个中心像素必须以红色显示。(完全的颜色由您决定。)程序必须输出指定的图像以及所做的更改总数。 定义 星域 当(且仅当)存在(至少)一个中心像素时,图像的白色像素集才代表星域。的中心像素是能够由被conneced白色像素中的一个直线到所有其他白色像素的,使得线仅横穿白色像素。(因此中心像素不一定是唯一的。) 两个像素之间的直线 给定两个像素(开始和结束,在下图中均为红色),两个像素之间的直线由所有像素组成,这些像素接触从第一个像素的中心开始的(下图中的数学黄色)线像素到最后一个像素的中心。如果一个像素仅碰到一个角就不会接触该线,所以要使一个像素属于该像素线,(数学上的黄色)线必须以不为零的长度穿过所讨论的像素。(如果它仅碰触拐角点,则视为长度为零)。请考虑以下示例: 例 对于给定的示例,第一个图像应表示示例测试用例“输入”,而其他两个图像则表示两个有效的可能输出: 黄色区域(以前为黑色)也计入“白色”域,而蓝色区域(以前为白色)计入域外的“黑色”部分,红色点每次都代表一个可能的中心像素。 测试用例 以下测试用例是png,每个大小为256 x 256像素。 计分 请使用以下测试用例运行程序,并在答案中包括输出(图像/更改数量)。我将为每个测试用例排行榜。您的分数将是排行榜中每个排名的总和-分数越低越好。有标准漏洞。不允许程序识别那些测试用例并为其运行特殊情况。(不允许为每个测试用例预先计算并保存最佳中心像素。)该程序应适用于任何图像。 排行榜 Name | Score | 1 - rk | 2 - rk | 3 - rk | 4 - rk | 5 - rk | 5 - rk | Total Changes ------------+-------+------------+------------+------------+------------+------------+------------+-------------- …

3
查找没有属性X的最高得分矩阵
这一挑战部分是算法挑战,部分是优化挑战,部分仅仅是最快的代码挑战。 循环矩阵的第一行完全指定r。其余行是该行的每个循环置换,其r偏移量等于行索引。我们将允许使用非正方形的循环矩阵,以使它们仅遗漏最后几行。但是,我们始终假定行数不超过列数。例如,考虑下面的3 x 5循环矩阵。 10111 11011 11101 如果矩阵包含两个具有相同索引(向量)总和的不相同索引的非空列,则该矩阵具有属性X。两列的矢量和只是两列的元素求和。那是包含x元素的两列的总和,每列是包含元素的另一列x。 上面的矩阵平凡地具有属性X,因为第一列和最后一列相同。单位矩阵从不具有属性X。 如果我们只删除上面矩阵的最后一列,那么我们将得到一个不具有属性X且得分为4/3的示例。 1011 1101 1110 任务 任务是编写代码以找到得分最高的循环矩阵,该矩阵的条目全为0或1,并且不具有属性X。 得分了 您的得分将是数列除以最佳得分矩阵中的行数。 决胜局 如果两个答案得分相同,则第一个提交者获胜。 在(极不可能)的情况下,如果有人找到获得无限分的方法,则将接受这种解决方案的第一个有效证明。在更不可能的情况下,您可以找到有限矩阵的最优性证明,我当然也会获奖。 暗示 获得12/8的分数并不难。 语言和图书馆 您可以使用任何具有免费编译器/解释器/等的语言。适用于Linux以及任何可免费用于Linux的库。 领先的作品 Peter Taylor(Java)36/19 Suboptimus Prime(C#)32/17 Justhalf撰写的21/12(Python 2)

1
你的(语言)蛇多久了?
在三阶奎因挑战之后,您的任务是编写一个使用尽可能多语言的Ouroboros程序。 也就是说,用语言A编写程序pA,该程序以语言B输出程序pB。程序pB应该以语言C输出程序pC,依此类推,直到最终程序以语言A输出原始程序pA。 循环中没有两种语言可以是相同的,也不能是彼此的子集或超集。循环中的所有程序都不相同。 最长的语言链胜出。源代码的长度为平局。 这是Ventero给出的长度为3的示例解决方案。 s='print q<puts %%q{s=%r;print s%%s}>';print s%s 使用Python生成此Perl代码段 print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}> 生成以下Ruby代码 puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s} 然后打印原始的Python代码段: s='print q<puts %%q{s=%r;print s%%s}>';print s%s

7
在此生成的二进制矩阵中打印特定值
假设我们以这种方式在M上N^2 -> {0, 1}(N从1代替0)开始定义一个无限矩阵: M(1, 1)= 0。 对于每个x > 1,M(x, 1)= 1if x是素数,0否则。 对于每一个y > 1,M(1, y)=的y中日长期Thue-Morse sequence。 对于每个x, y > 1,M(x, y)= M(x, y-1) + M(x-1, y) mod 2。 该16x16矩阵的左上部分看起来像(具有x行和y列): 0 1 1 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 1 …

9
种元:获得最短答案中的最长者
您的任务(如果您接受)是编写一个程序,该程序通过计算与代码高尔夫相反的比赛的获胜者来帮助理解我对meta的建议。当然,此问题的答案将被视为建议的答案,因此您的程序(如果正确)可以计算您的答案是否将成为接受的答案。 规则 程序读取具有以下格式的多行文件(请参见下面的示例):[Language] TAB [NumberOfCharacters] TAB [LinkToAnswer] 文件名将作为参数传递给您的程序,或者将文件重定向到程序的标准输入。由您选择,给出答案时请提及方法 预期输入格式正确。无需进行错误处理。 字符数为正。您的程序必须处理的长度最大为65535。64k应该足够每个人使用:-) 程序在标准输出上输出符合meta提案思想的那些行,即 特定编程语言的最短代码胜出(简化阶段) 所有编程语言中最长的代码胜出(排序阶段) 抽奖时,应打印所有相同长度的答案 输出顺序并不重要 尽管最长的代码获胜,但这不是代码保管。对于您的编程语言,您的代码必须尽可能短。 很少尝试不缩短代码的编程语言的答案应该被否决,因为它们试图绕过这种问题的意图。如果对于一种特定的编程语言只有一个答案,那么它将被视为优胜者,因此您可以开始发布其代码。 输入文件示例(如果格式有问题,请用单个选项卡分隔): GolfScript 34 http://short.url/answer/ags GolfScript 42 http://short.url/answer/gsq C# 210 http://short.url/answer/cs2 Java 208 http://short.url/answer/jav C# 208 http://short.url/answer/poi J 23 http://short.url/answer/jsh Ruby 67 http://short.url/answer/rub C# 208 http://short.url/answer/yac GolfScript 210 http://short.url/answer/210 预期输出(顺序不重要): C# 208 http://short.url/answer/poi C# …

4
编写代码以确定可接受的答案
发布该问题的答案,评估该问题的任何答案并确定是否获胜。 谁赢: 根据3月2日(星期日)1700 UTC的最高答案,获胜者将根据最多的答案获胜。 欢迎并鼓励您随着比赛的进行更改自己的答案。请不要改变别人的。 领带由最短的代码决定。 不管您平时会做多少,如果有什么东西可疑,我都会取消您的参赛资格。 我不会接受自己的答案,但会用它来评估您的答案。 规则: 您的计算必须为任意答案提供数值分数(为简便起见,算法的输入要么是答案的ID,要么是页面上答案的减价)。 您的分数必须至少有一个获胜者,而且除了您的答案以外,还必须有可能获胜。 您的算法不能使用非常具体的答案,也不能使用用户名或时间戳。我将最终决定“非常具体”的含义,但我鼓励社区维持治安和公众羞辱。 您的代码必须编译,运行并给出任何答案的分数。 如果未在Ideone上列出,请提供指向执行代码的方法的链接。见下文。

7
是素数吗?无数学[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 用任何一种语言来编写程序或函数,以表明输入是否为质数。 输入是一个字符串,表示以10为底的自然数。 输出是两个字符串“ Prime”或“ Not !!”之一。可以正确识别输入。 程序中的任何地方均不允许使用算术运算符,按位运算符,数字变量和常量,一般为“数学运算”等。您应该使用字符串操作来执行所有必要的“计算”。 您可以比较字符串长度(即数字)-如果不比较,则为-10。 您的程序应该可以在任何长度的输入上工作(给定足够的内存和时间)。 最低字节数(UTF-8)获胜。

13
伪装编写程序[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 面临的挑战是创建一个程序,以解决另一种 HQ9 +问题,同时又看起来像另一种语言。 注意:这不是高尔夫挑战。 规则: 该程序在运行时必须执行以下任务之一。 打印“你好,世界!” 打印其整个来源。 打印的歌词“在华尔街99瓶啤酒”(如看到这里)。 乍一看,该程序应该看起来像另一种语言。 等级 满足规则的工作程序。+3 如果可以运行“其他语言”,则加分(语法有效)。+1 如果“其他语言”可以做些有用的事情,则可以得到更多的积分。+3 该程序在许多语言中都是有效的(并且非常有用)许多奖励积分。超过2种的每种语言+5。

30
正整数之和。[关闭]
已关闭。这个问题需要细节或说明。它当前不接受答案。 想改善这个问题吗?添加细节并通过编辑此帖子来澄清问题。 3年前关闭。 问题: 给定一组整数,找到其中的所有正整数之和。 输入: t –测试用例数[ t <1000] 在每个下一个的吨系,整数Ñ [-1000≤ Ñ ≤1000] 输出量 程序应输出所有正整数的和。 在在线裁判中检查您的代码 得分了 分数等于程序源代码的大小,但ASCII码≤32的符号除外。 以下是最佳成绩列表:Python最佳成绩(最高成绩为29)

17
随机播放无局部变量的牌组
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Code Golf Stack Exchange 的主题。 2年前关闭。 这个难题的目的是拿出52张纸牌并洗牌,以使每张纸牌处于随机位置。 鉴于: deck代表卡片的52个不同整数组成的数组。当您开始时,deck仅以未知顺序包含每张卡中的一张。 函数,该函数int rand(min, max)返回ins min和max(含)之间的随机整数。您可以假定此函数是真正随机的。 一种功能,void swap(x, y)可以交换卡片组中的两张卡。如果您致电swap(x, y),则这些卡将在位置x,y并将切换位置。 什么时候: 程序调用shuffle()(或shuffle(deck),deck.shuffle()或者您的实现喜欢运行), 然后: deck 应该完全随机地包含每张卡中的一张。 抓住: 您不能声明任何变量。随心所欲地调用swap和rand,但是您不能声明自己的任何变量。这包括for循环计数器-甚至是隐式计数器(如)foreach。 说明: 您可以更改次要详细信息以适合您选择的语言。例如,您可以编写swap以通过引用切换两个整数。所做的更改应该是使它与您的语言配合使用,而不是使难题变得更容易。 deck 可以是全局变量,也可以将其作为参数。 您可以对的内容进行任何操作deck,但不能更改其长度。 您的卡可以编号为0-51、1-52或您喜欢的任何编号。 您可以用任何一种语言编写此代码,但不会欺骗您的语言的内置shuffle功能。 是的,您可以在同一行中编写52次。没有人会留下深刻的印象。 执行时间并不重要,但真正的随机性却很重要。 这并不是真正的代码高尔夫球,但是请随时最小化/混淆您的代码。 编辑:样板代码和可视化工具 如果您使用.NET或JavaScript,以下一些测试代码可能会有用: JavaScript: 带有JavaScript脚本源的快速,肮脏的JavaScript可视化工具:https : //gist.github.com/JustinMorgan/3989752bdfd579291cca 可运行的版本(只需粘贴到您的shuffle()函数中):http : //jsfiddle.net/4zxjmy42/ C#: 带有C#代码的ASP.NET可视化工具:https : //gist.github.com/JustinMorgan/4b630446a43f28eb5559 仅存有swap和rand实用程序方法的存根:https …

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.