Questions tagged «code-golf»

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

10
埃及金字塔
埃及最大的金字塔吉萨大金字塔,不仅是古代世界七大奇迹中最古老的金字塔,而且还是唯一保持完整的金字塔。埃及金字塔的建造可能需要长达20年的时间,而且规模如此之大,以至于萨拉丁的儿子阿齐兹·乌斯曼(Al-Aziz Uthman)粉碎了十字军,不得不放弃拆除吉萨大金字塔的原因,因为这被认为是一项艰巨的任务。埃及金字塔大多是在旧王国和中王国时期(公元前2686年至1690年)为该国的法老王及其配偶建造的墓而建,截至2008年,已发现138座埃及金字塔。 任务是创建一个程序,该程序输入由空格分隔的一系列距离,并生成由这些距离分隔的10×10文本金字塔。距离1等于两个字符。 文字金字塔如下所示: /\ /--\ /----\ /------\ /--------\ /----------\ /------------\ /--------------\ /----------------\ /------------------\ 如果输入仅包含一个换行符,则将生成一个金字塔,如上所述。对于每个金字塔,左侧的金字塔都显示在前面。 例一 输入: 4 3 1 输出: /\ /\ /\/\ /--\ /--\ /--\-\ /----\ /----\/----\-\ /------\/------\-----\-\ /--------\-------\-----\-\ /----------\-------\-----\-\ /------------\-------\-----\-\ /--------------\-------\-----\-\ /----------------\-------\-----\-\ /------------------\-------\-----\-\ 例二 输入: 0 9 输出: /\ /\ /--\ /--\ /----\ /----\ /------\ /------\ /--------\ …

12
间隔联盟
给定间隔列表,对其进行合并,并减少重叠。这意味着减少了重叠部分。([a, b] U [c, d] = [a, d]如果b > c)假定所有间隔中的所有a <b [a, b]。根据输入间隔列表->输出间隔列表来实现。最短的代码获胜。您不能使用任何现有的库。 说明: 打开和关闭间隔不区分。 实数的间隔,而不是整数。([2, 3], [4, 5] -> [2, 3], [4, 5]) 无需排序输出间隔 输入无关紧要的顺序 非法输入仅[a, b]在处b >= a,与输入间隔的顺序和输入间隔的数量无关。 您无需在未定义的行为上显示错误消息 示例(带数字线) [2, 4], [7, 9] --> [2, 4], [7, 9] 234 789 -> 234 789 [1, 5], [2, 10] …
15 code-golf 

7
接下来是什么?
给定一个用空格分隔的整数列表,您的任务是在序列中查找下一个整数。序列中的每个整数是应用单个数学运算(的结果+,-,*或/)到前一整数,并且每个序列由这样的操作的可变数目(但不超过10个)组成。没有序列会比整数序列的长度长一半,因此您将使每个操作序列至少出现两次以进行确认。 输入将通过stdin(或prompt对于JavaScript解决方案)。 以下是一些说明性示例。 输入: 1 3 5 7 9 11 输出: 13 相当容易,这个。所有值均为先前值+2。 输入: 1 3 2 4 3 5 4 6 5 7 6 输出: 8 +2然后按此顺序执行两个步骤-1。 输入: 2 6 7 3 9 10 6 18 19 15 45 46 输出: 42 三个步骤- ,*3,。+1-4 测试用例 这里还有一些测试用例: 输入: 1024 512 …

30
欢乐跳线序列
如果连续元素之间的差值的绝对值取从1到n-1的所有值,则n> 0整数的序列称为“欢乐跳线”。 因此序列[4,1,2,4]的绝对差[3,1,2]等于集合[1,2,3](1到n-1,其中n是原始序列的长度)因此,它是一个快乐的跳线。 序列的长度为n> 0。 假设n = 1是一个快乐的跳线。 简易模式:不用担心stdin / stdout。只是一个函数,它接受参数并返回一些表明是否快乐的信息 硬模式:在stdin上输入(以空格分隔),输出为“ Jolly” /“ Not jolly”。资本化问题。 这是代码高尔夫。 编辑:序列可以包含负整数,并且stdin上的输入以空格分隔。 $ jolly 2 -1 0 2 Jolly $ jolly 19 22 24 25 Jolly $ jolly 19 22 24 21 Not jolly

