Questions tagged «code-golf»

Code-golf是在最小的源代码字节中解决特定问题的竞赛。

2
甜甜圈店™
缺乏现金,您已注册为世界上最大的数字甜甜圈公司The Donut Shop™建造甜甜圈,主要是因为它们出售各种可以想象到的甜甜圈。 现在,鉴于当今的交易标准非常严格,您需要编写尽可能短的代码来创建这些甜甜圈,以便将创建它们的源代码放在数据包的外部。 挑战 在给定4个输入的情况下,外圈的半径,内圈的半径,可能的洒落以及单元格出现洒落的机会,输出覆盖在这些洒落中的甜甜圈,该甜甜圈具有正确的内半径和外半径。 输入可以按照您希望的方式(函数的自变量,stdin,程序自变量)以任意顺序获取。 每种类型的洒水将以1个字符的形式给出 ^+*-如洒输入将是4个洒列表,^,+,*,- 洒的可能性将被输入为0和1之间例如浮点值:0.1,0.23 您必须将输出打印到标准输出或等效输出。 洒在甜甜圈的边缘不能。 每种类型的洒水都必须有同等的机会出现在每个单元格上。 半径以1单元为单位给出。 如果内半径等于0或外半径,则表示甜甜圈没有环。 两个半径都是非负整数。 甜甜圈的内边缘和外边缘必须使用哈希(#)表示 给定半径和圆心是一个点是否在圆中的测试: (x-center)**2+(y-center)**2 < radius**2 输入与输出示例 (外半径,内半径,洒水,洒水几率) 10,4,“ ^ + *-”,0.1 ######### # # ## ++ * *## # # # ^^ - * # # ##### ^ # #+ # # # # …

8
发现我们失踪的人
挑战 彼得再次站起来,使我们摆脱了重复的挑战! 彼得·泰勒(Peter Taylor)死了,对此毫无疑问(好吧,除了我们有很大的疑问外,……不过不要理会)。在他的记忆中,您必须编写一个程序来确定给定用户的生命。 更多信息 如果用户不被看到超过一天,则该用户将死亡,或少于一天,则该用户还活着。检查在这里找到的最后看到的部分: 输入将是一个用户ID(例如,我的ID是30525,而Peter Taylor的是194)。假设所有输入都是有效的PPCG ID。 如果用户还活着,则应输出: [User name] is alive! 在您用[User name]代替用户名而不是用户ID的地方。 如果用户已死,则应输出: Sadly, [User name] is dead. 不允许使用SE Data Explorer的 T-SQL参赛者。 获奖 以字节为单位的最短程序获胜。 排行榜 var QUESTION_ID=59763;OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var o in …

14
“ Hello world”创建了一个不同的“ Hello world”程序
创建一个程序,该程序输出一个hello world字符串(“ Hello world”,“ Hello,World”等)和源代码。输出被写入标准输出或等效输出。Hello world字符串嵌入在源代码中。 例如,的输出可能是 (some source code here)hello world(some source code here) 再次编译或解释输出时,它应该创建类似的输出,但是hello world字符串必须具有不同的标点符号或大写字母。例如,上一个示例可以创建以下输出 (some source code here)hello, wORld(some source code here) 这些示例中的每个“(此处有一些源代码)”可以在每次执行后更改,也可以相同。 您的输出必须只包含一次有效的hello world字符串。它可能包含任意数量的无效的hello world字符串。源代码可以包含任意数量的注释,并且hello world字符串可以嵌入注释中。第一个程序可以有零个或一个有效的hello world字符串,但不能再有。 以下标点符号有效: hello, world hello world helloworld 任何大写字母都可以接受。例如,以下是有效的hello world字符串: Hello, world hellO WORld HELLoworlD 这些字符串无效: Hello world Hello(newline)world Hello,world Hello, …

13
是时候调整一些价格了!
我确定您知道$ 9.99美元的价格方案,而不是使用$ 10美元。好吧,在您担任大型零售商店的系统管理员的新工作中,他们希望价格遵循类似的方案: 所有价格均为美元,不含美分。 所有价格应以5或9结尾,四舍五入到最接近的值,但如果最后一位在5到9之间,则四舍五入。(适用于最后一位2和7) 最低的输入是$ 1,最低的输出价格应该是$ 5。 您的输入是一个整数列表: 12 8 41 27 144 99 3 并且输出应列出新价格。在上述情况下: 15 9 39 29 145 99 5
19 code-golf  number 

6
+!()[]脚本中的斐波那契
编写一段JavaScript代码,然后alert按顺序调用包含前50个斐波那契数字的数组。您只能使用以下字符:+!()[]。 作为参考,您的代码必须在功能上等于以下内容: var fib = [], a = 1, b = 1; for (var _ = 0; _ < 50; _++) { fib.push(a); var t = a; a = b; b = t + a; } alert(fib); 您可能不会假设网页上有任何内容-您的程序将在上的控制台中运行about:blank。同样,您也不能“欺骗”并将任何设置存储在Cookie,设置或其他数据中。您的解决方案必须可以在任何操作系统上全新安装最新的Google Chrome 或 Firefox时使用。如有疑问,请尽量保持便携性。 以字节为单位的最小源代码获胜。

8
Lisp提取任务
在Lisp样式语言中,列表通常是这样定义的: (list 1 2 3) 出于此挑战的目的,所有列表将仅包含正整数或其他列表。我们还将list在开始时省略关键字,因此列表现在如下所示: (1 2 3) 我们可以使用来获取列表的第一个元素car。例如: (car (1 2 3)) ==> 1 我们可以得到原始列表,其中第一个元素被删除cdr: (cdr (1 2 3)) ==> (2 3) 重要说明:cdr即使该列表只有一个元素,也将始终返回一个列表: (cdr (1 2)) ==> (2) (car (cdr (1 2))) ==> 2 列表也可以在其他列表中: (cdr (1 2 3 (4 5 6))) ==> (2 3 (4 5 6)) …

7
移至可打印的ASCII前端
背景 所述移动至前的变换(MTF)是一种数据编码算法旨在提高熵编码技术的性能。 在bzip2压缩算法中,它是在Burrows-Wheeler变换(如Burrows,Wheeler和Back所示)之后应用的,目的是将重复的字符组转换为小的,易于压缩的非负整数。 定义 为了解决这一挑战,我们将定义MTF的可打印ASCII版本,如下所示: 给定输入字符串s,取空数组r,所有可打印ASCII字符(0x20至0x7E)的字符串d,并对s的每个字符c重复以下操作: 追加的索引Ç在d到ř。 将c移到d的前面,即,从d移走c并将它放在其余的前面。 最后,我们将r的元素作为原始 d中的索引,并获取相应的字符。 分步示例 INPUT: "CODEGOLF" 0. s = "CODEGOLF" d = " !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [] 1. s = "ODEGOLF" d = "C !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35] 2. s = "DEGOLF" d = "OC !\"#$%&'()*+,-./0123456789:;<=>?@ABDEFGHIJKLMNPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~" r = [35 47] 3. s = …

