Questions tagged «code-golf»

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

8
可视化合并排序
合并排序是一种排序算法,其工作原理是将给定列表分为两半,对两个较小的列表进行递归排序,然后将它们合并回一个排序的列表。递归的基本情况是到达一个单例列表,该列表无法进一步拆分,但已按定义进行了排序。 [1,7,6,3,3,2,5]可以通过以下方式可视化列表中算法的执行: [1,7,6,3,3,2,5] / \ split [1,7,6,3] [3,2,5] / \ / \ split [1,7] [6,3] [3,2] [5] / \ / \ / \ | split [1] [7] [6] [3] [3] [2] [5] \ / \ / \ / | merge [1,7] [3,6] [2,3] [5] \ / \ / merge [1,3,6,7] …

13
ASCII艺术的平方根
您正在为真正讨厌TeX,LaTeX等的数学家做实习生。是如此之多,以至于他决定放弃所有排版,让您以ASCII格式进行所有格式化。过了一会儿,您对此感到厌倦,并决定从平方根开始开始自动化它的一部分。 这是制作平方根的方法: ### this is the input ### ### _____ put a row of underscores stretching one character off either side on top ### ### ### _____ put a diagonal of slashes in front going the height of the input / ### / ### / ### _____ put a diagonal …

10
海马鞋
当然,海马需要鞋子。但是,只有一条尾巴的海马只需要一只鞋子。不幸的是,这双鞋只成对出现。对于海马政府来说,资金紧张,因此他们需要购买尽可能少的货币对。每只海马的鞋子尺码为x,其中x为正整数。但是,如果需要,海马可以穿x-1或x + 1的鞋子。 您的任务是输出海马政府必须购买以在其所有海马上穿鞋的最小对数。 您可以根据需要输入,也可以输入标准漏洞等。 因为这是代码高尔夫,所以以字节为单位的最短代码获胜。 测试用例 2 4 6 6 8 14 -> 4 2 1 3 1 1 -> 3 4 1 4 9 1 8 9 1 8 4 -> 6 1 2 3 5 7 8 10 12 -> 4
30 code-golf 

15
我要压碎阵列有多难?
让我们定义粉碎数字数组的过程。迷恋我们从左到右读取数组。如果在某一点上我们连续遇到两个相同的元素,则将第一个删除,将第二个加倍。例如,这是粉碎以下数组的过程 [5,2,2,3] ^ [5,2,2,3] ^ [5,2,2,3] ^ [5,4,3] ^ [5,4,3] ^ 相同的元件可以折叠多次,例如[1,1,2]成为[4]粉碎时。 当粉碎该阵列的过程没有改变数组时,我们将其称为不可粉碎的阵列。例如[1,2,3]仍然[1,2,3]被压碎之后。 您的任务是获取一个阵列,并确定使其无法破碎所需的破碎次数。您只需要支持0到2 32 -1范围内的整数 这是代码高尔夫球,因此答案将以字节计分,而字节数越少越好。 测试用例 [1] -> 0 [1,1] -> 1 [2,1,1] -> 2 [4,2,1,1] -> 3 [2,2,2,1,1] -> 3 [0,0,0,0] -> 1 [4,0,0,0,4] -> 1 [4,0,0,0,0,4] -> 1 [] -> 0

16
用输入计算BPM
编写最短的代码,将使用经过的8个数据时间点来计算平均BPM(每分钟节拍数)。这是我的第一篇文章,而且我还没有看到类似的问题。因为我是节奏游戏迷,所以拥有一个便捷的小工具可以使用自己的键盘和节奏感来计算BPM(如果您有...)。 挑战 所有输入必须为单数。(即仅按“输入”作为“输入”) 您的程序必须至少接受9个输入。(要创建经过8个数据点的时间。) 您的程序应输出按键的BPM(四舍五入到小数点后两位)。(即178.35) 时序从第一个输入开始。无法启动程序 这是代码高尔夫球,因此最短的答案将获胜。 输入和输出示例 提供至少一个示例输入和输出。确保它们与您对输入外观的描述相符。 输入: > [Enter-Key] # User waits 1 second ... 7 more inputs > [Enter-Key] 输出: > 60 目前的胜利者是KarlKastor在使用Pyth 22个字节 即使获胜者使用的是Pyth,Matlab的答案也是一个值得注意的答案。
30 code-golf 

