Questions tagged «code-golf»

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

13
像青蛙一样跳!
给定非负整数数组,您的任务是仅保留其某些元素,如下所述。 假设数组为[1, 3, 2, 4, 11, 5, 2, 0, 13, 10, 1]。 首先获取数组的第一个元素n。保留第一个n元素并丢弃下一个元素(丢弃n+1th)。新数组为[1, 2, 4, 11, 5, 2, 0, 13, 10, 1]。 然后,您在删除的元素后面抓取元素,并执行完全相同的操作。重新应用该过程,我们得到[1, 2, 11, 5, 2, 0, 13, 10, 1] 重复此过程,直到到达数组范围之外/数组中没有剩余元素。我们停止,因为11它大于数组的长度。 现在,您应该输出结果。 输入/输出可以任何标准形式获取/提供。该数组永远不会为空,并且将仅包含非负整数。禁止所有标准漏洞。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 输入->输出 [1、2、3、4、5]-> [1、3、4] [6,1,0,5,6]-> [6,1,0,5,6] [1、2、3、2、4、11、5、2、0、13、10、1]-> [1、2、11、5、2、0、13、10、1] [2,2,2,2,2,2]-> [2,2] [1、2、3、1、2、3、1、2、3]-> [1、2] [3,1,2,4,0]-> [] * …

1
卓越的高复合数
较高的高复合数是一个整数,其中其除数的数量与该数字的幂的比率应尽可能大。用公式表示: 令d(n)是n的除数,包括数字本身。对于给定的整数n,如果存在一个数字e,使得每个整数k的d(n)/ n ^ e都大于或等于d(k)/ k ^ e,则n是一个高度合成的数。 有关更多信息,请参见Wikipedia上的“ 高级高级综合号码”,或OEIS上的A002201。 这是初始值: 2, 6, 12, 60, 120, 360, 2520, 5040, 55440, 720720, 1441440, 4324320, 21621600, 367567200, 6983776800, 13967553600, 321253732800, 2248776129600, 65214507758400, 195643523275200, 6064949221531200 您的挑战是获取索引n,并按此顺序输出第n个数字。 您可以使用0或1索引,并且可以制作一个仅在您的语言的数据类型的限制范围内正确的程序,只要它至少可以处理前10个值即可。 这是代码高尔夫。有标准漏洞。

3
生日快乐,我们来吃蛋糕吧!
这是我朋友的生日,因为他是一名程序员和ASCII艺术爱好者,所以我想我可以给他做一些ASCII蛋糕! 可悲的是,我一直忘了他的年龄,所以我想为我的ASCII烤箱准备一个程序,用指定数量的蜡烛烤蛋糕,所以如果我错了他,我就不必自己再做一次年龄。 ASCII烤箱仅具有有限的内存和存储容量,因此应使用尽可能少的字节。 你的任务: 编写一个程序,将一个生日蛋糕输出到控制台,其中蜡烛的数量与输入指定的数量相同。 蛋糕要求是: 它必须具有由水平-和垂直|线以及顶点组成的边界+。 至少5个字符(包括蛋糕边框|) 高至少5个字符(包括蛋糕边框-) 蛋糕边框和第一个烛台(不是火焰)之间必须有一个空白字符,除非该空间中有火焰,否则每边都必须有一个空白字符。火焰或蜡烛基不应与蛋糕边界重叠。 蛋糕的最大宽度为9个字符,因此每行最多5个蜡烛。 由于我们不希望蛋糕是二维的,因此蛋糕必须高2行才能使其具有一定的体积。添加另一个边框底部和连接顶点与上面摆着的,再次使用从上面的ASCII字符(-,|和+)。 蜡烛的要求是: 由底座|和火焰组成*,火焰堆叠在底座上。 除对角线外,蜡烛可能不会彼此直接相邻。 蜡烛从左到右放置,然后从上到下放置,每行最多5条蜡烛。 (注意:如果上一行有5支蜡烛,则下一行也不能有5支蜡烛,因为它们将相邻。) 补充说明: 蛋糕的宽度取决于第一行中蜡烛的数量,但宽度必须至少为5个字符,最大为9个字符。 蜡烛从最上一行开始填充,从左到右。如果一行已满,则下一行应从第一行下面的行开始。 输入: 您可以接受自己喜欢的(合理的)格式的数字。 对于这个挑战,即使我不承认这个年龄的人,您也可以假设该数字在0到2 31之间(不包括0)。 输出: 您可以返回一个字符串,也可以将结果蛋糕直接写入输出控制台。 规则: 禁止出现标准漏洞。 这是code-golf,因此以任何语言表示的最短代码(以字节为单位)将获胜。 例子: 输入: 8 +-----------+ | * * * * * | | |*|*|*| | | | | | | | | …

