Questions tagged «code-challenge»

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

5
接近挑战的代码:开始
这是此挑战的续集:接近挑战的代码:整数和 这个挑战比较艰巨,而且标题也很酷(这就是我选择它的原因): 计算两个字符串之间的Levenshtein距离 就像上一个挑战一样,您在此挑战中的得分是代码与上面引号之间的Levenshtein距离。 现在就来详细说明! 您的程序将接受2个输入,两个字符串都没有尾随空格或换行符,并将输出它们之间的Levenshtein距离。Levenshtien距离定义为将一个字符串转换为另一字符串所需的添加,删除和替换的数量。有关如何计算的更多信息,请参见上面链接的Wikipedia页面。要测试您的程序是否有效,请使用此计算器。您的程序只能输出两个字符串之间的Levenshtein距离。如果有其他输出,将被取消比赛资格。 I / O示例: Inputs: test test2 Output: 1 Inputs: 222 515 Output: 3 Inputs: Test test Output: 1 您的代码可能没有操作或注释。

6
打印字符串而不共享字符
编辑:允许重复使用空格。 您的任务是用相同的语言编写n个程序(或函数或函数体,而不使用参数或函数名)。第k个程序应以小写标准英语(带有可选的尾随换行符)输出(基数)k。因此,第一个程序应输出one,第二个程序应输出,two依此类推twenty-one。对于具有两个部分的数字,应使用连字符()隔开。 但是您提交的程序中没有两个程序可以共享非空白字符或做有用工作的空白字符。例如,如果你的第一个程序就是"one",那么没有" o n和e可以再次在其他程序中使用。 您可以在两个或多个程序中使用空格字符(空格,换行符和制表符),前提是它们仅用作分隔符或缩进,而不自己做任何事情。因此,您不能以Whitespace语言重用它们,也不能在多个程序中以字符串形式使用它们。 您只能使用可打印的ASCII字符,制表符和换行符(包括CR和LF)。每个程序必须至少包含1个字符。 您的分数是1 /程序大小^ 1.5的总和。最高分获胜。您可以使用以下堆栈片段(或CJam代码)来计算分数: function updatescore(a){var l=a.value.split("\n"),s=0;for(var i=0;i<l.length;i++){var t=l[i].length;t-=t&&l[i][t-1]=="\r";if(t)s+=Math.pow(t,-1.5);}document.getElementById('result').textContent=s;} <textarea id="input" placeholder="Put your code here, one per line." style="width:100%;height:150px;box-sizing:border-box" oninput="updatescore(this)" onpropertychange="updatescore(this)"></textarea><div>Your score: <span id="result">0</span></div> 运行代码段隐藏结果展开摘要