30
字母楼梯
挑战 您的任务是创建一个程序或函数,该程序或函数在没有输入的情况下输出以下内容: a bb ccc dddd eeeee ffffff ggggggg hhhhhhhh iiiiiiiii jjjjjjjjjj kkkkkkkkkkk llllllllllll mmmmmmmmmmmmm nnnnnnnnnnnnnn ooooooooooooooo pppppppppppppppp qqqqqqqqqqqqqqqqq rrrrrrrrrrrrrrrrrr sssssssssssssssssss tttttttttttttttttttt uuuuuuuuuuuuuuuuuuuuu vvvvvvvvvvvvvvvvvvvvvv wwwwwwwwwwwwwwwwwwwwwww xxxxxxxxxxxxxxxxxxxxxxxx yyyyyyyyyyyyyyyyyyyyyyyyy zzzzzzzzzzzzzzzzzzzzzzzzzz 计分 这是代码高尔夫球,因此每种语言中最短的答案将获胜。

30
一个N×N棋盘上可以放置多少个Wazirs?
假设将名为Wazir 的新童话棋子引入国际象棋。游荡者可以从(x,y)位置移动到: (x +1,y) (x,y +1) (x -1,y) (x,y -1) 也就是说,它们像车子一样正交移动,但一次只能像国王一样移动一步。在N×N棋盘上可以放置多少个这样的游击手,以使两个游击手不能互相攻击? 在1×1的板上,只能有1个这样的棋子。 在2×2板上,可以有2个这样的块。 在3×3板上,可以有5个这样的块。 给定N,返回可以放置在N×N棋盘上的游标的数量。 这是OEIS序列A000982。 更多测试案例 7 → 25 8 → 32 100 → 5000

30
是哪张卡?
介绍 很久以前,当我习惯用普通纸牌对纸牌游戏进行编码时,我曾经为每张纸牌指定一个数字,然后调用带有某个数字的函数来获得一张纸牌。这在某种程度上启发了我去挑战。 因此,对于不了解扑克牌的人来说,一副纸牌由52张纸牌组成(四种花色中的每套13张,即红心,钻石,黑桃,球杆)。每套西装中有13张牌-首先是2-10的牌,然后是Jack(J),Queen(Q),King(K)和Ace(A)。这是命令 挑战 挑战是取1-52之间的整数作为输入并在该位置显示卡。但是,您的输出必须以语言显示。同样,必须保持顺序,即前13张将是红心,然后是钻石,然后是黑桃,最后是俱乐部。 例如,如果有人选择该号码,则30该牌将属于第三套,即黑桃。同样,它将是西装中的第四张牌,即数字5。因此,您的文字输出必须是:five of spades并且应始终遵循此格式,即,首先是该牌,然后是of和,其名称为最后,中间留有所需的空格。 输入输出 输入将是 介于1到52之间(包括两者之间)的整数。请注意,此处的计数从1开始。您可以选择从0开始。但是,您必须维持订单卡。您的输出应该是用文字写在那个位置的卡片。您不需要处理无效的输入。另外,您的输出可能是小写或大写。 以下是所有可能的输入及其输出的列表: 1 -> two of hearts 2 -> three of hearts 3 -> four of hearts 4 -> five of hearts 5 -> six of hearts 6 -> seven of hearts 7 -> eight of hearts 8 -> nine …

27
皮打了你的电话
挑战: Pi应该是无限的。这意味着每个数字都包含在pi的小数部分内。您的任务将是在输入上取一个正整数,并在输出上以pi位返回此数字的位置。 例如,如果输入为59,我们将返回4 这就是为什么:我们将59在pi的数字中查找数字 3.14159265... ^^ 该值从第4位开始,因此输出为4。 其他一些例子: input : 1 output : 1 input : 65 output : 7 input : 93993 output : 42 input : 3 output : 9 规则: 您不必处理前200个数字中不存在的数字 与往常一样,标准漏洞是被禁止的。 这是codegolf,所以较少的字节获胜。
30 code-golf  pi 

20
我可以重新堆放水桶吗?
我的小孩有这样的玩具: 这个玩具包含10个可叠放的小桶,我们将把它从1个(最小的一个)编号为10个(最大的一个)。有时他会堆成小堆,玩具最终变成这样: 我们可以像这样示意地表示堆: 1 6 4 9 2 7 5 10 3 8 ---------- <-- Floor 1 2 3 4 <-- Pile # 或者,换一种说法: [[4,5],[9,10],[1,2,3],[6,7,8]] 通过将较小的水桶堆连续放置在较大的水桶堆中,可以轻松地重新堆叠这组水桶堆以重建原始集(第一个图像): 1 1 6 2 2 7 1 6 3 6 3 8 4 9 2 7 4 9 7 4 9 5 10 3 …