11
历史作业助手
在阅读历史记录和做笔记时,我不禁厌倦了写下所有这些漫长的日子– 1784年是整个六个铅笔升降机!ǝǝ! 如您所见,我(就像该网站上的大多数挑战性海报一样)在写作方面很懒惰。因此,请您帮助我缩短一些日期。当然,您的解决方案必须尽可能地短,因为我的手已经很难写出键入测试用例的内容。 如何缩短日期? 好有趣,你应该问。这很简单: 以您想要的任何顺序((smallest, biggest)或(biggest, smallest))以两个整数作为输入。 取两个数字中的较大者,而不取较小数字中的一部分。 例如,给定2010, 2017,缩写2017为,-7因为201_两者都在同一数字位。 打印或返回较小的数字,后跟破折号,然后缩短的较大数字。 例如: Bonus brownies for you if you figure out these dates' significance :) 1505, 1516 -> 1505-16 1989, 1991 -> 1989-91 1914, 1918 -> 1914-8 1833, 1871 -> 1833-71 1000, 2000 -> 1000-2000 1776, 2017 -> 1776-2017 2016, …
12 code-golf  number 

12
圆像零
目标 给定输入数字,将其四舍五入到一个有效数字。 要求 输入值 浮点数。 假设输入数字的结果在数据类型的限制之内(即忽略溢出错误)。 0是无效输入。 不必支持不能以浮点数据类型准确表示的数字(例如"0.35",存储为0.3499999)。 输出量 由一个非零数字和任意数目的零数字组成的最接近的数字。 结果必须支持负数和小数。 当输入恰好位于两个可能的输出之间时,请从零舍入。 介绍 重点是计算而不是表示。输出可以是浮点数据类型。它可以是完整或科学计数形式的文本。如果您发现一个漏洞,可以通过某种方式减少字节数,这对您来说是荣誉! 例子 9 -3000 .2 0.2 -.2 7e12 5e-15 1e0 测试用例 Input Output 1 1 10 10 17 20 99 100 54321 50000 56789 60000 -123 -100 -789 -800 0.23 0.2 0.25 0.3 -0.25 -0.3 4.56e23 5e23 …
12 code-golf  math 

6
找出有理生成函数的系数
如果我们写一个数字序列作为幂级数的系数,则该幂级数称为该序列的(普通)生成函数(或Gf)。也就是说,如果对于某些函数F(x)和整数系列,a(n)我们有: a(0) + a(1)x + a(2)x^2 + a(3)x^3 + a(4)x^4 + ... = F(x) 然后F(x)是的生成函数a。例如,几何级数告诉我们: 1 + x + x^2 + x^3 + x^4 + ... = 1/(1-x) 因此,的生成函数1, 1, 1, ...为1/(1-x)。如果我们对上面方程的两边求和并乘以x得到以下等式: x + 2x^2 + 3x^3 + 4x^4 + ... = x/(1-x)^2 因此,的生成函数1, 2, 3, ...为x/(1-x)^2。生成函数是一个非常强大的工具,您可以使用它们来做很多有用的事情。在这里可以找到简短的介绍,但是要获得真正彻底的解释,请参见惊人的图书生成功能学。 在此挑战中,您将有理函数(两个具有整数系数的多项式的商)作为两个整数系数数组的输入作为输入,首先是分子,然后是分母。例如,功能f(x) = x …
12 code-golf  math  integer  polynomials  code-golf  math  abstract-algebra  restricted-time  code-golf  math  primes  code-golf  math  number  arithmetic  code-golf  quine  code-golf  number  sequence  code-golf  string  number  code-golf  array-manipulation  code-golf  number  code-golf  string  code-golf  arithmetic  code-golf  string  array-manipulation  rubiks-cube  code-golf  math  number  code-golf  tips  bash  code-golf  ascii-art  music  code-golf  arithmetic  code-golf  math  number  arithmetic  integer  code-golf  number  array-manipulation  code-golf  geometry  grid  set-partitions  code-golf  math  number  code-golf  combinatorics  code-golf  regular-expression  code-golf  permutations  code-golf  ascii-art  code-golf  number  array-manipulation  matrix  code-golf  kolmogorov-complexity  compile-time  cops-and-robbers  polyglot  cops-and-robbers  polyglot  code-golf  string  code-golf  string  ascii-art  matrix  animation  code-golf  ascii-art  code-golf  string  balanced-string  code-golf  integer  integer-partitions  expression-building 

