Questions tagged «code-golf»

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

17
随机像素戳
您的任务很简单:编写一个程序,用白色像素替换黑色16px * 8px矩形(宽度乘高度)中的随机像素。 孔必须均匀一致,并且您应该输出插入了白色像素的16px x 8 px图像。 每列仅替换1个像素(总共16个替换像素) 您不做任何输入,也不能依赖存储在计算机其他位置的图像。 这是代码高尔夫球,因此字节数最短的程序将获胜!

9
是在康托集内吗?
挑战 对于这个挑战,您应该确定Cantor集中是否有给定的数字。首先,让我们定义Cantor集。 首先,从0到1之间的数字开始。超出此范围的任何数字均不在Cantor集中。现在,让我们将数字分为三个相等的部分:[0,1 / 3],[1 / 3,2 / 3],[2 / 3、1]。不在第一部分和最后一部分范围内的任何数字都不在Cantor集中。现在,对段[0,1 / 3]和[2/3,1]重复此过程。然后,您重复剩余的内容。您会永远这样做。最后,所有剩余的数字都在Cantor集中。这是前六个迭代的图表: 输入值 两个整数x和y。 0 < y < 2^15 0 <= x <= y 最大的共同点x和y为1,除非x == 0。 输出量 如果x/y在Cantor设置中,则为真。 如果x/y不在Cantor集合中,则为假。 例子 现在,让我们看一下Cantor集中的一些数字示例。 1/3 -> true 它在边界上,并且边界永远不会删除。 1/4 -> true 1/4永远不会位于细分的中间三分之一,尽管它也永远不会位于边界上。如果遵循它的路径,您实际上会发现它在节的前三分之一和后三分之一之间交替出现。 1/13 -> true 1/13 在第一部分,第一部分和最后一部分之间切换。 1/5 -> false 1/5 …

13
拉链乘法
介绍 让我们定义一个新的算术运算,我称之为拉链乘法。要用拉链将两个非负整数相乘,请添加前导零以使长度匹配,将数字的相应前十个数字相乘,在结果中添加前导零以得到2位数字,将它们连接起来,最后删除前导零。 这是A = 1276和B = 933024的示例: 1. Add leading zeros A = 001276 B = 933024 2. Multiply digit-wise A = 0 0 1 2 7 6 B = 9 9 3 0 2 4 -> 0 0 3 0 14 24 3. Pad to 2 digits -> 00 …

7
数字键词搜索
给定一个介于1到999之间(含1和999)的整数,如果它在标准数字键盘上的3x3正方形数字1-9中的任何位置水平,垂直或对角地向前或向后出现,则输出真实值: 789 456 123 如果没有出现该数字,则输出一个伪造的值。 您需要输出真实值的确切65个数字是: 1 2 3 4 5 6 7 8 9 12 14 15 21 23 24 25 26 32 35 36 41 42 45 47 48 51 52 53 54 56 57 58 59 62 63 65 68 69 74 75 78 84 85 86 …

7
采样随机非递减序列
输入:两个整数n和k,以便于代码输入的任何形式给出 输出由k个整数组成的随机非递减序列,每个整数的范围为1到n。应该从k个整数的所有非递减序列中均匀选择样本,该整数的范围在1到n之间。 输出可以采用您认为方便的任何合理格式。 您可以使用自己喜欢的库/语言提供的任何伪随机生成器。 我们可以假设整数n,k> 0。 例 假设n,k =2。非递减序列为 1,1 1,2 2,2 每个序列应具有输出概率1/3。 限制 对于k = 20和n = 100,您的代码应在不超过几秒钟的时间内运行。 什么不起作用 如果仅从1到n范围内随机采样每个整数,然后对列表进行排序,则不会获得均匀分布。

3
土豆去皮
这是土豆: @@ @@@@ @@@@@@ @@@@@@ @@@@ @@ 更一般而言,将大小为N的马铃薯定义为以下形状: 如果N是偶数,则它是2个居中@符号,然后是4个居中@符号,然后是6个居中@符号,一直到N个居中@符号;然后,N为中心的@符号,后面是N-2为中心@的符号中,所有的方式下降到2。 如果N是奇数,在如上述描述的相同的方式产生一个大小为N马铃薯,但我们开始用1个@符号,而不是2 。 从右上角开始将土豆去皮@,然后按逆时针方向移动每个步骤一个标志。例如,去皮3号土豆看起来像这样: @ @@@ @@@ @ ​ @@@ @@@ @ ​ @@ @@@ @ ​ @@ @@ @ ​ @@ @@ ​ ​ @@ @ ​ ​ @ @ ​ ​ ​ @ ​ 挑战 编写一个程序,给定一个整数输入,该程序将显示削皮该尺寸土豆的所有步骤。 允许尾随空白/换行符。 计分 这是代码高尔夫球;以字节为单位的最短代码为准。 样本测试用例 …