7
生长缓慢的奎因
做个Quine。 看起来容易吧?那么,这个quine必须输出自己加上第一个字符,然后输出自己加上第二个字​​符,依此类推。 这样,木盒可以几代输出两个副本。 示例:让您的代码为x。运行它应该输出x + x[:1]。运行生成的程序应输出x + x[:2],依此类推... 如果您的代码是foobar,运行此应输出foobarf。运行这个应该输出foobarfo。依此类推,依此类推: foobar foobarf foobarfo foobarfoo foobarfoob foobarfooba foobarfoobar foobarfoobarf 您的程序必须长于2个字节,并且每次迭代只能输出自己代码的一个额外字符。
30 code-golf  quine 

14
用火杀死它
免责声明:这个问题中讲的故事完全是虚构的,仅出于介绍目的而发明。 我是一个邪恶的农民,为了提高我所在地区的小麦价格,我决定烧掉我周围所有农民的田地。我真的很想看到田野起火(这样我就可以用邪恶的笑容和欢乐地揉搓我的手),但是我也不想被观察到,所以我需要您模拟田野为我焚化。 你的任务: 编写一个程序或函数,将某个字段作为输入,并返回其燃烧的阶段,直到整个字段变成灰烬为止。着火的特定区域用代表火焰强度的整数表示。火从“ 1”开始,然后继续前进到“ 2”,然后是“ 3”,依此类推。一旦大火达到“ 4”,它将着火的任何直接(非对角线)相邻区域都着火。一旦达到“ 8”,它将在下一次迭代中耗尽,并变成灰烬,以“ A”表示。当尚未被火触及的区域时,以“ 0”表示。例如,如果该字段如下所示: 100 000 您的程序应输出以下内容: 100 000 200 000 300 000 410 100 520 200 630 300 741 410 852 520 A63 630 A74 741 A85 852 AA6 A63 AA7 A74 AA8 A85 AAA AA6 AAA AA7 AAA AA8 AAA AAA …

29
那些贪婪的罗马人!
给定一个严格的正整数,请仅使用加法则返回最短的罗马数字。输出必须MDCLXVI按该顺序包含零个或多个每个字符。14因此,该数字必须为XIIII而不是XIV。 字符的数值为M= 1000,D= 500,C= 100,L= 50,X= 10,V= 5,I= 1。 例子 3 → III 4 → IIII 9 → VIIII 42 → XXXXII 796 → DCCLXXXXVI 2017 → MMXVII 16807 → MMMMMMMMMMMMMMMMDCCCVII

30
对角数!
我们有很多数字的水平轴,但是老实说,我觉得它们很无聊。今天的任务是在输入的两个不同的非负整数之间建立对角轴的一部分。 如何建立对角线轴? 让我们以输入为例0, 5。我们的轴应如下所示: 0 1个 2 3 4 5 但是,对于具有更多数字的数字,我们的轴也应该看起来不错!例如0, 14,如果输入为,则新轴应为: 0 1个 2 3 4 5 6 7 8 9 10 11 12 13 14 这个想法是,轴上下一个数字的第一位必须始终准确地放在前一个数字的最后一位之后。为了更好地理解这个想法,下面是另一个示例997, 1004: 997 998 999 1000 1001 1002 1003 1004 规则 您可以假定输入是升序还是降序(可以在5,3和之间进行选择3,5)。 您还可以假定两个整数之间的差小于100。 您可能有一个换行符开头或一致的空格(在每行上)。尾随空格/换行符也很好。 默认漏洞是禁止的。 您可以采用任何标准均值进行输入并提供输出。 这是代码高尔夫球,因此每种语言中以字节为单位的最短代码胜出! 其他测试用例 1, 10: 1个 2 3 …

30
torrent UI的ASCII艺术
问题 从Torrent程序重新创建UI 在没有输入的情况下,输出以下内容: +----------+----------+----------+ |a.exe |##########|seeding | +----------+----------+----------+ |b.exe 10% |# |leeching | +----------+----------+----------+ |c.exe |##########|seeding | +----------+----------+----------+ |d.exe 20% |## |leeching | +----------+----------+----------+ |e.exe |##########|seeding | +----------+----------+----------+ |f.exe 30% |### |leeching | +----------+----------+----------+ |g.exe |##########|seeding | +----------+----------+----------+ |h.exe 40% |#### |leeching | +----------+----------+----------+ |i.exe |##########|seeding | +----------+----------+----------+ |j.exe 50% …

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.