编程拼图和代码高尔夫

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

4
Sobel边缘检测器
您的任务是编写一个获取输入图像的程序,并通过边缘检测将其运行以成为输出图像。 边缘检测的工作原理如下(如果不清楚,请参阅sobel边缘检测): 像素的值是像素的总亮度,因此,如果它是彩色的,则需要先将其转换为灰度(为使操作简单且易于打高尔夫球,可以取R,G和B)。 像素p (i,j)的 G x和G y的公式为: G x = -1 * p (i-1,j-1) -2 * p (i-1,j) -1 * p (i-1,j + 1) + 1 * p (i + 1,j -1) + 2 * p (i + 1,j) + 1 * p (i + 1,j + 1) G …

7
信号中断脉冲
奎因(Quining)历史悠久-如果您从未听说过,请单击该标签并对其进行一些阅读。 你的任务 输出无限个1s(没有其他间隔[换行符,空格等])的序列,直到调用UNTIL SIGINT(通常为CTRL-C)。调用时,输出程序源。 规则 它必须是有效的密码: 没有从磁盘读取源。 查看与奎因丝有关的所有其他标准漏洞。 您可以使用任何语言。 因为这是代码高尔夫球,所以最短的答案就是成功!
12 code-golf  quine 

1
星期一迷你高尔夫7:简化成分测量
星期一迷你高尔夫:每周一发布(希望!)一系列简短的代码高尔夫挑战赛。 对不起,来晚了;通过写出与之重复的不同想法,我意识到了90%的方法。 我的家人很大,所以我们吃很多食物。我们通常需要加倍,加倍甚至加倍的食谱来制作足够的食物!但是,将测量值相乘可能会很痛苦,因此,有一个程序可以为我们做到这一点很高兴。 挑战 您面临的挑战是创建一个程序或函数,该程序将数字N和字母L作为度量值,并返回相同的度量值,并尽可能简化。这是必需的度量单位(像我的家人一样,都是美国人)及其对应的字母: 1 cup (c) = 16 tablespoons (T) = 48 teaspoons (t) 1 pound (l) = 16 ounces (o) 1 gallon (g) = 4 quarts (q) = 8 pints (p) = 128 fluid ounces (f) “尽可能简化”是指: 使用最大的测量单位。每个单元的余数可以为1 / 4、1 / 3、1 / 2、2 / 3或3/4。 如有必要,将结果转换为带分数。 …

3
散季
我健身房的杠铃看起来像这样: =========[]-----------------------[]========= 它们可以容纳五种不同尺寸的盘子,分别为2.5磅,5磅,10磅,25磅和45磅: . . ! | . ! | | | | | | | | ' ! | | | ' ! | ' 为了安全起见,我们还会在所有板子的外部添加一个夹子]或夹子[。酒吧本身重45磅。我们总是将最重的印版放置在最靠近中心的位置,任何印版之间都没有间隙,并在两边放置相同的印版。我们也总是尽可能地使用最小数量的板,例如,我们绝不会在一侧使用两个五磅的板,而不是一个十磅的板。因此,如果我想举起215磅,我的杠栏应该是这样的: . . .!| |!. !||| |||! ====]||||[]-----------------------[]||||[==== !||| |||! '!| |!' ' ' 您的代码(一个函数或完整的程序)必须取45到575之间的整数(始终为5的整数),并输出加起来等于该权重的小节。例如: 输入: 45 输出(请注意,空栏上没有剪辑): =========[]-----------------------[]========= 输入: 100 输出: ! ! …