16
弹跳取模两个数字
模运算()的图形如下所示:ÿ= x模ķy=xmodky = x \mod k 这是一个非常有用的功能,因为它允许我们创建“包装”行为。但是,当我要使用它在两堵墙之间创建“反弹”外观时,这非常麻烦。“反弹”功能的图形(ÿ= 反弹(x ,k )y=bounce(x,k)y = \text{bounce} (x, k))如下所示: 的图的周期为。的图的周期为,因为在返回到起点之前,它向上移动单位,然后向下移动另一个单位。对于这两个函数,的最小值均为0,最大值为(实际上,对于具有积分输入的模数函数,其)。另外,对于这两个函数,值为0。k y = 跳动(x ,k )2 k k k y k k − 1 x = 0ÿ= x模ķy=xmodky = x \mod kķkkÿ=bounce(x,k)y=bounce(x,k)y = \text{bounce} (x, k)2k2k2kkkkkkkyyykkkk−1k−1k-1x=0x=0x=0 挑战 给定一个整数和一个正整数,返回的整数或浮点近似值。k y = 跳动(x ,k )xxxkkky= 反弹(x ,k )y=bounce(x,k)y …

10
Lehmer-Comtet序列
Lehmer-Comtet序列是这样的序列,即a(n)是f(x)= x x相对于x的第n个导数,如在x = 1处求值。 任务 以一个非负整数作为输入并输出Lehmer-Comtet序列的第n个项。 这是代码高尔夫球,因此您应该最小化源代码的文件大小。 测试用例 OEIS 5727 这是顺序中的前几个术语(从OEIS复制) 1, 1, 2, 3, 8, 10, 54, -42, 944, -5112, 47160, -419760, 4297512, -47607144, 575023344, -7500202920, 105180931200, -1578296510400, 25238664189504, -428528786243904, 7700297625889920, -146004847062359040, 2913398154375730560, -61031188196889482880

17
顶绳梯
给定一个字符串s和一个正整数N,逐渐将每个字符逐渐重复,直到N重复为止,然后停留在N重复位置,直到N字符远离结尾,然后再次下移。 例如,给定abalone和3: a we start with 1 copy bb then 2 copies aaa then 3 copies, which is our second parameter lll so we continue using 3 copies ooo until we reach the end nn where we use 2 copies e and then finally 1 copy 结果将是abbaaalllooonne。 保证字符串的长度大于2N并且仅包含字符从a到z。 更多测试用例: N …
12 code-golf  string 

6
该字符串有效吗?
挑战 编写一个程序或函数,该程序或函数将字符串输入作为函数参数或从stdin输入并确定它是否为有效的FEN字符串。 输入值 您可以假定输入将仅包含以下字符(区分大小写) pkqrbnPKQRBN12345678/ 输入的长度将始终为最小1个字符和最大100个字符 输出量 输出应为真/假值。这些值可以是您希望的任何值,只要它们是一致的即可(所有真实结果具有相同的输出,所有虚假结果具有相同的输出)。您应该有两个截然不同的可能输出。 什么才算有效 小写字母代表黑色,大写字母代表白色。 您应该确保在象棋游戏中可能存在处于当前位置的棋子。 每个玩家将始终只有一个国王(k / K) 每个玩家最多只能有8个棋子(p / P) 每个玩家通常不会超过1 *王后(q / Q) 每个玩家通常都不会有更多少于2 *名新手(r / R) 每位球员通常不超过2 *名骑士(n / N) 每名球员通常不超过2 *名主教(b / B) *合法的“将“兵”提升为这四个部分中的任何一个。 每位玩家的棋子,皇后,新手,骑士和主教的总数永远不会超过15 每个等级的总件数加上空方(以数字表示)应始终正好等于8。并且应该始终有8个等级,中间用正斜杠分隔。 您可以忽略的事情 您不必担心自己是否有可能发挥指定的位置,或者如果该位置是合法的,仅需保证所给定的数量即可存在。 您可以忽略FEN琴弦的进一步复杂性,例如演奏者回合,铸造权和传球权。 这是代码高尔夫。以字节为单位的最短程序获胜。通常存在漏洞和规则。 测试用例 输入 rnbqkbnr / pppppppp / 8/8/8/8 / PPPPPPPP / …

