Questions tagged «code-golf»

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

4
最大不同子字符串数
描述 给定一个长度n和一个字母大小k>0,您的程序必须确定带有最大唯一子字符串数的那些参数的字符串数。在这种情况下k=2,将生成OEIS A134457。 例 例如,2210具有子 ,2,22,221,2210,2,21,210,1,10,和0,总共11。然而,2出现了两次,所以它只有10个独特的子串。 对于包含3个不同符号的长度为4的字符串,此数目尽可能多,但它与其他35个字符串并列0012,总共36个绑定字符串,包括2101,和0121。因此,对于n=4和k=3,您的程序应输出36。 测试用例 n k output 0 5 1 1 3 3 5 1 1 9 2 40 2 3 6 5 5 120

22
交换序列
您的任务是编写一些输出OEIS序列的代码,并在代码(A______)中包含该序列的名称。很容易吧?好了,这很重要,当代码中的序列名称更改为第二个序列的名称时,您的代码还必须输出另一个单独的序列。 输入输出 您的代码可以是一个函数或完整的程序,它通过标准输入法获取n并输出序列的第n个项,该项的第n个项由OEIS页面上提供的索引进行索引。 您必须支持该序列的OEIS b文件中提供的所有值,而不支持b文件中没有的任何数字。 计分 这是 代码高尔夫球。您的分数将是代码中的字节数,字节越少越好。 例 这是Haskell中适用于A000217和A000290的示例。 f x|last"A000217"=='0'=x^2|1>0=sum[1..x] 在线尝试!

5
ASCII 2D游戏地图
问题 给定输入a,其中a是任何输入格式的字符网格,只要对于输出的每个“块”仅具有一个元素即可。 输入b,其中b是与input 大小相同的数字网格a。 道路有两种类型,a代表标有石路,@而2代表标有土路。# 甲@路在块中心的并且大小6x6的,如果道路是相邻的,该侧延伸到网格小区边界 甲#路在块中心的是4×4大小,如果道路是相邻的,该侧延伸到网格小区边界 在输入中输出ASCII字符的行号为8x8的网格偏移量,a并覆盖输入的“道路”,b例如 输入项 a=[[a,b,a],[b,a,b],[a,b,a]] b=[[1,1,1],[2,0,1],[2,0,0]] 输出: 步骤1:网格(input的8x8表示a) aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb bbbbbbbbaaaaaaaabbbbbbbb aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa aaaaaaaabbbbbbbbaaaaaaaa 第2步:用表示的道路覆盖b: aaaaaaaabbbbbbbbaaaaaaaa a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@@@@@@@@@@@@@@@@@a a@@@@@@abbbbbbbba@@@@@@a bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b bb####bbaaaaaaaab@@@@@@b …

11
构造一个置换器
对于这个挑战,您将要制作一个函数(您的函数可能是一个完整的程序),该函数将列表作为输入并返回该列表的排列。您的功能必须遵守以下要求。 它必须是确定性的。 将函数本身与变量进行组合的次数应该可以使列表包含其所有排列。 这是一个代码问题,因此答案将以字节计分,字节越少越好。 进一步规定 你可以采取任何类型的列表,( ,,[Integer] 只要),因为它[String][[Integer]] 可以为非空 可以包含具有至少16个可能值的不同对象。(您不能使用Haskell [()]并声称您的函数是id) 可以包含重复的对象(无集合) 您可以编写程序或函数,但必须遵守标准IO。

6
印刷纵横交错的两根弦
给定一组保证长度相同的两个字符串,请打印其十字形。 两根弦的十字交叉如下。 产生第二个字符串的第二个字符,然后是第一个字符串的第一个字符。 产生第二个字符串的第一个字符,然后产生第一个字符串的第二个字符。 丢弃每个字符串的第一个字符。 如果每个字符串都有多个字符,请返回步骤1。 例如,如果两个字符串是 Truck Tower 该十字交叉是 oTTrwroueuwcrcek 如下图所示。 每种颜色代表不同的纵横交错。数字显示输出中相应字符的索引。

3
找出一个生成所有整数mod q的数字
考虑以模为模的整数q,其中q素数为质数,生成器为任何整数,1 < x < q从而x^1, x^2, ..., x^(q-1)涵盖和q-1之间的所有整数。例如,考虑以7为模的整数(我们写为)。然后覆盖所有值,并根据需要覆盖所有整数。1q-1Z_73, 3^2 mod 7 = 2, 3^3 = 27 mod 7 = 6, 3^4 = 81 mod 7 = 4, 3^5 = 243 mod 7 = 5, 3^6 = 729 mod 7 = 13, 2, 6, 4, 5, 11..6 任务是编写接受输入n并输出的生成器的代码Z_n。当然,您不能使用为您执行此操作的任何内置函数或库。 对代码性能的唯一限制是,您必须已通过测试完成了代码n = 4257452468389。 …