5
避免在五个简单程序之间重复字母
您面临的挑战是为以下五个任务编写5个不同的完整程序: 打印 Hello, World! 给定带有STDIN的输入,输出阶乘,可以假定输入是> = 0的整数 给定整数N,计算素数之和<= N 给定带有STDIN的输入,输出在输入中使用的字母。例如:输入为Hello world,则需要输出helowrd。请注意,输出为小写。您可以假设输入始终是带有空格的字母,空格将被忽略。 完全像这样输出以下菱形: * *** ***** ******* ***** *** * 所有这些挑战可能非常容易,但是有一个陷阱。您使用的每个字母都不能在其他程序中再次使用。这不是禁止的,但是会给您+8个字节的罚款。例如,如果这是您执行第一个任务的程序: print("Hello, World!"); 那么你就不能使用下列字母(大写或小写形式): ,p,r,i,n,t,h,e,l,,o 在其他程序。如果必须使用它们,则可以“购买”每个字母8个字节。因此,如果您想在另一个程序中再次使用该字母,则会受到8个字节的惩罚。支付罚款后,您可以在此程序中随意使用每个字母。其他字符无关紧要。另外,所有5个程序都应使用相同的语言。wdl 这是代码高尔夫球,因此最少的字节数会获胜!

3
萝卜。所以。许多。萝卜
该死的,那是很多胡萝卜。 灵感来源 任务 您必须创建一个程序,以尽可能多的语言,将每个实例替换^为markdown格式的链接(这意味着如果我将其发布在答案中,它将自动将其读取为图像并将其放置在图像中的的话)这种朝上的胡萝卜。 如何使用上述格式: 首先,在文件中的任何位置,像这样放置链接(这是我针对此问题所做的操作): [1]:http://i.stack.imgur.com/mecHl.png 然后,无论您在哪里想要它: [![] [1]] [1] 规则 适用标准漏洞。 输入将通过STDIN或等效输入。 输出将通过STDOUT或等效输出。 您的代码必须是您使用的所有语言的完全可运行的程序。 你用你的胡萝卜的URL并没有必须是一个在这个答案。这只是一个例子。您可以使用任何 URL,只要SE的Markdown可以显示该特定的胡萝卜。 这是一个多语言的挑战,因此使用最多的胡萝卜语言的答案会成功! 如果是平局,则以语言数量最多的条目的最短代码大小为准。 编辑: 另外,请勿使用琐碎的语言衍生词!这意味着使用替代语言(Brainfuck与ShadyAsFuck)和不同的语言版本(Python 2与Python 3)。 有很多适合的琐碎小东西(包括9001 BF变体) 别那样 注意:是的,在支持正则表达式的语言中,该程序将显得微不足道。但是,竞争是看竞争对手可以使用几种语言。

2
Beta的雪花
挑战 冬季快到了,许多地方都接受了15/16赛季的第一场降雪,那么为什么不突破制雪机并给自己编码一些雪呢? n通过STDIN 给定整数,请在level上输出ASCII表示Beta的雪花(如下所述)n。 Beta的雪花 雪花从0级开始,带有一个x: x 然后,在每个角上添加以下形状之一: x xx 您将上面的形状添加到右上角。对于右下角,将其顺时针旋转90°,对于左下角,顺时针旋转180°,对于左上角,顺时针旋转270°。 如果这样做,您将得到以下形状: x x xx xx x xx xx x x 注意形状的方向。继续,使用上述方向规则,将更多形状添加到每个角上,以得到第2级: x x x xxxxxxx xx x x xx xxx xxx xx x xx xxx xxx xx x x xx xxxxxxx x x x 请注意,仅将形状添加到x具有两个或更多裸露侧面(称为上方的角)的。 n对于大于1的值,L形可能会重叠,例如: 如果级别0为: x x …

1
旋转螺旋
给定一个代表字符螺旋的文本正方形,旋转它! 螺旋从中心开始,并逆时针移动到外边缘,从中心左侧开始: 987 216 345 这将转换为字符串123456789。轮换做向左,所以如果你转动它一个位置,这将是234567891。这表示为: 198 327 456 输入值 输入由螺旋线和旋转距离组成。 距离将始终为正整数或零,并且可以以您的语言的数据类型限制为上限。 螺旋线应视为一个字符串,并带有您选择的行定界符(不包括定界符)。它始终是一个正方形,不包括定界符,并且边长为奇数。 假设所有字符都是字母数字[A-Za-z0-9]。 输出量 输出是旋转的螺旋。它应该是多行的正方形(无论是打印还是退回)。 例子 输入值 3 tne atd bin 输出量 bat nit den 输入值 18 efilr naepo umshf tootr butte 输出量 rettu omseb oofft trliu hpean 这是代码高尔夫,分数照常以字节为单位。
12 code-golf  string 