3
你是那个吗?(策划导数)
我有一个艰难的人给你! 我的女友最近在美国MTV上观看了一场新节目。这是一场可怕的演出,每个人都很垃圾,但是“游戏”非常有趣。从维基百科: 你是那个吗?跟随20位在夏威夷生活在一起的人,寻找他们的完美搭档。如果这10位男性和10位女性能够在10周内正确选择全部十场完美比赛,他们将获得100万美元的奖金。 现在是游戏部分(也来自维基百科): 演员们将在每集节目中与他们认为自己的绝配将在挑战中配对。挑战赛的获胜者将约会,并有机会在真相摊位中测试他们的比赛。主持人将选择其中一名获奖夫妇前往真相摊位,以确定他们是否完美匹配。 这是确认匹配的唯一方法。每个插曲都以配对仪式结束,在配对仪式上,夫妻会被告知他们有多少场完美的比赛,但不是正确的比赛。 TL; DR: 这是Mastermind的衍生物(具体来说,是M(10,10))。游戏规则如下: 您从2组10组开始,我们称它们为A组:{A,B,C,D,E,F,G,H,I,J}和Set 2:{1,2,3,4,5, 6,7,8,9,10} 计算机以{A1,B2,C3,D4,E5,F6,G7,H8,I9,J10}的形式创建一个对您不可见的解决方案,其中A组中的成员一对一映射设置2。解决方案的另一个示例可以是{A2,B5,C10,D8,E1,F7,G6,H4,I9,J3}。 在您的第一回合之前,您需要询问您选择的一对特定配对是否正确。您的问题将采用{A1}的形式(例如{C8}),并且您会收到1(表示正确)或0(表示您的猜测不正确)。 您的第一个实际回合。您首先以{A1,B2,C3,D4,E5,F6,G7,H8,I9,J10}的形式或您选择的任何排列进行猜测。 您的猜测不能包含任何项目的倍数,即{A1,A2,A3,A4,A5,B6,B7,B8,B9,B10}的猜测不是有效的猜测。每次转动之后,计算机都会告诉您正确的匹配次数,但不会告诉您哪些匹配正确。 重复第3步和第4步,直到您正确地确定每个比赛(即响应为10),或者直到您的10步上升(以较早者为准)。如果您在第10回合之前或第10回合中解决此问题,您将赢得100万美元。否则,你输了,有些人(或字母和数字)独自一人回家与他们的10只猫度过永恒。 这不是最短的代码竞赛。能够以最少的平均猜测数量解决随机匹配问题的人将是获胜者。聪明的游戏玩法和计算速度也可能是因素。我假设平均转数几乎肯定会大于10,因此您赢得100万美元奖金(大概是由MTV而非我支付)的几率很小。只是怎么不可能是它的演员赢得大奖? 注意:不一定需要将其放入{A1,B2,...}格式。我只是在问题中使用了该表格,以使其完全清楚其谜题是什么。如果您不采用这种形式,请说明如何调用。 祝好运!

