Questions tagged «code-golf»

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

2
划分为增加的子序列
规格 这个挑战很容易说明:您的输入是一个非负整数的非空数组,您的任务是将其划分为尽可能少的递增子序列。更正式地讲,如果输入数组是A,则输出是一个数组数组B,使得: 每个阵列B形成A不相交(不一定是连续的)子序列的分区。在归纳法上,这意味着要么B是包含的单例数组,要么是的A第一个元素B是的子序列,A其余部分形成的分区,A并且删除了该子序列。 B(不一定严格)增加每个数组。 中的数组数量B最少。 输入和输出都可以采用您语言的本机数组格式。请注意,可能有几个正确的输出。 例 考虑输入数组A = [1,2,1,2,5,4,7,1]。一种可能的输出是B = [[1],[1,2,4,7],[1,2,5]]。从此图可以明显看出分区条件: A 1 2 1 2 5 4 7 1 B[0] 1 B[1] 1 2 4 7 B[2] 1 2 5 同样,每个数组都在B增加。最后,A由于不能分为两个递增的子序列,因此的长度B也很短。因此,这是有效的输出。 规则和计分 您可以编写函数或完整程序。最低字节数获胜,并且不允许出现标准漏洞。没有时间限制,但是您应该在提交所有测试用例之前对解决方案进行评估。 测试用例 仅显示一个可能的输出,但可能有多个有效选项。特别地,结果中数组的顺序无关紧要(但每个单独的数组应按递增顺序排列)。 [0] -> [[0]] [3,5,8] -> [[3,5,8]] [2,2,2,2] -> [[2,2,2,2]] [1154,1012,976,845] -> [[845],[976],[1012],[1154]] [6,32,1,2,34,8] …

3
掷骰子
掷骰子 因此,前一段时间我在掷骰子,想到了一个挑战。 给定具有从输入中取出的网和移动列表的多维数据集,请在末尾的底部找到正方形。 我将在此处的示例中使用此图像。 输入值 您输入一个带有动作列表的字符串。该字符串仅包含大写ASCII字母N,S,W和E。这对应于将多维数据集向该方向滚动一步。 在图片中,一个N将使底面变成6。在此图片中,North远离相机,South朝向相机,East右侧,West左侧。 您还可以采用以下格式的字符串:1P 2P 3P 4P 5P 6P,其中每个P是N,S,W,E,T和B中的一个位置。T&B是底部和顶部。 数字是带有该数字的面部,字母代表面部所在的位置。如果不清楚,网将始终按该编号排序,因此1P 2P 3P 4P 5P 6P,而不是2B 1T 3N 4S 5W 6E。 图像中的位置是1S 2B 3E 4W 5T 6N。 输出量 您的程序应输出一个代表底部的数字。 测试用例 (nothing), 1S 2B 3E 4W 5T 6N -> 2 N, 1S 2B 3E 4W 5T 6N -> …

1
当子弹相撞
这项挑战是基于我不久前在一本书中读到的一个谜语,我在这里再次发现了这个谜语。这是关于每秒以不同速度从枪上发射的子弹永远沿直线传播。当一颗子弹击中另一颗子弹时,两者都被完全摧毁。(可以将所有“子弹”实例替换为“导弹”。) 任务 给定子弹速度的发射顺序列表,确定是否销毁了所有子弹。 规则 输入是一列非负整数,由任何定界符分隔,并在其前后带有一个可选字符。这些是有效的输入:1 2 3 4 5 6和[1,2,3,4,5,6]。程序员做出选择。 如果至少一颗子弹可以永远存活,则输出真实值,否则输出虚假值。 子弹速度以每秒单位给出。 项目符号同时且连续地移动。 项目符号可能会在小数偏移处发生碰撞。 同时到达精确相同位置的多个子弹(无论是与原点的偏移量是整数偏移还是分数偏移)都相互碰撞。 例子 在这些图中,G表示枪,>子弹,*是子弹碰撞和爆炸的时间。 特鲁西 输入: 0 0123456789 Time 0 G> 1 G> 2 G> ... 输出: 1 输入: 0 0 0 0123456789 Time 0 G> 1 G* 2 G> 3 G> 4 G> ... 输出: 1 …