5
戈德巴赫分区增加
哥德巴赫猜想指出: 每个大于2的偶数是两个质数之和。 我们将数字n的Goldbach分区视为两个素数对加到n上。我们关注的数字是戈德巴赫分区的增加。我们用该数字所有分区中最小素数的大小来度量该数字的Goldbach分区的大小。如果此大小大于所有较小的偶数的大小,则数字的分区增加。 任务 给定一个偶数n> 2,确定n是否具有递增的Goldbach分区,并输出两个唯一值,如果是,则输出一个,如果不是,则输出一个。 这是 代码高尔夫球,因此您应努力减少源代码中的字节数。 OEIS A025018

15
我的名字是什么?
给定一个PPCG用户ID,输出该用户的当前用户名。 例子 Input -> Output 61563 -> MD XF 2 -> Geoff Dalgas 12012 -> Dennis foo -> -3 -> 规则 输入/输出可以通过任何允许的方式进行。 输出必须是具有正确大小写和空格的完整用户名,仅此而已。 如果输入的不是有效的UserID或用户不存在,则程序应不输出任何内容或输出错误。 您的程序必须对任何有效用户都有效,即使在挑战之后创建的用户也是如此。 您的程序不必对社区用户有效。 您的程序不必对已删除的用户有效。 不允许使用URL缩短器。 计分 每种语言中最短的代码将获胜。

16
将CMYK值转换为RGB
给定CMYK中的颜色代码,将其转换为RGB值。 输入: 4个整数字符串(0到100之间),以空格分隔 86 86 0 43 28 14 0 6 0 41 73 4 输出: #141592 #ABCDEF #F49043 最短的代码胜出! 提示:要将CMYK转换为RGB,可以使用以下公式: Red = 255 x (1 - Cyan/100) x (1 - Black/100) Green = 255 x (1 - Magenta/100) x (1 - Black/100) Blue = 255 x (1 - Yellow/100) …

18
将列表缩小为最终数字
输入项 数字或数字字符串的列表(数组),如果使用起来更容易。您可以假设列表中始终至少有两个元素,并且每个元素都是自然数(大于零的整数)。 产出 单个数字或数字字符串。 问题 这个想法是通过删除列表的当前阶段中最大数字的最后一位来减少数字的列表,最后以一个数字结尾(即使有多个实例,也应只返回一个数字) 例 [123,343,121,76,465,786] -- The last digit in 786 is dropped, so it becomes 78 [123,343,121,76,465,78] -- New largest number is 465, so the 5 is dropped, making it 46 [123,343,121,76,46,78] -- Repeat until left with one number [123,34,121,76,46,78] [12,34,121,76,46,78] [12,34,12,76,46,78] [12,34,12,76,46,7] [12,34,12,7,46,7] [12,34,12,7,4,7] [12,3,12,7,4,7] …

8
你喜欢跆拳道吗?
崔弘喜于2002年6月15日去世,享年83岁。他创立了跆拳道。 他去世15年后,我想成为一名跆拳道大师。这是我的光芒! 任务 给定一个字符串,您应该输出跆拳道版本。 规则 您将通过任何有效的输入收到一个非空的字符串/句子 您必须用修订的罗马化等效项替换每个标题(不区分大小写)。 您必须, *side kick*在句子末尾加上,因为我喜欢做侧踢。 您必须将此更改后的句子输出为字符串。 这是 代码高尔夫球 您应该努力减少答案的字节数 例子 "I am a Student and I do Taekwondo twice a week" => "I am a Geup and I do Taekwondo twice a week, *side kick*" "I am a Teacher willing to be a President" => …