12
玩消除游戏
介绍 在这个挑战中,您的任务是模拟某种消除游戏。在游戏中,参与者围成一个圆圈,每个人都拿着一个整数。在游戏的每一轮中,每个参与者都指向该人n走开(如果n他们持有的人数)。如果n为正,则在其右边进行计数;如果n为负,则在其左侧进行计数;如果n为零,则它们指向自己。每个有人指着他们的参与者都将被淘汰,并离开圈子。这结束了回合。巡回赛一直持续到没有参与者离开为止。 输入值 您的输入是非空整数列表,采用任何合理格式。它代表游戏参与者持有的数字。 输出量 您的输出是直到游戏结束为止的回合数。 例 考虑输入列表[3,1,-2,0,8]。在第一轮中,发生以下情况: 持有人3指向持有人0。 持有人1指向持有人-2。 持有人-2指向持有人3。 持有人0指着自己。 持有人8指向持有人的权利-2(列表代表一个圆圈,因此在末尾环绕)。 ,这意味着0,-2和3被淘汰,所以第二轮与清单进行[1,8]。在这里,1指向8,然后8指向自己,因此8被消除。第三轮与清单进行[1],在那里1只需要点在自理和消除。经过三轮淘汰所有参与者,所以正确的输出是3。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 [3] -> 1 [0,0,0] -> 1 [-2,-1,0,1,2,3,4,5,6,7] -> 2 [5,5,5,6,6,6] -> 2 [3,-7,-13,18,-10,8] -> 2 [-7,5,1,-5,-13,-10,9] -> 2 [4,20,19,16,8,-9,-14,-2,17,7,2,-2,10,0,18,-5,-5,20] -> 3 [11,2,7,-6,-15,-8,15,-12,-2,-8,-17,6,-6,-5,0,-20,-2,11,1] -> 4 [2,-12,-11,7,-16,9,15,-10,7,3,-17,18,6,6,13,0,18,10,-7,-1] -> 3 [18,-18,-16,-2,-19,1,-9,-18,2,1,6,-15,12,3,-10,8,-3,7,-4,-11,5,-15,17,17,-20,11,-13,9,15] -> 6

30
从字符串中删除重复的单词
从输入的句子中删除所有重复的单词。 输入将类似于cat dog cat dog bird dog Snake snake Snake,输出应为cat dog bird Snake snake。始终会有单个空格分隔单词。 输出顺序必须与输入相同。(请参阅示例) 您不需要处理标点符号,但需要处理大写字母。
12 code-golf  string 

3
曼哈顿数学
我定义以下运算符: 曼哈顿加法 a + M b(对于一位数字)是将b连接到a的结果。因此,a + M b = 10a + b。因此,通用运算符+ M的定义如下: a + M b = 10a + b 曼哈顿减法 a – M b(对于一位数字)是从a中删除最后一个b的结果。因此,运算符– M的定义如下: a – M b = a最后删除b 曼哈顿乘法 a× M b是用b的b实例替换a中的b的所有实例的结果。因此,× M在伪代码中定义为: a× M b = a-> s / b / <b b> …