1
我喜欢移动它
朱利安国王需要穿越丛林,但他感到很懒。他希望计算机能够为他计算出穿越丛林的路线。 使用STDIN获取丛林图,以便计算机破解。它将采用以下格式: 01001E 010110 000P00 1100J1 S00111 丛林地图的工作方式是: 0 朱利安可以前进的基础。 1 是密不可通的丛林。 P 是一个有捕食者的区域,您必须不惜一切代价避免。 J是比较厚的丛林。朱利安的奴才可以在劳累之前突破其中之一。 S是朱利安的起点。它可以在地图上的任何地方。 E朱利安想去的地方;路径的尽头。就像任何其他图块一样,它也可以位于地图上的任何位置。 每个角色都是地图上的一块瓷砖。换行符指示新的图块行。如果使用您的语言的STDIN不支持换行符,则必须用空格替换换行符以表示新行。 要在图块之间移动,必须使用STDOUT输出包含以下特殊字符的字符串: F -转发 B -向后 L -向左旋转朱利安(逆时针旋转90度) R -向右旋转朱利安(顺时针旋转90度) M-奴才J从朱利安(Julian)处摧毁一块瓷砖,如果有M一块(如果清除了瓷砖,您仍然必须移动到该瓷砖上) 可能的输出为: RFFLFRFMFLFRFLFF 解决了上面的地图。 笔记: 如果您的程序输出的解决方案会打击掠食者,请结束游戏。 如果碰到了无法逾越的丛林,您会以相同的方式弹回到茂密的丛林之前的位置。(走向丛林) 朱利安开始朝上。(^那样^) 输出不一定是最快的解决方案,FFF并且FBFBFBFBFBFFF相同。但是,输出最快的解决方案可获得-10%的字节数奖励。 如果地图无效,则STDOUT'无效地图'。(这包括地图是否无法解决) 地图不能有不同长度的行或列;使其无效。 您的答案应遵循以下格式: #Language name, *n* bytes code Explanation (optional) 这是code-golf,因此以字节为单位的最短代码获胜。
16 code-golf 

6
在除数关系中找到最大匹配
您会得到一组正整数。您必须将它们成对布置,以便: 每对包含2个数字,其中一个是另一个的倍数。例如,8是4的倍数,而9是9的倍数。 如果在初始集中多次出现相同的数字,则可以成对使用多次。一个数字甚至可以与另一个相同数字出现 获得最大可能的对数。 输出必须是对数。最短的代码获胜。 样本数据 2,3,4,8,9,18 -> 3 7,14,28,42,56 -> 2 7,1,9,9,4,9,9,1,3,9,8,5 -> 6 8,88,888,8888,88888,888888 -> 3 2,6,7,17,16,35,15,9,83,7 -> 2

5
看不到钥匙的森林
以任何合理的方便格式(例如4, 0, -1, -6, 2或)编写一个以非空整数列表形式接受的程序或函数[4 0 -1 -6 2]。 打印或返回一个将列表描述为ASCII艺术林的字符串,其中每个数字都变成成比例高度的树。每棵树在输出中占据四列文本,如下所示: 一个正整数N成为一棵树,其底为__|_,top为 ^ , / \介于两者之间。 例如,当N = 1时,树是 ^ / \ __|_ 当N = 2时,树是 ^ / \ / \ __|_ 当N = 3时,树是 ^ / \ / \ / \ __|_ 等等。 负整数N就像相应的正树一样,只不过在分支斜杠之间有一个竖线而不是空格。 例如,当N = -1时,树为 ^ /|\ __|_ …