3
行编辑器(更多文本在这里)
在过去的雾蒙蒙的岁月中,当折叠式终端走到地球上时,那里生活着一种奇怪的生物。奇怪的是残缺不全,但功能却很奇怪,行编辑器以无数的数字遍布整个编程领域。尽可能地覆盖地球。 现在陷入困境。大量的人口狩猎,追捕,并濒临灭绝。只剩下少数标本,大部分都放在开明程度较低的动物园的狭窄而没有装饰的笼子里,尽管在回水博物馆中也可以看到一些填充和镶嵌的例子。哦,那里有ed。 像科学怪人一样,我们将复活高贵的野兽! 指令 我们的编辑器相当小,将支持以下命令 聚焦移动命令 <number>[,<number>]-将焦点移至指定的行,以及是否将第二个参数提供给state列。行号过多将获取最后一行。过多的列号将导致该行的结尾。 ,<number> -移至当前行的列号 e -将焦点移到文件末尾,但不要开始新行。 b -将焦点移到文件的开头。 信息命令 L-回显当前上下文。打印以当前行为中心的五行。所有五行均以一个字符缩进;当前行用“>”标记,其他行用“”标记。在这些行下,将打印另一行,该行完全由空格组成,但当前列中不包括“ ^”(总共打印六行)。 l -回显当前行 p [[<start>],[<end>]]-从起始地址到结束地址打印文件。这些值默认为1和0(文件末尾)。 文件更改命令 A [<text>] -移至文件末尾之外的行(即开始新行)并(可能)附加文本。 <return>(单独)-插入换行符。因此a <return> <return>在当前行之后插入一个换行符。 r <text> -用文本替换从焦点到行尾的所有内容。 i [<text>]-在当前焦点插入文本,后跟换行符。该行中超出焦点的任何部分最终到达下一行。 I <text>-在当前焦点处插入文本,保留其余部分。重点仍然放在这条线上。 d -删除当前行的内容,或者如果当前行已经为空,则删除该行。 j -将这行加入下一个 在最后一组中,前四个结束,焦点移到下一行,而I焦点保留在添加的文本的末尾。删除或合并时,焦点保持在相同的行号和列号。 命令中行号的解释 以“ +”或“-”开头的数字被解释为与当前行号的偏移量。没有符号的数字被解释为绝对行号,除了'0'表示文件的最后一行。 提示与互动 编辑器用作外壳,提示符具有以下形式:<line>','<column>'>'line是行号,但当焦点位于文件的最后一个字符时使用“ end”。 仅当用户按下换行符时才接受每个命令。并产生影响。 Readline支持是允许的,但不是必需的。 除非在命令描述中明确说明,否则除非提示中和的更改值,否则不提供反馈。 计分 这是 …
9 code-golf 

5
我给正确的一和零组合发短信
我最近在歌曲“ 我是Textpert”中列出了有关开车时发短信的信息,歌曲中的某一行激发了这一挑战。 我从来不会弯腰到发短信的照片,而是发给正确的组合“ 1”和“ 0” 现在显然,这几乎是一件不可能的事情,因此您应该通过编码一个程序来做同样的事情来帮助全世界的textperts。 您的工作是获取具有500x500像素尺寸的图像文件的名称,并将该文件输出为二进制文件。如果语言支持,也可以将图像作为输入。 您可以使用带有扩展名的图像文件 .jpg .png .gif .bmp .svg 让我向不了解我的意思的人演示如何将图像转换为二进制图像。 步骤1 取文件中的第一个像素,并将其RGB值检索为3个十进制数字:R,G和B。例如,假设第一个像素为255,0,0(红色)。 第2步 将每个数字转换为其8位二进制表示形式,然后连接为单个24位数字。例如,这产生111111110000000000000000 第三步 将这个24位数字添加到最终输出中。因此,最终输出应是6000000位长,并应包括完全1和0 这是一个 代码高尔夫球 最短的代码胜出!

1
创建类似Muriel的语言和实现
Muriel是一门唯一循环的语言,它是创建并执行木盒。您的工作是使用此属性创建您自己的语言,并使用预先存在的语言来实现它。 我们将定义类似Muriel的语言,如下所示: 它有一个内置命令,可以用自己的语言执行代码,类似于Muriel的@命令或python的命令exec。 图灵完成了。 如果删除内置执行命令,则该命令不再是图灵完成的。 Muriel具有类似Muriel的@内置执行命令。蓝精灵也像Muriel一样(其内置执行命令是x)。Python 不像 Muriel那样,因为如果删除,它仍然是Turing完整的exec。 您的工作是创建类似于Muriel的编程语言,然后以您选择的语言提供其实现。您的分数就是实施的长度,您要尽量减少该长度。 笔记: 您的内置执行不需要像Muriel那样完全起作用。取决于您如何处理子程序的终止,错误,作用域等。 您编写的实现的语言本身不能像Muriel那样。(这是@无效的条目。)它也必须在此帖子之前存在。

4
信件之战
您的任务很简单:告诉我谁赢得了信件之战。 部队 下表总结了这场战斗中的三个不同“部队”。 name | health | damage A 25 25 B 100 5 C 10 50 您可以使用任何三个唯一字符代表部队,但必须指定他们是否不是这些字母。 战争 假设我们有一个简单的战斗: ABC # army 1 CBA # army 2 每支部队反复向最左边的单位开火,直至死亡。然后他们向右移动,然后重复。所以,军队2次攻击A中军1,直到A死了,然后移动到B,然后C。第1军C先进攻,然后B再进攻A。假设军队同时进攻,因此,如果部队在回合之前还活着,他们将始终开火,并且可以在同一时间互相杀死。他们从左到右依次射击。 战斗将这样进行: ABC CBA BC # A (25 hp) killed by C (-50 hp), B (100 hp) attacked by B (-5 hp) …
9 code-golf 

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.