5
高尔夫代码:熄灯!
传递所有可能性的最短代码获胜 已经开发出许多基于网格的游戏,它们以打开的灯光网格开​​始。按下任何一个灯都会导致该灯和与其相邻的四个灯切换。切换灯光时,灯光是关闭还是打开,这取决于它是最初打开还是关闭。目标是按顺序击中灯光,导致所有灯光最后都关闭。 “ X”表示已打开的灯。“ O”表示关闭的灯。“ P”代表被按下的那个正方形。 XOO XOO XOX XOX XXX XOX XOP -> XXO -> OPO -> XOX OOX OOX POO XXO XOO Intial Grid Press 1 Press 2 Press 3 Ending Grid 输入可以直接从作为参数传递的文件或标准输入中获取。输入的第一行将包含x(1 <= x <= 20),即灯光网格的大小,即x乘x。第二行将包含y(0 <= y <=(x * 3)2),即最初点亮的灯数。接下来的y行包含网格上照亮的灯光的坐标,格式为“行列”。应该重新关闭已经打开的灯(之前已切换过)。下一行将包含z,即按下的灯光数量。最终z 行以“行列”的格式包含按其按下顺序的按下的灯光的坐标。 没有输入将是不正确的。所有数字都将在网格的给定边界内。 切换所有灯光后,输出将是最后一个网格。它应该是一个n × n的网格。对于每个点亮的区域,均应使用大写字母“ X”。对于每个灯光都熄灭的区域,应使用大写字母“ …

17
代码高尔夫:圆内的晶格点
下图显示了该问题: 编写一个函数,给定一个整数作为圆半径,该函数计算中心圆(包括边界)内的晶格点数。 该图显示: f[1] = 5 (blue points) f[2] = 13 (blue + red points) 用于检查/调试的其他值: f[3] = 29 f[10] = 317 f[1000] = 3,141,549 f[2000] = 12,566,345 应该有合理的表现。假设f [1000]不到一分钟。 最短的代码获胜。通常使用Code-Golf规则。 请以f [1001]的计算和时序为例。

6
将置换分解为周期
有一个众所周知的定理,任何置换都可以分解为一组循环。您的工作是编写最短的程序。 输入: 两行。第一个包含数字N,第二个包含以空格分隔N的范围内的不同整数[0,N-1]。这些整数表示N元素的排列。 输出: 排列中每个循环一行。每行应是按循环顺序用空格分隔的整数列表。 循环可以以任何顺序输出,并且每个循环可以从任意位置开始输出。 范例1: 8 2 3 4 5 6 7 0 1 此输入编码排列0-> 2、1-> 3、2-> 4、3-> 5、4-> 6、5-> 7、6-> 0、7-> 1。这分解成如下循环: 0 2 4 6 1 3 5 7 同样有效的输出将是 5 7 1 3 2 4 6 0 范例2: 8 0 1 3 4 5 6 …