3
查找最短的括号编号
括号号提供了一种仅使用左括号,空格和右括号([ ])表示大整数的简单方法。 括号号定义为一串或多对匹配的括号,[...]称为块,每串与它的邻居之间用零个或多个空格隔开。 每个块之间的空格数定义了它们之间的超操作。没有空格表示加法,1个空格表示乘法,2个空格表示乘幂,3个空格表示四次运算,依此类推。高阶超算术具有较高的优先级,因此四度运算发生在指数运算之前,指数运算发生在乘法运算之前,等等。它们也是右向关联的,因此a^b^c计算为a^(b^c)。(但a^b*c仍然是(a^b)*c。) 每个块可以为空([]),也可以包含另一个括号。空块的值为0。非空块的值为所包含的括号号加1。 实施例:(^^是迭代幂次,^^^是pentation) [[]]具有值1,因为它是0([])加1 [[[]]]的值为2,但是[[]][[]]因为两个([[]])相加,所以也是如此 [[[]]] [[[[]]] [[[[]]]]][[[]]] 值20 =(2 *(((2 ^ 3)+1))+ 2 [[[]]] [[[[]]]] 具有值65536 = 2 ^^^ 3 = 2 ^^(2 ^^ 2)= 2 ^^ 4 == 2 ^(2 ^(2 ^ 2)) [[[[]]]] [[[]]] [[]] 具有值7625597484987 = 3 ^^^(2 ^^^ 1)= 3 ^^^ 2 …

10
如何减慢酒鬼回家的速度
考虑一个看起来像这样的正方形乘n的网格图。 重要的是要注意此图是11 x 11。 在任何给定的点,一个人站在一个十字路口,他一次只能垂直或水平移动一步到下一个十字路口。可悲的是他喝得太多了,所以他从最多4个可能的方向(上,下,左,右)中随机选择方向。最多可以达到4个,就好像他站在墙上时,他只有3个选项,而在角落里,他只有2个选项。 他从左下角开始,目标是回家,即右上角。时间只是他采取的步骤数。 但是,您是一个恶意的对手,希望他尽可能慢地回家。您可以在走动过程中随时删除图形中的任意数量的边。唯一的限制是,您必须始终为他留下回家的某种方式,并且不能删除他已经使用过的边缘。 面临的挑战是设计一个尽可能恶意的对手,然后使用一个随机的醉酒步行者在100 x 100 20 x 20的图形上对其进行测试。您的分数只是随机步行者回家10 000次以上所花费的平均时间。 您可以使用任何喜欢的语言和库,只要它们在Linux中免费可用并易于安装即可。 我需要执行什么? 您应该为随机游走者和对手实施代码,并且应该对代码进行组合,以使运行时的输出只是使用您的对手代码进行1000次运行的平均值。随机沃克代码应该非常简单,因为他只需从(x-1,y),(x + 1,y),(x,y-1)和(x,y + 1)中进行选择即可这些都没有被删除或超出范围。 对手的代码当然要困难得多,还需要记住酒鬼已经走过的边缘,因此他不会尝试删除其中的任何一条,并确保酒鬼还有回家的路,这有点棘手快做。 附录 10的跑位还不够,但是我不想惩罚那些设法长途跋涉的人。由于受欢迎的要求,我现在将其增加到1000。但是,如果步行时间太长,您将无法在现实的时间内进行1000次跑步,请仅报告您可以跑步的最大次数。 高分表100 x 100。 优化程序976124.754。 彼得·泰勒(Peter Taylor)的103000363.218。 编辑1.将图形大小更改为20 x 20,以帮助人们进行测试。当人们提交分数时,我将为该大小做出新的高分。 高分表20比20。 230,794.38 (100k runs) by justhalf 227,934 by Sparr 213,000 (approx) by Peter Taylor 199,094.3 by stokastic …

5
RadioASCII元素:在缓慢丢失字符的同时输出元素周期表的元素
这是周期表中118个(当前)元素的列表(为了方便起见,在折叠的堆栈代码段中): 显示代码段 Hydrogen Helium Lithium Beryllium Boron Carbon Nitrogen Oxygen Fluorine Neon Sodium Magnesium Aluminium Silicon Phosphorus Sulfur Chlorine Argon Potassium Calcium Scandium Titanium Vanadium Chromium Manganese Iron Cobalt Nickel Copper Zinc Gallium Germanium Arsenic Selenium Bromine Krypton Rubidium Strontium Yttrium Zirconium Niobium Molybdenum Technetium Ruthenium Rhodium Palladium Silver Cadmium …

8
随机奎因
编写一个能够随机生成自身的程序。 它必须基于其源代码中使用的令牌来执行此操作。如果您的程序的源代码由50个唯一令牌组成,并且长度为60个令牌,则程序应输出60个令牌,其中每个令牌都是从50个唯一令牌中随机选择的。 例如,此程序将有50/60的机会复制自己。 什么是代币?这取决于语言。例如,在大多数语言中,标识符(foo_bar),关键字(while)和数字(42)将被视为标记。在大多数语言中,空格都不起作用。 附加规则: 输出只能包含在程序源代码中找到的标记,并由适当的定界符分隔 输出必须与程序的源代码具有相同的长度,并以令牌计数 只能使用一种编程语言 源代码必须至少具有3个唯一令牌 从源代码中排除注释 程序应该只有一个U ^ L机会重现自己 计分:获胜的机会最大。

13
换位,素数,我的天哪!
任务很简单:您的程序读取一个整数作为输入,并输出它是否为质数。您可以打印“是/否”,“是/否”或明确标识结果的任何内容。 挑战在于,代码必须将其行和列进行转置。 为了排除明显的解决方案(最短的“简单”解决方案使用注释垂直逐个字符重复地进行注释),该度量与通常的代码高尔夫有点不同: 因为格式化在此挑战中非常重要,所以代码大小是在代码适合的最小矩形区域中度量的。换句话说,空格确实很重要,并且行的长度应相等(您不要为简单起见,在发布解决方案时必须实际执行此操作)。例如 int main() { return 0; } 的大小为4 * 13 = 52 (显然,它不符合以下两个条件之一:素数检测和可转位。) 最小尺寸获胜。 您可以使用任何语言和任何库函数,除非该函数的唯一目的是查找,生成或检测素数。 编辑: 虽然获胜者可能是Golfscript解决方案,但我将奖励50分以奖励最佳的C或C ++解决方案!

2
以语言名称为输入并输出以输入语言实现的相同内容的Quine
从奎因中心: 编写一个将语言名称作为输入并输出与输入语言相同的东西的输入框。 原始文章中有一些您可以使用的内容,但是正如作者所说,这要困难得多。显然,您只需要支持有限的几种语言即可。尽管是您的选择,还有基本语言。 作为代码挑战,您的分数将是程序支持的语言数量;越高越好。

3
弥合差距
给定具有白色背景和一组黑点的黑白图像,将一组白色像素绘制为红色,以便每对黑色像素之间都有一条路径。 细节 路径是一组连接的像素(8邻域连通性)。黑色像素可以用作路径的一部分。目标是在上述条件下尽量减少红色像素的集合,并输出相应的图像。 你不必须找到最佳的解决方案。 一个平凡而又最糟糕的解决方案就是将所有白色像素都涂成红色。 示例(为可视性将像素放大): 细节 给定一个像素图像(采用任何合适的格式),则返回另一个图像,该图像具有如上所述连接的点以及一个整数,该整数指示使用了多少个红色像素。 分数是14个测试用例的每一个的乘积((1 +红色像素的数量))。 目标是得分最低。 测试用例 14个测试用例如下所示。可以在此处找到用于验证输出连接性的python程序。 元 感谢@ Veskah,@ Fatalize,@ wizzwizz4和@trichoplax的各种建议。

11
源排列
集合S = { s 1,s 2,… ,s n }的置换是一个双射函数π :S → S。例如,如果小号= { 1 ,2 ,3 ,4 }那么函数小号= { s1个,秒2,… ,sñ}小号={s1个,s2,…,sñ}S = \{s_1, s_2, \dotsc, s_n\}π:S→ Sπ:小号→小号\pi: S \to S小号= { 1 ,2 ,3 ,4 }小号={1个,2,3,4}S = \{1,2,3,4\}π:x↦1+(x+1mod4)π:x↦1+(x+1mod4)\pi: x \mapsto 1 + (x + 1 \mod 4)是一个置换: π(1)=3,π(2)=4,π(3)=1,π(4)=2π(1个)=3,π(2)=4,π(3)=1个,π(4)=2 \pi(1) = …

6
编码高尔夫最佳排列
挑战 给定整数n≥4,输出整数[0,n-1]的排列,其属性是没有两个连续的整数彼此相邻。排列的值pi是abs(pi[i] - i)所有索引的总和i。 例子 (1, 3, 0, 2) 有价值 6 (0, 2, 4, 1, 3) 有价值 6 (0, 2, 4, 1, 3, 5) 有价值 6 (0, 2, 4, 1, 5, 3, 6) 有价值 8 答案分数 答案的分数是排列值的总和n = 4 .. 14加上代码占用的字节数。分数越低越好。您的代码必须为的所有这些值提供有效的输出n。 您必须能够在计算机上运行提交以完成操作。 如果是平局,则导致相关分数的最后编辑时间将作为决定者。 这不是因为同样的问题这一个? 链接的问题的答案对于该问题没有竞争力,因为它们不努力优化排列的值。例如n=10,[1, 3, 5, 7, 9, 0, …

8
混乱的重排
您的任务是编写一个计算机程序,以便将其切成几行(用换行符分隔)时,行的每种排列将输出1到n之间的不同数字!(其中n是总行数)。两种不同的布置均不得输出数字,并且每种布置均应在此范围内输出数字。既然有n!排列程序行的方式,这意味着每个数字应通过一次重新排列输出。 例如python程序 print 1;""" print 2;""" 有两种安排 print 1;""" print 2;""" 和 print 2;""" print 1;""" 第一输出1和第二输出2。 您可以使用所使用语言的标准输出格式。您可能不会假设任何样板。我认为,如果您必须解决语言所坚持的任何格式,那么这一挑战将变得更加有趣。 计分 您的分数将是程序中的行数,分数越高越好。如果愿意,您可以选择输出0到n!-1之间的数字。

11
案例匹配查找替换
以三个输入,文本串T; 一串要替换的字符F;以及用替换它们的字符串R。对于每个T具有相同(不区分大小写)字符的子字符串F,请将其替换为中的字符R。但是,请保持与原始文本相同的大小写。 如果输入的字符R多于个F,则多余的字符应与输入的大小写相同R。如果其中包含数字或符号F,则其中的相应字符R应保持其大小写R。F不一定会出现在中T。 您可以假设所有文本都在可打印的ASCII范围内。 例子 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

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.