6
碗里装满水
您应该编写一个程序或函数,该程序或函数接收一个碗的容积和其中的水作为输入,然后输出或返回一个带有所需容积的碗的ASCII表示形式。 碗具有以下结构: \ / \___/ 碗至少有一个_字符。的计数\的和/的,也正和他们是平等的对称因。 碗的容积的总数量_和space所述字符之间\的和/的加一,每对\和/。这表示上述碗的容量为10: \ / => xxxxx x (the last one is for the \/ pair) \___/ xxx x (the last one is for the \/ pair) 请注意,两个不同的碗可能具有相同的体积。例如,以下两个碗的容积均为18: \ / \ / \ / \___/ \_______/ 我们可以往碗里倒些水。水被表示为一行~字符,而不是碗中的空格。最下面一行没有空格,因此不能包含~。这意味着我们的示例只能以一种方式充满水: \~~~~~/ \___/ 其他碗可以通过多种方式填充: \~~~~~/ \ / \ / \~~~/ …

26
计算标准偏差
挑战 给定一个数字列表,计算该列表的总体标准差。 使用以下公式计算总体标准偏差: 输入项 输入将以任何格式(列表,字符串等)显示整数列表。一些例子: 56,54,89,87 67,54,86,67 数字将始终是整数。 输入将输入到STDIN或函数参数。 输出量 输出必须是浮点数。 规则 您可以使用内置函数来查找标准偏差。 您的答案可以是完整程序或功能。 例子 10035, 436844, 42463, 44774 => 175656.78441352615 45,67,32,98,11,3 => 32.530327730015607 1,1,1,1,1,1 => 0.0 获奖 以最短的程序或函数为准。 排行榜 显示代码段 var QUESTION_ID=60901,OVERRIDE_USER=30525;function answersUrl(e){return"http://api.stackexchange.com/2.2/questions/"+QUESTION_ID+"/answers?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+ANSWER_FILTER}function commentUrl(e,s){return"http://api.stackexchange.com/2.2/answers/"+s.join(";")+"/comments?page="+e+"&pagesize=100&order=desc&sort=creation&site=codegolf&filter="+COMMENT_FILTER}function getAnswers(){jQuery.ajax({url:answersUrl(answer_page++),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){answers.push.apply(answers,e.items),answers_hash=[],answer_ids=[],e.items.forEach(function(e){e.comments=[];var s=+e.share_link.match(/\d+/);answer_ids.push(s),answers_hash[s]=e}),e.has_more||(more_answers=!1),comment_page=1,getComments()}})}function getComments(){jQuery.ajax({url:commentUrl(comment_page++,answer_ids),method:"get",dataType:"jsonp",crossDomain:!0,success:function(e){e.items.forEach(function(e){e.owner.user_id===OVERRIDE_USER&&answers_hash[e.post_id].comments.push(e)}),e.has_more?getComments():more_answers?getAnswers():process()}})}function getAuthorName(e){return e.owner.display_name}function process(){var e=[];answers.forEach(function(s){var r=s.body;s.comments.forEach(function(e){OVERRIDE_REG.test(e.body)&&(r="<h1>"+e.body.replace(OVERRIDE_REG,"")+"</h1>")});var a=r.match(SCORE_REG);a&&e.push({user:getAuthorName(s),size:+a[2],language:a[1],link:s.share_link})}),e.sort(function(e,s){var r=e.size,a=s.size;return r-a});var s={},r=1,a=null,n=1;e.forEach(function(e){e.size!=a&&(n=r),a=e.size,++r;var t=jQuery("#answer-template").html();t=t.replace("{{PLACE}}",n+".").replace("{{NAME}}",e.user).replace("{{LANGUAGE}}",e.language).replace("{{SIZE}}",e.size).replace("{{LINK}}",e.link),t=jQuery(t),jQuery("#answers").append(t);var o=e.language;/<a/.test(o)&&(o=jQuery(o).text()),s[o]=s[o]||{lang:e.language,user:e.user,size:e.size,link:e.link}});var t=[];for(var …

6
上升,顺序,上升
我们有严格增加的非负整数序列,例如: 12 11 10 等待!这个顺序不是严格增加的,是吗?好吧,数字写在不同的基础上。最小的底数是2,最大的底数是10。 任务是猜测每个数字的写法基础,以便: 顺序严格增加, 基数之和最大。 例如,样本的解决方案将是: 6 8 10 因为在这些基数下该序列变为8 9 10十进制-严格增加的序列,并且我们无法找到该序列仍严格增加且其总和大于的基数6+8+10。 由于第二个限制,解决方案3 5 7并不令人满意:尽管该序列5 6 7位于这些碱基的下面-我们需要最大化碱基和3+5+7 < 6+8+10。 如果毫无根据2<=b<=10,该系列可能会严格增加,例如: 102 10000 10 单 0 应该输出。 输入序列可以以最适合您的解决方案的方式传递(标准输入/命令行参数/函数参数...)。


14
辛普森多样性指数
在辛普森指数是重复项的集合的多样性的措施。这只是在随机抽取而未均匀替换的情况下抽取两个不同项目的可能性。 对于相同项目n组中的n_1, ..., n_k项目,两个不同项目的概率为 例如,如果您有3个苹果,2个香蕉和1个胡萝卜,则多样性指数为 D = 1 - (6 + 2 + 0)/30 = 0.7333 或者,不同项目的无序对的数量3*2 + 3*1 + 2*1 = 11总共为15对,并且11/15 = 0.7333。 输入: 一串字符A到Z。或者,此类字符的列表。它的长度至少为2。您可能不认为它是要排序的。 输出: 该字符串中字符的辛普森分集指数,即,随机替换产生的两个字符的概率不同。这是介于0和1之间(含0和1)的数字。 输出浮点数时,请至少显示4位数字,尽管要终止诸如1or 1.0或0.375OK之类的精确输出。 您不能使用专门计算多样性指数或熵测度的内置函数。只要您对测试用例有足够的准确性,则可以进行实际的随机抽样。 测试用例 AAABBC 0.73333 ACBABA 0.73333 WWW 0.0 CODE 1.0 PROGRAMMING 0.94545 排行榜 这是马丁·布特纳(MartinBüttner)提供的按语言排行榜。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 # Language Name, N …
19 code-golf  math 

19
整数幂
某些数字64可以用多种方式表示为整数幂: 64 ^ 1 8 ^ 2 4 ^ 3 2 ^ 6 [1,2,3,6]以尽可能少的字节输出所有可能的幂(在此为)的排序数组。 输入项 大于1且小于10000的正整数。 输出量 可以将输入表示为的整数幂p(包括1)的数组a^p用整数a。只要顺序正确,输出就可以有小数。 任何浮点问题都必须由程序处理。 例子 Input: 3 Output: [1] Input: 9 Output: [1, 2] Input: 81 Output: [1, 2, 4] Input: 729 Output: [1, 2, 3, 6] 计分板 为了使您的分数出现在黑板上,应该采用以下格式: # Language, Bytes 删除线不会引起问题。 显示代码段 function …
19 code-golf  math  number 

2
改过自新
您会得到一棵树,按照计算机科学的传统,它的根在顶部,叶在底部。叶子节点用数字标记。您的目标是获取标记的特殊叶子-1并将其向上移动为新的根。 [3, [[16], -1], [4]] --> [[[[4], 3], [16]]] 您可以想象将特殊的叶子旋转到顶部,然后让其余的树垂下来。旋转树时将树保持在平面上,以获取所有分支的正确的从左到右顺序。 新的树除的外,其余都有原始树的叶子-1。 输入: 一棵树,其叶子是不同的正整数,除了的一片叶子-1。树的根将至少有两个分支脱落。 输入以嵌套列表之类[3, [[16], -1], [[4]]]或其字符串表示形式给出。分隔符是可选的,取决于您,但是相邻的数字需要分开。 输出: 以与输入相同的格式输出或打印翻转的树。列表条目的顺序必须正确。就地修改很好。 如果您的输入/输出是一种数据类型,则默认情况下它必须是一种以所需格式打印的数据。不允许使用基本上为您执行任务的内置程序。 测试用例: >> [3, [[16], -1], [4]] [[[[4], 3], [16]]] >> [2, -1] [[2]] >> [44, -1, 12] [[12, 44]] >> [[[[-1]]], [[[[4]]]]] [[[[[[[[[4]]]]]]]]] >> [[1, 2, 3], [4, -1, 6], …

1
让我们建立一个赛车轨道!
介绍 我的外女想要赛车。她的木部分可以组合成轨道。每个零件均为正方形,并包含不同的形状。我将使用管道绘图字符进行说明: │:垂直走的路 ─:水平行驶的道路 ┌ ┐ └ ┘:转向的道路 ┼:带有地下通道的桥梁 奇怪的是,没有t型接头。 这是一个可能的赛车轨迹的示例: ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 有效赛车轨道的规则如下: 没有路可走。 它必须形成一个循环(所有部分都必须是同一循环的一部分)。 在桥梁/地下通道,您不能转弯(因此,您必须直接穿过它们)。 不幸的是,我和我的侄女所拥有的赛车履带有限。但是我们绝对希望在赛道上使用所有这些。编写一个程序,给定我们库存中有哪些零件的列表,并输出使用所有这些零件的赛车轨道。 输入说明 我们希望输入通过STDIN,命令行参数,文件读取或用户输入函数(例如raw_input或prompt)输入。输入是逗号分隔的正整数,格式为 │,─,┌,┐,└,┘,┼ 其中每个代表我们所拥有的特定件数。因此,例如输入: 1,1,1,1,1,1,1 意味着我们每个都有一个。 输出说明 使用上面列出的管道图字符输出赛车轨道。赛车轨道应准确使用输入中指定的每个零件的编号-不得多于或少于。每次输入至少会有一条有效的赛车轨迹。 输入和输出示例 输入: 3,5,2,2,2,2,1 可能的输出: ┌─┐ │ │┌─┐ │ └┼─┘ └──┘ 输入: 0,0,1,4,4,1,3 可能的输出: ┌┐ └┼┐ └┼┐ └┼┐ └┘

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.