11
找到酋长国!
一个反质数是一个非回文素这,逆转的时候,也是素数。 可以在OEIS上找到基于10个emirps的列表。前六个是: 13, 17, 31, 37, 71, 73 但是,由于有逆转规则,每个基地的延期都不相同。例如,前六个二进制事件是: Bin | 1011, 1101, 10111, 11101, 101001, 100101 Dec | (11 , 13 , 23 , 29 , 37 , 41 ) ...以十六进制表示,它们是: Hex | 17, 1F, 35, 3B, 3D, 53 Dec | (23, 31, 53, 59, 61, 83) 有趣的事实:一元没有小事,因为每个数字都是回文。 挑战 …

24
围绕画布的8位弹跳球
受《 Commodore 64用户指南》中此清单的启发: 10 PRINT "{CLR/HOME}" 20 POKE 53280,7 : POKE 53281,13 30 X = 1 : Y = 1 40 DX = 1 : DY = 1 50 POKE 1024 + X + 40 * Y, 81 60 FOR T = 1 TO 10 : NEXT 70 POKE 1024 …

8
可视化排序
假设我有一个列表,例如[3, 0, 4, 2, 1],并且使用选择排序对其进行排序,则可以像这样可视化它: 3,0,4,2,1 |-| 0,3,4,2,1 |-----| 0,1,4,2,3 |-| 0,1,2,4,3 |-| 0,1,2,3,4 挑战在于如何可视化排序。 输入值 您的输入将是一个正整数列表,可以使用任何您喜欢的格式。 任务 您的提交应通过一次仅交换两个元素来对输入列表进行排序,并且每次交换时,提交应显示该列表,并在要交换的每个元素下显示一个字符。如果交换的数字多于一个数字,则该字符可以位于其下方的任何位置。最后,提交内容应显示排序列表。 其他规定 排序必须使用少于n 4的交换,其中n是列表的长度。 排序不必是确定性的。 交换下的字符可以是除空格以外的任何字符。

25
空格编号
给定一个N非负整数列表,输出这些数字,每个数字用空格左填充,长度为N。(或者,返回一个字符/字符串列表。)您可以假定该N数字大于或等于列表中最大数字的位数。输出中允许尾随空格。 您也可以使用包含这些数字N的字符串,但不是字符串的长度,而是列表中元素的数量。同样,您可以获取字符串列表,例如["1", "2", "3"]。 这是一个代码高尔夫球,因此以字节为单位的最短程序获胜。 测试用例 input => 'output' 0 => '0' 1 => '1' 2 3 => ' 2 3' 2 10 => ' 210' 4 5 6 => ' 4 5 6' 17 19 20 => ' 17 19 20' 7 8 9 10 => ' 7 8 …
20 code-golf  string 

20
查找列表的“递归大小”
启发自查找列表的“展开大小”。 将RS不包含任何列表的列表的“递归大小”定义为其长度(包含的项目数),将包含任何列表的列表的“递归大小”定义为其长度与这些列表的递归大小之和。 挑战 编写一个程序或函数,以尽可能少的字节输出任何给定列表的递归大小。 输入是一个列表,可以包含数字,字符串(如果您的语言中有字符串)和类似列表。 例如: RS([]) = 0 RS([[]]) = 1 RS([4, 5, 6]) = 3 RS(["four", "five", "six"]) = 3 RS(["[[[[]]]]", "[][][][][]", "][][[[]]][]["]) = 3 RS([[4, 5, 6]]) = 4 RS([["four", "five", "six"]]) = 4 RS([["[[[[]]]]", "[][][][][]", "][][[[]]][]["]]) = 4 RS([[4], [5], [6]]) = 6 RS([["four"], ["five"], ["six"]]) …

30
显示数字时钟
显示数字时钟 (我看到时钟挑战很多,我已经尝试阅读所有挑战,我敢肯定这是独一无二的) 写一些代码,不断更新的格式显示一个数字时钟h:m:s,其中h,m和s可以占据每1个或2个字符。简单的限制如@BlueEyedBeast所说的,我基本上希望它代替显示的时间。 不允许换行 允许尾随空格 不允许其他尾随字符 不应错过任何秒数(不允许57-> 59) 允许以“ 0”开头的数字,只要它们不超过2个字符 该代码不得接受任何输入 如果您的语言在没有输入的情况下无法获取当前时间,则可以使用标准允许的方式,最多输入8个字节 输出必须是stdout 这是codegolf,所以最短的答案就是成功! 例 我正在使用一种名为*> <>(海星)的语言,因为在> <>中(例如,等待文件I / O)无法使用此类程序。这是其中一个正在工作的数字时钟程序(已取消存储)。该程序用*> <>编写: s":"m":"hnonon" "ooo88888888888ooooooooooo1S 注意:除了s =秒,m =分钟,h =小时,S =睡眠(100ms * x)之外,其他所有内容均与> <>相同。 输出: 14:44:31 每100ms更新一次,直到终止。 不允许的例子 不允许以下内容: 1: 14:44:3114:44:32 2: 14:44:31 14:44:32 3: 14:44:31 14:44:32 时间必须保留在输出的第一行上,并且没有可见的尾随字符。但是,清除终端将被允许,因为它仍然没有任何尾随字符。
20 code-golf 