16
罗塞塔石碑挑战:找到系列规则
Rosetta Stone挑战赛的目标是用尽可能多的语言编写解决方案。炫耀您的编程多语言! 挑战 您面临的挑战是实现一种程序,该程序将以尽可能多的编程语言输入一个数字列表,并输出用于生成该系列中每个连续数字的规则。您可以使用您的语言具有的任何标准库函数,因为这主要是语言展示。 什么是“系列”? 系列是整数的有序列表。通过将简单规则应用于序列中的先前编号,可以生成序列中的每个连续编号。在此挑战中,规则包括将数字乘以一个常数,然后加上第二个常数。这两个常数可以是任何整数。挑战的目标是输出这两个常数。 对于该系列2 5 11,该规则可以写为2 1。这意味着每个数字都是前一个数字乘以2,再加上1。一个重要的事实是,大多数序列只有一个规则。某些系列具有无限数或根本没有数字,但是您不必处理这个问题。 输入值 输入将是三个不同整数的列表,它们是序列中的数字。这些数字可以用空格,逗号或换行符分隔,但请指定。由于某些语言可能会有输入限制,因此我将对此限制保持灵活性。这是四个输入示例: 0 7 14 2 5 11 2 0 -4 5 -19 77 输出量 输出将是两个整数,代表用于生成序列的规则。第一个数字将是乘法常数,而第二个数字将是加法常数。输出的格式可以用空格,逗号或换行符分隔。我对此限制也很灵活。以下是相应的输出示例: 1 7 2 1 2 -4 -4 1 客观取胜标准 关于客观的获胜标准,这是:关于谁可以写得最短的条目,每种语言都是一个单独的竞赛,但是总的获胜者将是赢得这些子竞赛中最多的人。这意味着以多种不同寻常的语言回答的人可以获得优势。当一种语言中有多个解决方案时,代码高尔夫球通常是决胜局:程序最短的人会获得该语言的荣誉。 规则,限制和注释 您的程序可以用2012年4月9日之前存在的任何语言编写。由于我不太可能进行测试,因此我还必须依靠社区来验证使用某些较不常见/深奥的语言编写的答复。他们。 现任排行榜 本节将定期更新以显示语言的数量以及每种语言的领先者。 AWK(32)-mellamokb bash(31)-彼得·泰勒 Befunge(29)-霍华德 卑诗省(39)-kernigh 操脑(174)-CMP C(78)-l0n3_shArk C ++(96)-左右左右 常见的Lisp(88)-kernigh 克雷教堂(59)-凯尔·卡诺斯(Kyle …

19
非平凡的权力
编写最短的程序以按顺序打印≤2 ^ 12的非平凡幂次 非平凡幂表示基数和指数> 1 前导空格是可选的 当有多个解决方案时,顺序并不重要,因此 16 = 4^2, 2^4 还可以 样本输出: 4 = 2^2 8 = 2^3 9 = 3^2 16 = 2^4, 4^2 25 = 5^2 27 = 3^3 32 = 2^5 36 = 6^2 49 = 7^2 64 = 2^6, 4^3, 8^2 81 = 3^4, 9^2 …
15 code-golf  math 

10
计算Pi的位数
这是一个有点不同的任务。从第1024个十六进制位置开始计算π的1024个十六进制数字。 正式地:您的程序应在不到1分钟的时间内完成,并产生以下输出: 25d479d8f6e8def7e3fe501ab6794c3b976ce0bd04c006bac1a94fb6409f60c45e5c9ec2196a246368fb6faf3e6c53b51339b2eb3b52ec6f6dfc511f9b30952ccc814544af5ebd09bee3d004de334afd660f2807192e4bb3c0cba85745c8740fd20b5f39b9d3fbdb5579c0bd1a60320ad6a100c6402c7279679f25fefb1fa3cc8ea5e9f8db3222f83c7516dffd616b152f501ec8ad0552ab323db5fafd23876053317b483e00df829e5c57bbca6f8ca01a87562edf1769dbd542a8f6287effc3ac6732c68c4f5573695b27b0bbca58c8e1ffa35db8f011a010fa3d98fd2183b84afcb56c2dd1d35b9a53e479b6f84565d28e49bc4bfb9790e1ddf2daa4cb7e3362fb1341cee4c6e8ef20cada36774c01d07e9efe2bf11fb495dbda4dae909198eaad8e716b93d5a0d08ed1d0afc725e08e3c5b2f8e7594b78ff6e2fbf2122b648888b812900df01c4fad5ea0688fc31cd1cff191b3a8c1ad2f2f2218be0e1777ea752dfe8b021fa1e5a0cc0fb56f74e818acf3d6ce89e299b4a84fe0fd13e0b77cc43b81d2ada8d9165fa2668095770593cc7314211a1477e6ad206577b5fa86c75442f5fb9d35cfebcdaf0c7b3e89a0d6411bd3ae1e7e4900250e2d2071b35e226800bb57b8e0af2464369bf009b91e5563911d59dfa6aa78c14389d95a537f207d5ba202e5b9c5832603766295cfa911c819684e734a41b3472dca7b14a94 长度最短的程序将获胜。您必须在运行时计算所有数字。您不必实现计算π的算法;如果您的语言已经提供了该功能,则可以使用它。

12
实施Glob Matcher
实现要匹配的模式和字符串的功能,如果模式与WHOLE字符串匹配,则返回true,否则返回false。 我们的全局模式语法为: ? 匹配任何一个字符 + 匹配一个或多个字符 * 匹配零个或多个字符 \ 逃脱 规则: 没有评估,没有转换为正则表达式,没有调用系统glob函数。 不需要I / O:您只需编写一个函数 最短的胜利 例子: glob('abc', 'abc') => true glob('abc', 'abcdef') => false IMPORTANT! glob('a??', 'aww') => true glob('a*b', 'ab') => true glob('a*b', 'agwijgwbgioeb') => true glob('a*?', 'a') => false glob('?*', 'def') => true glob('5+', '5ggggg') => true …

30
实施部门
用您喜欢的语言实现除法算法,该算法可以处理整数除法。它只需要处理正数-但是如果处理负数和混合符号除法,也需要加分。结果四舍五入为分数结果。 该程序可能不包含/,\,div或类似的运营商。它必须是不使用语言的本机除法功能的例程。 您只需要处理32位除法。不允许使用重复减法。 输入值 在stdin上输入两个输入,并用新行或空格分隔(您的选择) 740 2 输出量 在这种情况下,输出为370。 最短的解决方案就是胜利。

24
下星期五13日
能预测下一个星期五的下一个最短程序是哪个月的第13天? 必须是功能完整的程序(而不仅仅是函数/子例程) 必须以以下格式打印日期: YYYY-MM-DD 允许用户提供开始日期作为命令行参数或通过 STDIN 如果用户未提供开始日期,请使用今天作为开始日期。 如果开始日期是13号星期五,则程序应找到下一个 13号星期五。 如果今天(2011年2月16日)运行该程序,则应获得以下输出。 $ ./fr13th 2013-05-09 2013-09-13 $ ./fr13th 2007-06-29 2007-07-13 $ ./fr13th 2007-07-13 2008-06-13 $ ./fr13th 2011-05-13
15 code-golf  date 

18
浮点异或
您的任务非常简单。给定两个浮点数,将它们按位进行异或,然后将其输出为浮点数。 例如, Normal: 16.7472 ^ 123.61 = 7.13402e-37 Binary: 01000001100001011111101001000100 ^ 01000010111101110011100001010010 = 00000011011100101100001000010110 Normal: 2.2 ^ 4.4 = 1.17549e-38 Binary: 01000000000011001100110011001101 ^ 01000000100011001100110011001101 = 00000000100000000000000000000000 Normal: 7.898 ^ 3.4444 = 1.47705e-38 Binary: 01000000111111001011110001101010 ^ 01000000010111000110101001111111 = 00000000101000001101011000010101 限制/说明: 输入/输出可以通过任何方便的方法给出。 该程序可以是完整程序,也可以只是功能。两者都很好。 浮点类型可以是任意大小,但最小大小为2个字节。 禁止出现标准漏洞。 最短的代码获胜。

30
前进两步,后退一步
假设我距离目的地十步之遥。我按照古老的谚语“向前走两步,向后退一步”走到那里。我向前走了两步,向后走了一步,直到我正好站在目的地上。(这可能涉及跨过我的目的地,然后返回目的地)。我走了几步? 当然,我可能还没有十步之遥。我可能只有11步之遥,或者是100步。我可以测量10个步伐,并继续来回走动以解决问题,或者...我可以编写一些代码! 编写一个函数,计算出要走N步要走多少步,顺序为:向前两步,向后一步。 假设您已从步骤0开始。将“向前两步”算作两步,而不是一步。 假设所有步骤都是统一的长度。 它应该返回到达该空间时首先执行的步骤数。(例如,距离10步需要26步,但是您在步骤30再次点击了它)。我们对26个感兴趣。 使用您喜欢的任何语言。 它应该接受任何正整数作为输入。这代表了目标步骤。 最小的字节数获胜。 例: 我想走5步: | | | | | | <- I'm at step 0, not yet on the grid. | |X| | | | <- I take two steps forward, I'm on step 2: the count is 2 |X| | | | …

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.