3
生成单调函数
总览 在此挑战中,您的任务是在两组之间随机生成单调数学函数。 输入值 您的输入是两个正整数s和n。 让这些输入后,你的程序将生成一个随机的数学函数f从集合到。换句话说,是一个“规则”,它在和之间取一个整数元组,并返回一个这样的整数。此外,在以下意义上应该是单调的。如果和是对每个坐标都成立的两个元组,则。{0,1,...,s-1}n{0,1,...,s-1}fn0s-1fABnA[i] ≥ B[i]if(A) ≥ f(B) 单调函数的确切分布f无关紧要,只要每个这样的函数具有正的生成概率(假设一个完美的RNG)即可。 输出量 您的输出应为的输入和输出的枚举f。它应包含n介于0或之间的所有整数元组,并s-1以某种顺序排列,每个整数后跟的对应输出f。确切的输出格式是灵活的(在合理范围内)。 例子 输入s = 3并n = 2可能产生输出 (0, 0) 0 (0, 1) 1 (0, 2) 2 (1, 0) 0 (1, 1) 1 (1, 2) 2 (2, 0) 1 (2, 1) 1 (2, 2) 2 它只对集合中的所有对都包含{0, 1, 2}一次,并且每个对之后都f带有-value。也满足单调性条件。元组在这里按字典顺序给出,但这不是必需的。 再举一个例子,s = …

5
兄弟,再见!
我们大多数人迷失了记忆,他们记得戴斯蒙德必须在每108分钟内键入一个字符“ 4 8 15 16 23 42”,否则世界将终结(或者会终结?)。 这里的挑战是创建一个程序,该程序通过要求每108秒输入一次4 8 15 16 23 42输入或显示消息来执行相同的操作 Sorry, the world has ended with status code -1 它应该在100秒时警告用户他们需要输入带有消息的数字 Enter, Quick! 该程序必须能够随时读取输入,如果输入正确,它将重置计时器。如果输入错误,则什么也不会发生。 该程序应无限期运行。所以最后一个有效输入之后的时间线看起来像 从0到99秒:无输出 100秒:Enter, Quick! 108秒:Sorry, the world has ended with status code -1。 这是代码高尔夫球,因此完成此任务的最短答案(以字节为单位)将获胜!祝好运!

4
救救飞行员!
题 我们被他们的空间站上的机器人军队俘虏了。我们的太空船飞行员在1级监狱中。只有一种逃生方法,它正在救助您的太空船飞行员。这意味着要从N级升级到1级。但是,由于这样做非常危险,因此您需要以最少的步骤进入监狱。 条件 有四种移动方式: 从N级移至N-1级 e.g. from 12 to 11 从N级移至N + 1级 e.g. from 12 to 13 使用从2k到k等级的传送 e.g. from 12 to 6 从3k级到k级使用传送 e.g. from 12 to 4 传送仅是单向的(可以从12变为4,但不可能从4变为12) 每一步都迈出一步 输入值 输入应从STDIN或您编程语言中最接近的替代版本中读取。输入包含一个整数n,其中1 <= n <= 10^8。 输出量 输出应该是n达到第1级所需要的最少步骤数。 例子 Level Minimum number of steps 1 0 8 3 …
12 code-golf 

2
绘制SQL输出表
我敢肯定,我们大多数人都已经在终端中看到了SQL结果,它们都整齐地格式化为行和列。如果您还没有,请参考以下示例: +----------+-----------+----------------+ | column 1 | column 2 | column 3 | +----------+-----------+----------------+ | data | more data | even more data | | etc | just goes | on and on | +----------+-----------+----------------+ 您面临的这个挑战的目标是,在给定表格的列和行数据的情况下,以这种样式绘制表格。在表格的顶部和底部应该有一条水平线,在标题行的正下方。每列之间应有垂直线,表格两边应有一条垂直线。您应该将管道用于垂直线,将连字符用于水平线,并将加号用于相交的位置。 细节: 数据可以通过stdin输入,也可以作为函数的参数输入,但是必须采用某种字符串形式 数据应由字符串定界符分隔 ; 数据将仅包含ASCII字符,不加引号,并且不包含定界符。 数据的第一行将用于列标题 数据将始终具有相同的列数 输入将始终至少包含两行(一个标题,一个数据)。您不必处理空集。 尾随或换行符是允许的 每列应与最宽的元素一样宽,在右侧填充较短的元素(如果在左侧填充数字,则加-5%) 标头和数据前后应有1个填充空间,除非列较宽 您无权使用实际mysql程序生成表 适用标准漏洞 样本输入: column …
12 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.