30
什么是标准刮擦?
在高尔夫中,使用以下公式计算球场的标准划痕: (3*num_of_3_par_holes + 4*num_of_4_par_holes + 5*num_of_5_par_holes) - difficulty_rating 给定这4个输入,您的任务是计算高尔夫球场的标准刮擦度。 您应该以任何标准格式输入格式 [num_of_3_pars, num_of_4_pars, num_of_5_pars], difficulty rating 但是如果保存字节,那么许多人会以不同的方式接受输入。 您应该通过meta上任何可接受的方法(例如从函数返回)输出最终结果。 最短的代码获胜,因为这是代码高尔夫!
12 code-golf  math  number 

4
为儿童玩机器人-我会收到哪一封信?
TL; DR:给定一个字符数组,并且在该数组的起始位置有一个机械手,编写一种算法,该算法可以读取具有运动的字符串(F“向前”,R“向右旋转90度”和L“ 向右旋转90度”左”),然后计算机器人的结束位置。全文中有更多详细信息。 我们在家中有一个非常简单的面向儿童的可编程设备:带有按钮的小型车辆,可以使车辆前进,向左转90度或向右转90度。类似于以下内容: 我们也有一个泡沫垫,上面写着这样的字母: 所有这些的目的是一次教孩子们字母和编程的基础。 挑战 假设我们像这样随机安排泡沫垫: +---+---+---+---+---+---+---+ | E | R | L | B | I | X | N | +---+---+---+---+---+---+---+ | O | A | Q | Y | C | T | G | +---+---+---+---+---+---+---+ | F | W | H | P | …

11
将列表列表解析为悲伤列表
在此挑战中,您必须将列表列表解析为更简单的列表格式。 这项挑战基于我的sadflak解析器。在我的sadflak解析器中,它删除了所有(),并在列表的开头替换为()的总和,以使程序运行更快。 要解析为悲伤列表,您必须执行以下操作(Python实现的事情,使用一个元组的元组): def sadlistfunc(list): new-sadlist = [0] for i in list: if i == (): new-sadlist[0]+=1 else: new-sadlist.append(sadlistfunc(i)) 这是一个递归函数。对于列表,请从列表输入中的()数量开始创建一个新列表,然后该列表的其余部分依次是每个列表的悲伤列表版本,而不是列表输入中的()。返回列表。 输入: 您可以采用几种不同的格式输入: 您可以将其作为列表 你可以把它当成元组 你可以把它当作一个字符串 如果将其作为字符串使用,则应使用一些括号,如出现在脑筋急转弯中的括号。您不能使用字符1和2 只是合理 输入将始终在一个列表内,但是您的程序可能会在输入之外假设一个隐式列表层,即()()()=(()()()),或者可能选择不包含。示例将带有明确的外部列表 输出: 可以是列表,元组或字符串,或其他任何形式。您可以使用任何合理的输出格式,例如元共识。 例: (()()()) = [3] (((()))) = [0,[0,[1]]] ((())()(())) = [1, [1], [1]] () = invalid input, if the outside bracket …

19
进行查找索引
给定一个字符串,返回一个表,其中第一列按出现的顺序具有该字符串的唯一字母,随后的列使用零或基于一的索引列出该字母在字符串中的索引。只要最左边的列垂直对齐,水平空格就没有关系。索引必须按从左到右的升序排列。 例子 使用从零开始的索引并给定“ abracadabra”,返回 a 0 3 5 7 10 b 1 8 r 2 9 c 4 d 6 使用基于一个的索引并给定“ 3141592653589793238462643383279503”,返回: 3 1 10 16 18 25 26 28 34 1 2 4 4 3 20 24 5 5 9 11 32 9 6 13 15 31 2 7 …

22
ASCII魔方
灵感来自这和以下聊天: 您的任务是输出以下内容: _ _ _ /_/_/_/\ /_/_/_/\/\ /_/_/_/\/\/\ \_\_\_\/\/\/ \_\_\_\/\/ \_\_\_\/ 允许额外的前导或尾随空格,只要它不会更改多维数据集的外观即可。与往常一样,允许从函数返回上面的内容或字符串列表。 这是代码高尔夫球,因此最短答案以字节为单位!

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.