5
一个显示咖啡馆分组营业时间的标志
您可能已经在各种商店的门上看到这些标志: 营业时间 周一至周五 0900-1800周日1100-1530 这里的任务是从整个星期的开放时间列表中生成一个类似的符号,将具有相同开放时间的连续天分组。请注意,一周被认为是连续的。 输入: 7个元素,代表每周从星期一开始的每天的开放时间。 每个元素都是一个字符串,格式为XXXX-XXXX 输入示例: 0900-1800 0900-1800 0930-1730 0930-1730 0900-1500 1100-1500 1100-1500 可以将输入作为数组发送(例如,如果您不从stdin中读取,则作为函数的输入) 输出: 营业时间列表,其中具有相同营业时间的连续天显示为一个范围。请注意,星期日(最后一天)和星期一(第一天)也是连续的几天。 一天的营业时间与之前或之后的日子没有类似的一天是自己打印的 将日期指定为三个小写字母:周一周二周三周四周五周日 请记住,输入中的第一个元素对应于mon,紧挨着tue等。 营业时间如输入所示 两个例子 mon-fri 0900-1800, sat-sun 1100-1500 mon-wed 1030-1530, thu 100-1800, fri-sun 1200-1630 应该对输出进行排序,以便范围按照星期几的顺序显示。最好将星期一放在首位,但由于一周结束,所以它可能不是分组中的第一位。因此,在这种情况下,周二是第一个范围。 tue-fri 0900-1800, sat-mon 1100-1500 除非连续,否则不要分组,这里星期三和星期五的开放时间相同,但是与星期四分隔开的开放时间不同,因此它们是自己列出的。 mon-tue 1000-1200, wed 0900-1500, thu 1000-1800, fri 0900-1500, sat-sun 1000-1500 …
20 code-golf 

12
KITT汽车ASCII艺术
80年代的电视连续剧《骑士骑士》采用了一种名为KITT的智能自我意识汽车。车上的一个独特的方面是安装在前部,允许KITT“看见”(这看上去扫描条形迹可疑熟悉的另一扇,早期的电视连续剧)。 如图所示,扫描仪有八盏灯: 灯光“移动”,如该动画图像所示。 正如您现在所猜到的,您的任务是使用ASCII艺术作品中的移动灯重新创建扫描仪栏。 挑战 给定一个整数t,输出该时刻扫描器栏的状态,定义如下: 扫描仪由八个灯组成。 在任何时刻,其中一个灯都处于活动状态,并显示为#。那名有时活性灯t-1和t-2现在变暗,并且被示出为+; 除非它们与当前活动的一致。其余指示灯熄灭,显示为-。 活动指示灯从左到右移动,然后从右到左移动。 每个的确切输出在t下面详细说明。 0 --> #++----- % The leftmost light is active, and it just came from the right. % The two neighbouring lights are dimmed 1 --> +#------ % The active light has bounced to the right, and it is covering …

6
进行ASCII扑克筹码堆栈安排
扑克有如何安排筹码的礼节,通常是在锦标赛中执行的-筹码可能不会因为落后于对手而被对手“隐藏”起来,主要是为了不隐藏某些大面额筹码。 挑战 我们将要使用ASCII玩扑克,因此我们需要编写一个函数或程序,给定其总值,该函数或程序将绘制ASCII芯片堆栈的排列n。 输入 -一个正整数,n(最多2**32-1应处理) 输出 -堆栈定义的ASCII表示,如下所示。 它可能在每行的右边包含空格,以使任何行都不能比最长(底部)行中可打印字符所使用的长度多一个字符。 它可能包含一条尾随的换行符;而 代表芯片的字符可以是小写,如果你喜欢。 堆栈安排将: 给定面额,包含尽可能少的筹码(请参见下文); 在“堆栈”(列)中将具有同等价值的筹码; 订购时,较短的烟囱在较高的烟囱的右边;和 进行订购,以使面额较大的筹码堆叠在等量的面额较低的堆叠筹码右边(表示它们对我们右边的对手是可见的) 芯片本身应以单独的字符表示,以标识其颜色: White : 1 = W Red : 5 = R Green : 25 = G Black : 100 = B Yellow : 500 = Y Pink : 1K = P Orange : 5K = …

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.