Questions tagged «code-golf»

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

30
计算ILD的总和
输入: 一个整数 输出: 输入本身的总和+输入的长度+输入的每个数字。 nr + nr-length + {sum of digits} = output 例子: 输入:99 输出:99(nr)+ 2(nr-length)+ (9 + 9)(数字)→119 输入:123 输出:123 + 3 + (1 + 2 + 3)→132 挑战规则: 输入也可以包含负输入,这些输入经过特殊解析。的-/减号也+1为长度,并且是第一的一部分digit。 例如: 输入:-123 输出:-123 + 4 + (-1 + 2 + 3)→-115 您可以假设输入或输出都不会超出(32位)整数的范围。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此您可以使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。 …

4
九个男人的莫里斯伯爵米尔斯
介绍 九个人的莫里斯(Mills)(也称为米尔斯)是一款由两名玩家组成的棋盘游戏,在以下棋盘上进行播放(图片摘自链接的Wikipedia页): 每个玩家有9个人,黑白相间。具体规则对于此挑战并不重要,但如果您有兴趣,请查看Wikipedia页面。 挑战 给定一个网格作为输入,它表示在一定boardstate,输出的总研磨计数m用0<=m<=8。 当三个相同颜色的人在相连点的直排中时,他们就形成了磨坊。 b2到f2不是因为磨的人具有不同的颜色。另外d2,d5由于必须连接三个点,因此也不会形成磨机。 上图中的木板包含两个磨房。一个从f2到f6一个从e3到e5。 输入项 该板表示为具有24个点的2D网格,如上面的示例图像所示,这些点已连接。该示例a-g在列中使用字母,1-7在行中使用数字,但是您可以选择任何合理的输入格式,只要它将24个唯一坐标映射到以下状态之一即可: 空的 黑色拍摄 采取白色 具体的表达方式取决于您,而颜色并不限于“ b”或“ w”。 除此之外,您的输入内容可能不包含任何其他信息。 附加条款 您不必通过任何值来映射点。如果要将输入作为2D数组,也可以。但是请记住,并不是所有的点都被使用,并且您必须考虑它们之间的连接。 输入可能为空,在这种情况下,您必须输出零(空板->无磨)。 由于每个玩家有9个人,因此输入的总得分不会超过18。 您可以在输入中省去空点,因此只取取输入点。 可以以任何方式订购输入。您不能依赖特定的顺序。 您可以假设输入将始终有效。这意味着每种颜色的人不会超过9个人,并且每个点都是唯一的。 规则 明确您在解决方案中使用的输入格式。强烈建议提供示例程序运行。 允许功能或完整程序。 输入/输出的默认规则。 有标准漏洞。 这是代码高尔夫球,因此最低字节数获胜。Tiebreaker是较早提交的内容。 测试用例 这里的输入格式是一个元组列表,其中的坐标如上例中所示为第一个元素,点的状态为第二个元素。白色标记的点标记为“ w”,黑色标记的点标记为“ b”。所有其他点均被忽略,并且为空。 [(“ a4”,“ w”),(“ b2”,“ b”),(“ b4”,“ b”),(“ c4”,“ b”),(“ d1”,“ w”) ,(“ d2”,“ w”),(“ e3”,“ w”),(“ …

1
分隔我的整数
介绍 在称为拓扑的数学领域中,有一些东西称为分离公理。直观地,您有的集合X和子集的集合X,我们可以将其视为属性。如果一个人可以X根据其属性来区分所有项目,则该系统可以很好地分开。分离公理正式化了这个想法。在此挑战中,您的任务是检查给定的三个分离公理X和属性列表。 输入项 您的输入是一个integer n ≥ 2,以及一个整数列表的列表T。中的整数T来自X = [0, 1, ..., n-1]。中的列表T可能为空且未排序,但不会包含重复项。 输出量 您的输出是由三个分离公理确定的四个字符串之一,每个公理都强于最后一个。还有其他公理,但是为了简单起见,我们坚持使用这些公理。 假设对于in 中的所有unique x和,存在一个列表,其中恰好包含其中一个。然后和满足公理T0。yXTXT 假设对于所有in x和yin X,都有两个列表T,其中一个包含x但不包含y,另一个包含y但不包含x。然后X和T满足公理T1。 假设上面的两个列表也不包含公共元素。然后X和T满足公理T2。 你的输出中的一个T2,T1,T0或TS,这取决于上述条件成立(TS手段它们都不做)。请注意,T2比T1强,T1比T0强,并且您应始终输出尽可能强的公理。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 2 [] -> TS 2 [[],[1]] -> T0 2 [[0],[1]] -> T2 3 [[0],[0,1,2],[1,2]] -> TS 3 [[],[0],[0,1],[2]] -> T0 3 [[0],[0,1],[2,1],[0,1,2]] -> T0 3 …

4
分割倒数
给定一个n> 77的数字,编写一个程序或函数,以找到一组不同的正整数,使得该组的总和等于n,而该组的倒数之和等于1。 80的示例: 80 = 2 + 4 + 10 + 15 + 21 + 28⟶1/2 + 1/4 + 1/10 + 1/15 + 1/21 + 1/28 = 1 您的程序或函数必须(理论上)对n <2 32起作用,并且不能为浮点舍入错误辩解。请注意,存在所有n> 77的解。 以字节为单位的最短代码获胜。 有一个额外的奖励措施:我将奖励适用于任何n并运行log(n)的最小解决方案。对于小n,它必须快速(由我自行决定)。是的,这是可能的。

5
在JavaScript中生成字母
我敢肯定,没有更好的方法可以做到这一点,但认为提出这一要求不会有任何伤害。 我厌倦了打字a='abcdefghijklmnopqrstuvwxyz'。 很酷的语言有Range('a'..'z')或类似 尽可能简短的JS能为我们带来什么? for(i=97,a='';i<123;){a+=String.fromCharCode(i++)} 比字母还长-但可以保证我不会在某个地方搞砸。 我希望有一种讨厌的位移方法可以生成少于50个字符的az。 我搞砸了 i=97;Array(26).map(x=>String.fromChar....i++ 但是到我加入时总是更长一些,然后将array(26)拆分为可用 编辑:我已经把它归结为 [...Array(26)].reduce(a=>a+String.fromCharCode(i++),'',i=97) 60字节

18
Repdigit基础调查
甲纯位数是可以单独通过重复相同的位被写入的自然数。例如,777是repdigit,因为它仅由7重复3次的数字组成。 这不仅限于十进制(以10为底)数字,但是: 每个梅森数(格式为M n当用二进制(基数2)编写时, = 2 n -1)都是一个位数。 以一进制(基数1)写入时,每个数字都是一个小数位数。 每个数字n也可以用11基数表示为小数位n-1(例如,17以十六进制(基数16)写为11,而3以二进制数(基数2)写也)。11)。 这里的挑战是找到 输入数字可能是重复数字的其他基础。 输入项 正整数 x > 3任何方便格式的。 输出量 一个正整数b,(x-1) > b > 1其中xin 的表示形式为brepdigit。 如果不b存在,则输出0或出现错误值。 如果b存在多个,则可以输出其中任何一个或全部。 规则 该(x-1) > b > 1限制是为了防止琐碎转换到一元或“减一”基。的输出数可以写在一元或任何方便的基础,但碱本身必须不平凡的转换中的一个。 输入/输出可以通过任何合适的方法。 适用标准漏洞限制。 例子 In --> Out 11 --> 0 (or other falsey value) 23 --> 0 (or other …

4
一门小语言值得一口小口译员
这是一个非常简单的语言定义: A Variable is any string that does not contain ^, <, >, !, or ? The empty string is a valid variable identifier The value of every variable starts at 0. A Statement is one of (var is a Variable, P is a Program): var^ -> changes var to …

7
生成尺寸越来越大的程序
在这个挑战中,您将编写一个程序,该程序输出的程序是原始程序长度的两倍。输出的程序应以长度两倍的程序输出一个新程序。 例子 如果我的程序是a: < a > aa < aa > aaaa < aaaa > aaaaaaaa 规则 没有内置奎因 原始程序必须至少一个字节 该序列理论上应该无限工作 您的程序不允许读取任何内容(文件,stdio) 您的分数是原始程序的大小。

7
简单系统的静电势
在物理学中,电荷像排斥电荷一样,与电荷吸引不同。 的距离分开的两个单元之间的电荷的电势的能量d是1/d对于像费和-1/d用于不同于电荷。电荷系统的势能是所有电荷对之间的势能之和。 挑战 确定由字符串表示的单位电荷系统的势能。 这是代码高尔夫球,因此以字节为单位的最短解决方案为准。 输入项 阿非空多行字符串,仅由+,-, 和换行符,其中每行具有恒定的宽度。的+和-表示的1和-1分别收费。例如,以下字符串: + - + (以左上角为原点)表示一个系统,其正电荷为(4,0)和(1,-1),负电荷为(6,0)。 或者,您可以将输入作为行列表。 输出量 一个带符号的实数,代表收费系统的势能。输出应正确到四个有效数字或10 -4,以较小者为准。 测试用例: -- 应该输出0。没有排斥或吸引的成对电荷,并且空白不会改变任何东西。 + - 只有两项费用;它们在垂直方向上相距1个单位,在水平方向上相距2个单位,因此它们的距离为sqrt(5)。输出应为-1 / sqrt(5)= -0.447213595。 + - - + 应该给-2.001930531。 - -- -+ - - -+-++-+ +-- + +-- + ++-++ - ---++-+-+- -+- - +- -- - -++-+ --+ …

1
计算常见的生活游戏模式
此处的任务是从Golly .rle或纯文本文件(您的选择)中读取文件(提供您的文件名)(在STDIN上或作为命令行参数),并在其中编码的网格中识别和计数通用模式。 或者,您可以选择直接通过STDIN提供文件的内容。 您的程序应该至少能够识别和区分15种最常见的严格静物,5种最常见的振荡器以及滑翔机。 应该识别出这些振荡器的所有相位,以及滑翔机的所有四个相位。 它应该输出一个列表,其中包含每个图案的最终计数,并在单独的行上包含每个图案的名称和数量。您的程序可能会将所有这些模式都包含在输出列表中,或者仅将其中至少一个找到。 作为计数中的其他图案的一部分的图案不应该计数。(例如,信标的8单元阶段也不应计为两个街区,并且船舶领带也不应计为两艘船) 您可以假定输入已经稳定并且不包含上述集合中没有的任何模式。您可能还假设输入网格将适合1024x1024框。 这是代码高尔夫球,因此最短的程序为准。 RLE文件格式说明 RLE文件包含游程长度编码的生命网格。以开头的所有行#均为注释,应忽略。 第一行非空,非注释行的格式为x=<width>,y=<height>,rule=<rule>。就此任务而言,规则将始终为B3/S23。它可能包含在处理该行之前应删除的空格(当然,根本不需要处理此行。) 第一行之后的非注释行应视为单个字符串。该名称只能由十进制数字,字符$,,b和o和换行符组成,并且不能以数字结尾。换行符将被忽略,但是您可以假定换行符不会中断数字字符串。 这可以由单个终止!。 b代表一个死单元,o代表一个活单元,并$代表一行的结尾。任何十进制数字表示以下符号将被视为重复多次。 纯文本模式编码 另一个选择是以此处描述的另一种纯文本格式读取模式。在此编码中,关闭的单元格用连字符表示,打开的单元格用大写字母Os表示,换行符分隔行。 您可以假定所有非注释行都将用连字符填充到相等的长度。 以开头的行!是注释,将被忽略。 一些测试案例 RLE: #This is a comment x = 35, y = 16, rule = B3/S23 bo$2o$obo5$22bo$22bo$22bo2$18b3o3b3o2$22bo$22bo10b2o$22bo10b2o! 纯文本: !This is a comment -O--------------------------------- OO--------------------------------- O-O-------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------------------- ----------------------O------------ ----------------------O------------ ----------------------O------------ …

5
Pyth练习2
是时候进行另一次Pyth实践了。我在这里展示8个问题陈述,每个陈述都有一个Pyth解决方案。这些解决方案由Pyth初学者编写。他对这些解决方案感到非常满意,因为它们比他的Python回答要短得多。但是,您的任务是向他展示更好。创建等效但较短的程序。 这是在Pyth打高尔夫球时可以使用的技巧和优化的挑战。Pyth高尔夫球手可能会意识到其中涉及的许多技巧,因此可以缩短解决方案的时间。但是,某些问题将需要一些很少使用的异常方法。我实际上从未在野外见过的一些技巧。但是,没有解决方案需要任何错误或奇怪的行为,而这并不是Pyth的设计人员故意设计的。自该问题发布以来,所有答案都必须对最近的Pyth提交(2b1562b)有效。您可以使用Pyth解释器供测试用。目前,它是最新的,我不希望Pyth发生任何大变化,否则将使最佳解决方案失效或使更短的解决方案成为可能。在线解释器还具有新的角色参考。由于它是非常新的,因此您(也应该)也可以使用旧的docs,以防某些错误或遗漏。 目标:参考解决方案总计81个字节。您的目标是尽可能地击败它。用最小的总字节数解决所有8个问题的提交将获胜。决胜局是提交日期。 当然,只有提交的内容有效,其中包含所有8个问题的解决方案。如果您不能提高一个(或多个)特定问题的分数,则可以使用参考实现。 您的解决方案必须输出与参考解决方案完全相同的输出。除了可选的尾随换行符。 由于这是一种Pyth做法,因此仅允许使用Pyth语言编写的程序。 回答:请搅局整个答案,除了你的总得分。您打算在提交自己的答案之前不要看别人的答案。您可以通过>来创建剧透。在每一行的前面,例如: >! Problem 1: V9m?>dNd0S9 (11 bytes) >! Problem 2: VTN)VGN (7 bytes) >! ... 我希望我没有选择太困难或太琐碎的问题。希望有很多参与者,也希望每个人都能对Pyth有所了解。打高尔夫球快乐! 问题一: 创建以下9x9矩阵并进行打印: [1, 2, 3, 4, 5, 6, 7, 8, 9] [0, 2, 3, 4, 5, 6, 7, 8, 9] [0, 0, 3, 4, 5, 6, 7, 8, …
21 code-golf  pyth 

11
此注释的频率是多少?
快速的音乐复习: 钢琴键盘包含88个音符。在每个八度音阶上,有12个音符,C, C♯/D♭, D, D♯/E♭, E, F, F♯/G♭, G, G♯/A♭, A, A♯/B♭和B。每次您按下“ C”时,花样都会重复八度。 音符通过以下方式唯一标识:1)字母(包括尖锐或平整),以及2)八度,即从0到8的数字。键盘的前三个音符为A0, A♯/B♭和B0。之后是八度1 C1, C♯1/D♭1, D1, D♯1/E♭1, E1, F1, F♯1/G♭1, G1, G♯1/A♭1, A1, A♯1/B♭1和八度的全色标B1。在这之后是八度音阶2、3、4、5、6和7的全色阶。然后,最后一个音符为C8。 每个音符对应于20-4100 Hz范围内的频率。用A0起始于恰好27.500赫兹,每个对应音符是两个,或大致1.059463第十二根先前音符倍。一个更通用的公式是: 其中,n是音符的编号,A0为1。(更多信息在此处) 挑战 编写一个程序或函数,该程序或函数接受代表音符的字符串,并打印或返回该音符的频率。我们将#在尖锐的符号(或为您的youngins的标签)上使用磅符号b,在扁平的符号上使用小写字母。所有输入看起来都(uppercase letter) + (optional sharp or flat) + (number)没有空格。如果输入超出键盘范围(小于A0或大于C8),或者有无效,缺失或多余的字符,则这是无效的输入,您无需进行处理。您还可以放心地假设您不会得到任何奇怪的输入,例如E#或Cb。 精确 由于不可能真正实现无限精度,因此我们可以说在真实值的1%以内的任何值都是可以接受的。在不赘述的情况下,一分是两个的1200的根,即1.0005777895。让我们用一个具体的例子来使它更清楚。假设您输入的是A4。此注释的确切值为440 Hz。一旦平分440 / 1.0005777895 = 439.7459。440 * 1.0005777895 = 440.2542因此,只要有一次锐利,任何大于439.7459但小于440.2542的数字都足以精确计数。 …
21 code-golf  music 

6
三角形乌兰螺旋
我们已经有几个的挑战有关乌拉螺旋。但这还不够。 在此挑战中,我们将绘制一个三角形的Ulam螺旋线(与通常的方形Ulam螺旋线相反)。这是螺旋形的草图。 众所周知,乌拉姆螺旋将所有自然数排列在一个向外的螺旋中,并且仅标记那些质数。因此,在上面的草图中,只会显示以黑色(质数)显示的数字。 挑战 接受数字N作为输入,并显示直至该数字的三角形Ulam螺旋。 输入可以是stdin或函数参数。 螺旋线应沿正方向(即逆时针)旋转,如上图所示。 上图的120度转弯中的任何一个都是有效的,并且转弯对于不同的输入可能是不同的。但是隐含三角形的最低边应为水平,因为唯一允许的转弯为120度(的倍数)。 理论上,代码应针对任何N运行(给定的时间和内存),直到使用默认数据类型进行的任何中间计算所允许的N。double足够; 不需要大整数类型。 允许所有内置功能。 我不会接受我自己的答案(不是我认为这将是最短的答案...)。 输出格式 选择以下任意一项。 显示带有质数的标记(点,圆,叉,任意)的图形,非质数不显示任何图形。两个轴的比例不必相同。也就是说,隐含三角形不必是等边的。轴,网格线和轴标签是可选的。仅需要质数上的标记。 N = 12 的示例输出如下(与上面的草图比较)。第二个图是一个更有趣的示例,对应于N = 10000。 使用任何众所周知的图像格式(例如png,tiff,bmp),用上述文件生成图像文件。 将螺旋显示为ASCII艺术,使用您选择的单个字符表示质数,使用空白表示非质数,并用空格分隔同一行中的数字位置。允许前导或尾随空格或换行符。例如,如果N = 12的情况下使用o字符 o · · · o · o · · · o · o 当然,只有o素数标记才会实际显示。将·在非质数如下所示,仅供参考。 获奖标准 实际的回报是亲眼看到那些惊人的模式 Code Golf,最短的代码获胜。

2
多项式的符号积分
将不确定的积分应用于给定的字符串。您将使用的唯一规则是这样定义的: ∫cx^(n)dx =(c /(n + 1))x ^(n + 1)+ C,n≠-1 c,C和n都是常数。 规格: 您必须能够将多项式与任何可能的特征集成: 系数,格式可能是分数(numerator/denominator)。 认识到e和π是常数,并且在其使用中,能够形成的级分或包含它们的表达式(可以像一小部分被保持(e/denominator)或(numerator/e),或者,如果在指数,x^(e+1)) 除了这两个特殊常数,所有系数都是有理数,实数。 指数,可能是分数 x^(exponent) 除了它们之外,与它们在一起e或π在其中的表达将不会出现指数。(您不必集成,例如x^(e+1),但可以集成x^(e)) 可以使用非x 1个字符的变量(即f) 这仅适用于ASCII范围65-90和97-122。 您不必使用链式规则或集成x^(-1)。 输出必须有填充(两个词之间的分隔符,即x^2 + x + C。 如果不知道如何与上述功能集成,则应打印出该程序"Cannot integrate "+input。 它必须是完整程序。 奖金: 如果您打印出用于降价格式的“漂亮”指数(而不是)x^2,则为-10%x<sup>2</sup>。 如果您打印出等式(即∫xdx = (1/2)x^2 + C),则为-10% 例子: 输入: x 输出: (1/2)x^(2) + C 输入: -f^(-2) 输出: f^(-1) …

3
我的障碍路线有多变化?
背景 我通过将盒子放在矩形房间中来构造一个简单的障碍物路线。现在,我想计算解决问题的本质上不同的方法。我需要你为此写一个程序。 输入项 您的输入是字符的非空矩形数组.#。点.是空白,#是障碍。 一个路径通过障碍课程开始在AT右下角的左上角和结束,并进入只向右或向下。同样,有效路径不能穿过障碍物。以下是一些使用+-characters 绘制的示例: Valid path Invalid path Invalid path Invalid path ++........ ++........ +++++..... ..+....... .++++++#.. .+.....#.. ....+++#++ ..++...#.. ......+#.. .+.++++#.. .......#.+ ...+++.#.. ....#.++++ .+++#.++++ ....#....+ ....#+.... 两条路径是基本相似的1,如果可以通过移动一个被转化成其它+在时间。中间路径也必须有效,因此您不能在障碍物上弯曲路径。例如,这里的前两个路径本质上是相似的,但是第三个路径与它们本质上是不同的,因为它不能绕过两个障碍: ++........ +......... +++++++++. .+++++.#.. ++.....#.. .......#+. .....+.#.. .++++++#.. .......#++ ....#+++++ ....#.++++ ....#....+ 输出量 您的输出是穿过障碍物路线的基本不同路径的数量。换句话说,如果将所有有效路径划分为本质上相似的路径类别,则输出为类别数。请注意,如果没有有效的路径,则此数字可能为0。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。没有时间限制,只是您应该在提交每个测试用例之前对程序进行评估。 测试用例 .... .... …

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.