编程拼图和代码高尔夫

编程益智爱好者和代码高尔夫球手的问答

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 

30
输入和下一个最高平方之间的值数
给定正平方数作为输入。输出输入和下一个最高平方之间的值数。 例 输入1 输出2 原因:数字2和3在1和4之间,下一个最高的正方形 输入4 输出4 原因:数字5、6、7、8在4到9之间
9 code-golf  math 

10
扩大澳大利亚州
澳大利亚有8个州和地区,每个州和地区的字母缩写为2或3: ACT:澳大利亚首都领地 新南威尔士州:新南威尔士州 NT:北领地 昆士兰州:昆士兰州 SA:南澳大利亚 塔斯马尼亚州(TAS):塔斯马尼亚州 VIC:维多利亚 西澳大利亚州:西澳大利亚州 您的任务是编写一个函数/程序,该函数/程序必须使用有效的澳大利亚州大写字母缩写,并返回正确的全名(如上所述,区分大小写)。 除单个尾随换行符外,不允许有多余的空格,这是该语言中每个程序不可避免的副作用。 例如: f("TAS") => "Tasmania" 标准 代码高尔夫球 规则(以字节为单位的最短代码为准!),并且存在漏洞。

6
盯着位
用椭圆和棍棒打印二进制值不是一件容易的事...为了帮助实现这一点,您必须编写一个以自定义二进制表示形式打印数字的函数(或程序)。 因此,我想取一个数字,例如3(00000011),并以用户定义的格式输出位,例如以空格分隔的对: 00 00 00 11 或者说,以相反的顺序并带有一些装饰器,例如: 11_00_00_00 此外,必须有可能将“ 0”和“ 1”显示为自定义字符,以更好地区分它们,例如: XX oo oo oo 因此,面临的挑战是编写在以下规范中做到这一点的代码。 规格 该函数接受如下输入: f(A,mask,zeros,one) 参数: A-输入数字-0-255范围内的任何(无符号)整数。 mask-一个字符串参数,用于定义输出的结构。 零 -长度相同的字符串,为每个输出插槽定义``零''字形。 那些 -的长度相同的字符串,对于每个输出时隙定义“一”字形。 输出构造规则: 仔细查看该图像,并结合示例了解如何生成输出: 因此,仅解析掩码中的单个数字,并用A的相应位代替,其他字符则保持原样。此外,如果采用位的值为1,则在最终输出中显示为“ X”,如果为0,则显示为“ o”。在上面的示例中,所有四个位均为“ 1”,因此我们在所有时隙中看到“ X”。 如果输入数字为128,则在逻辑上输出为X foo bar ooo。参数“零”和“一”中的字符:任何可打印的ASCII字符,假定它们始终与掩码字符对齐。 注意事项: 位从0开始索引:第0位是MSB。 假定掩码字符串中不允许使用数字8,9。 输入字符串包括任何可打印的ASCII字符。 “零”和“一个”与遮罩对齐。 对于您语言中的特殊字符/修饰符:我们可以假定它们不会出现在输入字符串中。 为了清楚起见,请参见更多示例。 输入->输出示例 用空格定界符以通用顺序输出所有8位,并以普通的椭圆和棍子符号表示: mask = "0123 4567" …

4
再次提醒我?
介绍 听说过提醒吗?没有?直到大约2年前,我才这么做。它的基本前提是教师发出提醒并与学生进行交流。很整洁吧?它甚至允许您发送表情并对消息做出反应!我每天都会这样做。 但是,关于提醒的一件事是,老师总是发送“做功课!”。“如果不这样做,您将得到F!”。但是,也有一些有用的东西,例如“星期二测试”或偶尔的“祝您愉快!”。我几乎总是对竖起大拇指表示满意,但有时,我不得不竖起大拇指。 挑战 今天的任务是找出消息是否具有一定含义。如果它具有肯定的含义,请竖起大拇指回复。如果它具有否定含义,请以大拇指朝下答复。 我应该如何发现内涵? 正含义通常包含3个字。这三个词是:快乐,好和通过。 负数也将包含3。那3:测试,失败和家庭作业。 我要测试什么? 您正在测试以查看邮件中是否包含肯定,否定或两者含义。 如果消息具有肯定的含义,请继续操作并返回unicode 码点以供竖起大拇指(U + 1F44D)。 如果它具有否定含义,请返回拇指朝下的Unicode代码点(U + 1F44E)。 如果消息同时具有否定含义和肯定含义,请返回中性面孔(U + 1F610)的代码点。 如果由于其他原因没有任何含义,则返回一个很好的耸耸肩(¯__(ツ)_ /¯)。如果耸肩没有正确显示,这是耸肩的Emojipedia链接 约束条件 程序必须将一条消息作为输入。 正含义必须返回大拇指代码点(U + 1F44D) 负含义必须返回大拇指朝下的代码点(U + 1F44E)。 如果消息具有两个含义,请返回中性面部代码点(U + 1F610)。 如果消息没有含义,则返回耸肩(¯\ _(ツ)_ /¯)。 这是 代码高尔夫球,最短字节获胜 测试用例。 Input -> Output Happy Good Friday! -> U+1F44D Congrats, you just …

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.