4
钟针Syzygy
(非常感谢El'endia Starman和Sp3000帮助我为此设计了测试用例!) 给定一个正整数n和一个多个时钟指针(以秒为单位)的正整数旋转周期的列表,输出最小的正整数x,其中x在启动时钟后的秒数中,所有n指针都对齐,并且指针的确切位置对齐。它们不必在起始位置对齐-任何位置都可以,只要x是整数且最小即可。此外,并非所有的手都必须在同一位置对齐-对于n=4,将2组2只手对齐的解决方案是有效的。组的大小必须为2或更大-两个不对齐的手不会构成2个1对齐的手的组,因此不是有效的解决方案。 您可能会假设仅n给出在整数秒后可能会完全对齐的2, [3,3,3]输入- 不是有效的输入,因为在任何秒数后,所有三只手都将对齐,因此这是不可能的精确地对齐2。 例子: 2, [3,4] -> 12 (the only option is a multiple of 12, so we pick 12 - 4 and 3 full rotations, respectively) 3, [3,5,6,9,29] -> 18 (picking 3, 6, and 9, the hands would align after 6, 3, and 2 rotations, respectively) …
16 code-golf  math 

7
打印Pentomino矩形
编写一个程序或函数,该程序或函数不输入任何内容,但打印或返回由12种不同的Penminominos组成的矩形的恒定文本描述: 矩形可以具有任意尺寸,并且在任何方向上都可以,但是所有12个戊糖都必须精确使用一次,因此其面积为60。每个不同的戊糖都必须由不同的可打印ASCII字符组成(您不必使用上面的字母)。 例如,如果您选择输出此20×3 pentomino矩形解决方案: 程序的输出可能如下所示: 00.@@@ccccF111//=--- 0...@@c))FFF1//8===- 00.ttttt)))F1/8888=- 另外,您可能会发现更容易打高尔夫球这种6×10的解决方案: 000111 203331 203431 22 444 2 46 57 666 57769! 58779! 58899! 5889!! 任何矩形解决方案都可以,您的程序只需打印一个即可。(输出中的尾随换行符就可以了。) 这个出色的网站提供了各种矩形尺寸的解决方案,值得您浏览以确保解决方案尽可能简短。这是代码高尔夫球,最短的答案以字节为单位。

6
多次查询
您的任务是执行以下操作的make程序: 你应该拿号码。(可以输入正,负,分数) 如果它是负数,则反转奎纳。并否定该数字(变为正数) 然后,重复<输入数字的整数部分>次并从源程序中首先打印<地板(输入数字的分数部分*长度)>。如果是整数,则小数部分为零。 如果您的程序不是回文,则可获-10%的奖金。 例 如果您的程序是“ ABCDEFG”,则 1。 5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFG 说明 ABCDEFG五次 2。 -2 GFEDCBAGFEDCBA 说明 GFEDCBA(反向ABCDEFG)2次 3。 7.5 ABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABCDEFGABC 说明 ABCDEFG 7次,然后是ABC(ABCDEFG上的前3个字母(底数(0.5 * 7)=底数(3.5)= 3)) 4。 -0.3 GF 说明 GFEDCBA(反向ABCDEFG)0次,然后是GF(GFEDCBA(反向ABCDEFG)上的前2个(底(0.3 * 7)=底(2.1)= 2)字母) 5, 0 <empty> 说明: <empty>在这里意味着您的程序不输出。ABCDEFG零次被定义为空字符串。
16 code-golf  quine 

4
使美国(n个地图)再次伟大
新奖金!(见下文) 美国共和党总统候选人本·卡森(Ben Carson)的制图小组的地图遇到了一些麻烦(图片来自《华盛顿邮报》): 问题在于他们没有适用于Job™的正确工具。他们需要最紧凑,最可靠的程序,因此不必担心再次制作地图。这就是他们雇用您的原因。您需要拍摄此地图,然后以所需的颜色再次输出它: 通过Theshibboleth [GFDL(http://www.gnu.org/copyleft/fdl.html)或CC-BY-SA-3.0(http://creativecommons.org/licenses/by-sa/3.0/)],通过维基共享资源 如果您不知道所有州的位置(因为您不是美国人...或者您是美国人),那么下面是一张包含所有名称的地图(此挑战不需要华盛顿特区): “带有州名2的美国地图”。通过Wikimedia Commons在CC BY-SA 3.0下获得许可-https://commons.wikimedia.org/wiki/File:Map_of_USA_with_state_names_2.svg#/media/File: Map_of_USA_with_state_names_2.svg 例如,如果输入为Ohio, Indiana, Illinois;New York, New Jersey, Florida,则输出: 空白地图图像有SVG和PNG格式。为方便起见,以下是按字母顺序排列的所有50个州的列表 这是代码高尔夫球和图形输出的挑战。输出必须为SVG或图像文件。仅在屏幕上显示输出是不够的。输入必须来自STDIN或读取文本文件。我对如何设置输入的格式很灵活,尽管它应该包含每个州的全名,但红色(共和党)州名列第一,蓝色(民主)州名列第二。可以接受红色和蓝色的任意两种不同的阴影。当然,您可以使用所需的任何文件名将空白地图图像与程序放在同一文件夹中。 准确性标准 如果您的输出是栅格文件,则其大小必须至少为800px x 495px,并且这些行不应偏离将SVG缩放到相同大小超过1.5像素的结果。如果您的输出是矢量文件,则当两行都缩放到800px x 495px时,行与SVG的偏差不应超过1.5个像素。 奖金! Ben试图减少对外国图书馆的依赖,现在向只使用地图的光栅图形版本作为输入并创建自己的区域检测算法的人提供-50%的奖励。最终,由我的判断决定您的方法是否算作“编写自己的”算法。 祝好运!

4
您可以在《三人莫里斯》中再赢两步吗?
赏金 第一名(获奖) 我将为第一个有效答案投入50个报告 2号(获奖) 我将再提供100个最短有效答案。 第3名(开放提交) 我将为第一个报告贡献200个报告,并给出一个有效的简短答案。有效值最多为当前最短答案的45%(564字节x 0.45 = 最大254字节)。 游戏 您还记得经典游戏“ 九个人的莫里斯 ”还是简单的“ 磨坊 ”?有一个变种,叫做“ 三人莫里斯”,有点像易变的井字游戏。 规则 这是游戏的空白板: a b c 1 [ ]–[ ]–[ ] | \ | / | 2 [ ]–[ ]–[ ] | / | \ | 3 [ ]–[ ]–[ ] [ ]是一个字段,|–/\代表这些字段之间的路由。 该游戏由两个玩家扮演1和2谁每个地方的板3个令牌。这实际上已经发生了,我们已经参与其中。如果一个玩家可以形成一个游戏,则该游戏获胜。mill,即该玩家的3个令牌的垂直或水平行,则。 …

1
谁在第十九个字节中拥有最多的星星?
注意:此挑战涉及通过HTML网页下载和筛选。如果您的语言无法解决此问题,则您可能不想参加此挑战。 介绍 在第十九字节聊天室中总是有关于谁领导右舷的讨论。因此,让我们帮助所有人,并计算聊天中每个用户的星星总数。 挑战 给定一个N大于零的正整数,请计算N聊天中最后加星标的消息的右舷首长。这些消息可以在这里查看。提示:每页有50条加星标的消息。输出将按已加星标的邮件数量列出前5位用户。的奖金-15%关闭您的字节数将被授予如果你能显示这些用户的用户名,但没有就给予惩罚,如果你简单地显示用户ID编号。请注意,某些已加星标的邮件中有亵渎行为。如果您对这种类型的语言敏感,请谨慎浏览页面。 示例(图片是撰写此挑战时的当前右舷): (红色)输入:5输出(附赠):[Geobits Sp3000 PhiNotPi Seadrus] (蓝色)输入:10输出(无奖金):[51024 17335 24697 116494 129255] (绿色)输入:14输出(无奖金):[51024 116494 141697 17335 24697] 多余的东西: 前5名的领带将按用户ID编号从低到高排序。如果少于五个用户,则仅输出排行榜,最后排空。输入和输出可以是任何格式。输出不需要大写。如果输入大于50,则仍必须计算第2页,第3页等上的消息。您可以假设输入将始终在之下2^31,并且也不会太大,以至于1)大于已加星标的消息的数量2)不会使程序崩溃(通过使数组变大,内存不足等)。 这是代码高尔夫球,以字节为单位的最短代码胜出! 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为了确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> 96 bytes 如果您想在标头中包含多个数字(例如,因为您的分数是两个文件的总和,或者您想单独列出解释器标志罚分),请确保实际分数是标头中的最后一个数字: ## Perl, 43 + 2 (-p flag) = 45 bytes 您还可以将语言名称设置为链接,然后该链接将显示在页首横幅代码段中: …

3
和谐的“融合”
交变调和级数是一个著名的收敛级数。 “很明显”,很明显它收敛到2的自然对数。或者是吗? 由于该系列不是绝对收敛的,只需简单地重新排列术语,我就可以使其接近我想要的任何形式。假设我希望级数收敛到e。我所要做的就是: 如果您不了解这一模式,那么没有一个显而易见的模式。运作方式如下: 从正项和负项考虑交变谐波序列的项。 正好相加就足以超过我们的目标(e)。(又名sum > target) 减去下一个负项。 回到2。 请注意,在步骤2中,如果是我们的sum == target,则应添加另一个正项。 由此我们可以定义一个与每个数字关联的序列,如下所示: 遵循上述算法 对于每个正项,输出1。 对于每个负项,输出0。 我们将此序列称为数字的“和谐位模式”。例如,e的HBP开始于: 1, 1, 1, 1, <32 times>, 0, 1, 1, <54 times>, 0, 1, 1, ... 您的挑战: 您将获得: [-10,10]范围内的合理输入目标(请注意:即使通过谐波序列达到10,也需要数百万个项)。这可以是小数(aka 1.1),也可以直接采用有理数(aka 12/100) 一个正的int n输入,指定要输出的和谐位模式的项数。 您应该将目标的确切和谐比特模式输出到指定数量的术语。您可以输出以空格分隔的值,逗号分隔,不分隔等。只要0和1的模式清晰可见,并以一致的间隔从左到右读取。 测试用例 >>> 0, 1 1 >>> 0, 2 10 …

3
用正整数解决小于不等式
编写一个程序或函数,该程序或函数包含使用小于运算符()的非空数学不等式列表<。列表中的每一行都具有以下形式: [variable] < [variable] 其中a [variable]可以是任何小写az字符的非空字符串。与普通数学和编程一样,具有相同名称的变量是相同的。 如果可以为每个变量分配一个正整数,以便满足所有不等式,则可以打印或返回带有此类分配的变量列表。此列表中的每一行都应具有以下形式: [variable] = [positive integer] 并且所有变量必须以任何顺序恰好出现一次。 请注意,对于不等式集合可能有许多可能的正整数解。其中任何一个都是有效输出。 如果不解决不平等问题,则不输出任何内容或输出虚假值(由您决定)。 以字节为单位的最短代码获胜。 例子 如果输入是 mouse < cat mouse < dog 那么所有这些都是有效的输出: mouse = 1 cat = 2 dog = 2 mouse = 37 cat = 194 dog = 204 mouse = 2 cat = 2000000004 dog = …
16 code-golf  math 

4
基本挑战
这项挑战的灵感来自以下Oliver Sacks的报价: “ 11岁时,我可以说'我是钠'(元素11),而现在79岁时,我是黄金。”-奥利弗·萨克斯(Oliver Sacks) 我希望您在字符串中找到数字并将其替换为相应元素的符号。(1是H,2是He,3是Li,等等。)有一些规则要遵循: 一位和两位数将正常替换为其相应的元素。忽略数字开头的0。如果数字中只有0,请忽略它。例如1 01 10 0 00变成H H Ne 0 00 超过2位数字将分成2组。奇数个数字的末尾应有额外的一位数字。例如0153 5301 153,HI IH PLi由于该规则,您只需要知道1到99之间的元素 无论数字周围有什么字符,逗号都应被视为相同,逗号和小数点都不是数字的一部分。P90X 42,800 3.14159会成为PThX Mo,Hg0 Li.SiPF 输入/输出(I / O)示例: I: 32289216 O: GeNiUS I: J08017 5811 O: JOHN CeNa I: M18227 0592tt10r O: MArTiN BUttNer I: De072816 O: DeNNiS I: D088r1907085 …

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.