编程拼图和代码高尔夫

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

6
你今年过得好吗?
介绍 圣诞老人的名字太多了,需要您的帮助!他需要你写一个程序或功能,它输出nice,naughty,very naughty或very very naughty。为了确定某人的好坏或顽皮,圣诞老人开发了一种算法: 尼斯(除法,数学): 首先,通过将所有字母加起来(忽略空格)从名称中获得一个数字。例如: Doorknob = D = 4 o = 15 o = 15 r = 18 k = 11 n = 14 o = 15 b = 2 4 + 15 + 15 + 18 + 11 + 14 + 15 + 2 = 94 …

12
您学会了fib-abc吗?
我不喜欢数字,但是我喜欢斐波那契数列。我相信我们可以解决一些问题。 请从STDIN 读取一个整数n,然后将以n为底的26的第n个斐波那契数(abcdefghijklmnopqrstuvwxyz而不是0123456789)输出到STDOUT。 第一个斐波那契数为0。第二个斐波那契数为1。第n个斐波那契数是第n -2个和第n -1个斐波那契数之和。 前32个fib-abc数字: fib(0) = a fib(1) = b fib(2) = b fib(3) = c fib(4) = d fib(5) = f fib(6) = i fib(7) = n fib(8) = v fib(9) = bi fib(10) = cd fib(11) = dl fib(12) = fo fib(13) = iz fib(14) …

30
沃森克里克回文
问题 创建一个可以确定任意DNA字符串是否为Watson-Crick回文的函数。如果该字符串是Watson-Crick回文,则该函数将获取一个DNA字符串并输出一个真值,否则返回一个假值。(True和False也可以分别表示为1和0。) DNA字符串可以全部大写或全部小写,具体取决于您的喜好。 同样,DNA字符串将不会为空。 说明 当一个DNA字符串的反向互补序列等于其自身时,即为沃森-克里克回文。 给定一个DNA字符串,首先将其反转,然后根据DNA碱基(A↔T和C↔G)对每个字符进行补充。如果原始字符串等于反补字符串,则为Watson-Crick回文。 有关更多信息,请参见此问题。这是一个不同的挑战,您必须找到DNA字符串中最长的子字符串,其中该子字符串是Watson-Crick回文。 目标 这是代码高尔夫球,最短的代码获胜。 测试用例 格式为<input> = <output>。 ATCGCGAT = true AGT = false GTGACGTCAC = true GCAGTGA = false GCGC = true AACTGCGTTTAC = false ACTG = false

12
我没看过那个号码!
编写一个程序,通过非空白字符的字符串去(你可以认为他们是数字0到9,但没有在他们要处理的方式取决于此),并根据以下规则增加了空间。 假设当前标记为空字符串,而先前发出的标记为空集。 遍历字符串的字符。对于每个字符,首先将字符附加到当前标记。然后,如果当前令牌尚未包含在先前发出的令牌集中,则将当前令牌添加到该令牌集中,并将新的当前令牌作为空字符串。 如果到达字符串末尾时当前标记为空,则按发射顺序输出先前发射的标记,并用空格字符分隔。否则,逐字输出原始字符串。 输入值 STDIN的输入应为数字序列。 输出量 程序应按照步骤3中的指定打印结果。 样品 样本输入 2015 10101010 4815162342 101010101010 3455121372425 123456789101112131415 314159265358979323846264338327950288419716939937 样本输出 2 0 1 5 10101010 4 8 1 5 16 2 3 42 1 0 10 101 01 010 3 4 5 51 2 1 37 24 25 1 2 3 4 …

10
播放``攻丝''
今天(2015年11月11日)是美国退伍军人节。“ Taps ”是在美国军事葬礼上播放的号角: (来自vtmiller的SoundCloud上的“ 轻击”) 这是一种简单的旋律,只有二十四个音符,并且仅使用四个不同的音符。这是乐谱: (来源) 挑战 编写一个程序或函数以任何常见的音频文件格式(例如MP3,WAV,MIDI)播放“ Taps”或输出“ Taps”音频文件。可以用任何键,使用任何类型的乐器或您的语言可用的蜂鸣声播放。例如,听起来可能像是钢琴,而不是军号。(尽管仍然只能使用一种乐器类型。) 必须以准确的音高,持续时间和间隔演奏所有二十四个音符。熟悉“轻击”的人应该能够运行您的代码并轻松识别正在播放的歌曲。 旋律的持续时间(从第一个音符的开始到最后一个音符的结束)必须在30到70秒之间。您可以选择在声音文件的开头和/或结尾处保留长达5秒钟的静音时间,因此最长允许80秒。 当然,您可能不只是在某处在线下载歌曲或从恰巧将其作为示例的音频库中提取歌曲。但是,您可以使用音频库来播放/编写各个音符并创建音频文件。 计分 这是代码高尔夫球,因此最短的答案以字节为单位。但是,对于这个特殊的挑战,我鼓励您不要专注于字节数,尤其是以音质为代价。充分利用您的意见书,但可以根据自己的乐器选择或声音输出方法来发挥创造力。这项挑战的目的是要表彰退伍军人,而不是要淘汰几乎无法识别的“拍击”版本。 请注意,只需将链接粘贴在空白行上,就可以将SoundCloud音频文件直接嵌入到帖子中。如果您有SoundCloud帐户,这将是共享您的输出的好方法。

5
将标签分成两半
圣战已经在空间与标签之间展开。(当然还有赢得客观上的优势的空间。)— Alex A. 小号青梅PEO p文件仍然拒绝到一个 ccept该 WHI Ç h是CL Ë阿尔利 š upreme。你刚刚收到 一个使用INCOR文件重新克拉,b广告,和INF ē的WHI rior形式牛逼协商,现在牛逼他续Ë一个文件的NTS [R Ë污染和破坏。 您决定还可以向发送文件的人显示他们的错误程度。 描述 顾名思义,您面临的挑战是获取一个包含一个或多个标签的文件: this is an evil tab onoes 无情地将它们粉碎成碎片: this is an evil tab o n o e s 请注意,Stack Exchange软件将文字选项卡转换为四个空格(因为它是正确的),因此本文中的选项卡将显示为四个空格。但是,程序的输入将包含实际的选项卡。 挑战 解决方案应采用单个字符串作为输入,其中可能包含可打印的ASCII,换行符和制表符。输入中将始终至少有一个选项卡。 输出应为相同的字符串,并应用以下规则: 在坐标(0,0)处并向右方向启动光标。坐标是(列,行),零索引,方向是打印字符后应移动光标的方向。 对于字符串中的每个字符: 如果是换行符,请移至坐标(0,n),其中n是到目前为止字符串中的换行符数目(包括该行),然后将方向重置为右。 如果是选项卡,则输出两个空格,将光标方向顺时针旋转90度,然后再输出两个空格,从而有效地将选项卡“分成两半”。这是一个可视示例,其中选项卡表示为--->,空格表示为·: foo--->bar--->baz 变成 foo··· · …

17
谁是最困的?
编写一个程序或函数,该程序或函数接受一个字符串,-=o.其中-=o'和.'始终交替出现,以字符为单位。字符串的奇数长度将大于1,且始终以之一开始和结束-=o。 基本上,输入看起来像一排表情符号脸,在各种困倦状态下共享眼睛,例如 o.=.=.-.-.o.o 您的目标是打印或返回最困或最清醒的脸部(由您选择)。如果对于谁最睡/最清醒有多种选择,则可以输出其中的任何一个。 有9个不同的面孔和5个嗜睡等级: -.- is 100% sleepy -.= is 75% sleepy -.o is 50% sleepy =.- is 75% sleepy =.= is 50% sleepy =.o is 25% sleepy o.- is 50% sleepy o.= is 25% sleepy o.o is 0% sleepy 如果它是不明确的,嗜睡百分比由计算分配1到-了完全睡着了,0.5到=一半睡着了,0到o了清醒。然后,两个眼睛值的总和除以2是百分比。 以字节为单位的最短代码获胜。 测试用例 最困的 -.- GIVES -.- =.- GIVES …
31 code-golf  string 

13
一朵花的图小花
看看这朵洋甘菊花: 漂亮,不是吗?好吧,如果我告诉你这实际上不是一朵花怎么办? 实际上,许多花(包括向日葵,洋甘菊,雏菊和其他花朵)由许多很小的花(头上的黑点)组成。这些微型花称为小花,它们以非常特殊的方式排列。 基本上,第n个小花在头状花序上的位置是(在极坐标中): 其中c = 1(请注意137.508度=黄金角。您不必使用此精确度。) 这会使小花形成称为费马螺旋的螺旋状。小花的位置也与斐波那契数字有关,但这是另一个故事。 所以,这就是挑战。给定一个整数n作为输入,计算前n个小花的位置并绘制它们。这是图形输出,因此我实际上确实希望您在某种类型的窗口中显示这些点,或者将这些点以某种常见的图像格式作为数据输出到STDOUT或文件中。除此之外,这一挑战应该相当简单。这是代码高尔夫球,因此最短的代码获胜。GLHF! 这是输出的示例图片:

30
确定数组的深度
您星期一晚上(或者世界另一半的星期二早上)的简单挑战。 您将得到一个嵌套的,可能是参差不齐的正整数数组作为输入: [1, [[2, 3, [[4], 5], 6, [7, 8]], 9, [10, [[[11]]]], 12, 13], 14] 您的任务是确定其深度,该深度是列表中任何整数的最大嵌套深度。在这种情况下,深度11就是6,这是最大的。 您可以假设所有数组都不为空。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行参数或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 只要不对实际信息进行预处理,就可以采用任何支持非矩形数组(具有不同深度的嵌套数组)的便捷列表或字符串格式进行输入。 您不得使用任何与数组形状有关的内置程序(包括解决此难题的内置程序,这些内置程序可为您提供嵌套数组的尺寸)。唯一的例外是获取数组的长度。 适用标准代码高尔夫球规则。 测试用例 [1] -> 1 [1, 2, 3] -> 1 [[1, 2, 3]] -> 2 [3, [3, [3], 3], 3] -> 3 [[[[1], 2], [3, [4]]]] -> 4 [1, …

6
编写输出其镜像级别的程序
有95个可打印的ASCII字符: !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~ 在Consolas字体(默认为Stack Exchange代码块)中,某些字符在垂直对称轴周围具有镜像: 这些字符对是彼此的镜像: () [] {} <> /\ 这些字符是它们自身的镜像:(! "'*+-.8:=AHIMOTUVWXY^_ovwx|请注意空格是一个。) 这些没有镜子: #$%&,012345679;?@BCDEFGJKLNPQRSZ`abcdefghijklmnpqrstuyz~ (i,l,0,#,,可能其他字符都是自己的镜子一些字体,但我们会坚持到索拉的形状。) 如果仅用39个镜像字符制成字符串,则该字符串就是其自身的镜像,其排列方式使该字符串具有中心垂直对称线。所以](A--A)[是自身的镜子,但](A--A(]并非如此。 编写一个单行的偶数程序,该程序是其自身的镜像。当它的左半部分的N个副本已被添加到它的前面,并且已将其右半部分的N个副本添加到它的后面时,它应输出N + 1。N是一个非负整数。 例如,如果程序为](A--A)[(左半部分:](A-,右半部分:)-A)[,则: 运行](A--A)[应该输出1。(N = 0) 运行](A-](A--A)[-A)[应该输出2。(N = 1) 运行](A-](A-](A--A)[-A)[-A)[应该输出3。(N = 2) 运行](A-](A-](A-](A--A)[-A)[-A)[-A)[应该输出4。(N = 3) 。。。 运行](A-](A-](A-](A-](A-](A-](A-](A-](A-](A--A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[-A)[应该输出10。(N = 9) 等等 规则 输出到标准输出或您的语言最接近的替代产品。可能会有一个可选的尾随换行符。请勿输入任何内容。 在给定足够的内存和计算能力的情况下,该过程理论上应适用于N达2 15 -1或更高。 需要完整的程序,而不仅仅是REPL命令。 最短的初始程序(N = 0,以字节为单位)获胜。

23
对齐线!
对齐线! 给定一个字符和一个多行字符串,您的工作是填充字符串的每一行,以便它们在给定的定界符之间对齐。 例子 输入: , Programming, Puzzles And, Code golf 输出: Programming, Puzzles And, Code golf 输入值 输入将是一个多行字符串和一个字符(您将在其中对齐),您可以按照希望的任何顺序/格式使用它们。字符将每行恰好出现一次。输入的每一行长度可能不同。 输入可以通过函数参数或STDIN。 输出量 输出应以相同的字符串居中。您只能使用一个尾随换行符,而不能尾随空白。 应该用最少的空格填充输出。您不能删除输入中的任何前导空格(如果存在)。 输出可以来自函数返回或STDOUT。

2
井字游戏的最佳游戏
这个挑战是关于井字游戏,但它是在圆环上玩的。 怎么玩 要创建必要的游戏板,请首先使用常规的Tic Tac Toe游戏板。首先,通过连接左右边缘将其折叠成圆柱体。然后通过连接顶部和底部边缘将其折叠成环形。这是这种游戏板的简单可视化效果,其中包含一些操作(病漆技能!)。 井字游戏的规则与普通井字游戏的规则相同。每个玩家交替放置X和O。行,列或对角线中有3个相同符号的第一个获胜。 由于圆环很难观察到,因此我们只需将板子投影回纸上即可。现在我们可以像普通的井字游戏一样玩游戏了。唯一的区别是,您还可以用对角线中的3个相同的符号赢钱。例如,玩家1(X)赢得下一局。通过稍微改变圆环上的视图,您可以轻松看到这一点。 如果您有兴趣,可以在Torus Games的Torus上玩Tic Tac Toe 。有Windows,Mac和Android版本。 最佳游戏 在这个挑战中,人们对最佳游戏感兴趣。最佳游戏是指两个玩家都扮演最佳策略的游戏。在常规的Tic Tac Toe棋盘上,最佳游戏总是以平局结束。令人着迷的是,在环形板上总是第一个玩家获胜。实际上,在圆环板上的游戏永远不会以平局告终(即使玩家玩的不是最佳状态)。 最佳策略非常容易: 如果您可以通过放置符号赢钱,那就去做。 否则,如果对手在一行/列/对角线中有两个符号,请尝试将其阻止。否则,请执行您想要的操作。 否则,请执行您想要的操作。 每个最佳游戏都恰好由7个动作组成,这些动作可以用以下方式描述: 玩家1将X放置在棋盘上的任意位置(9个选择) 玩家2在棋盘上的任意位置放置一个O(8个选择) 玩家1将X放置在棋盘上的任意位置(7个选择) 玩家2的举动可能会被强制(1个选择),否则,他会将O放置在任何位置(6个选择) 玩家1的举动被迫(1选择) 玩家2陷入困境(玩家1可以通过两种不同方式获胜),因此玩家2必须以一种方式阻止玩家1(2个选择) 玩家1做出最后的举动并获胜(1个选择) 我们的投影板上有9 * 8 * 1 * 6 * 1 * 2 * 1 + 9 * 8 * 6 * 1 * …

30
猫叫“喵”
cat 去“喵” 我们都熟悉cat程序的概念。用户输入一些内容,它回显给用户。简单。但是cat到目前为止,我所见过的所有程序都遗漏了一个事实:cat“喵”。所以,你的任务是写一个程序,将所有STDIN到STDOUT ,除非输入是cat,在这种情况下,你的程序应该输出cat goes "Meow"。 计分 这是代码高尔夫球,因此得分是字节数,带有一些修饰符: 如果您的程序适用于除cat(例如cow: cow goes "Moo")以外的其他任何动物,则对于每个其他动物:-10 如果您的程序不使用“ cat”一词:-15 如果您的程序响应fox“狐狸怎么说”:-25 动物和声音并存: cow goes moo duck goes quack sheep goes baa bees go buzz frogs go croak 此列表上的任何其他内容均被允许。 规则 适用标准漏洞 你绝对不能写任何东西给 STDERR 您可以使用单引号/无引号代替双引号。 排行榜 这是一个堆栈片段,用于按语言生成常规排行榜和获胜者概述。 为确保您的答案显示出来,请使用以下Markdown模板以标题开头。 ## Language Name, N bytes N您提交的文件大小在哪里。如果您提高了分数,则可以将旧分数保留在标题中,方法是将它们打掉。例如: ## Ruby, <s>104</s> <s>101</s> …
31 code-golf 

6
尽最大可能!
该序号系统是无限的数字系统。许多无穷大。如此众多的无穷数字,以至于它实际上没有一个无穷大来表示自己的无限性。上图给出了它们如何工作的一点想法。序数(冯·诺依曼构造)是一组先前的序数。例如,0是空集,1是集{0},2是集{0,1},依此类推。然后我们得到ω,即{0,1,2,3 ...}。ω+ 1是{0,1,2,3 ...ω},ω乘以2是{0,1,2 ...ω,ω+ 1,ω+ 2 ...}然后你会像那。 您的程序将输出一组序数,例如{0,1,4}。这样,您的分数将比集合中所有序数的最低序数高。对于{0,1,4},得分将为5。对于{0,1,2 ...},得分将为ω。 您如何输出您要求的序号。当然是代码。即,您的程序将在每行中用引号输出一个可能无限的其他程序列表(用引号引起来)(使用文字字符串“ \ n”表示新行)。程序对应于其得分,如上所述。例如,如果您输出 "A" "B" "C" 其中A,B和C本身是有效答案,并且得分为{0,1,4},则您的程序的得分为5。请注意,A,B和C必须是完整程序,而不是片段。 根据上述规则,不输出任何内容的程序的得分为0(大于所有{}的最小序数为0)。另外,请记住,根据基础公理,集合不能包含自身。即,每个集合(因此是序数)都具有下降到零的路径。这意味着完整的quine将无效,因为它不是一个set。 另外,不允许任何程序访问外部资源(其自己的文件,互联网等)。另外,在列出分数时,如果可以的话,请将分数的Cantor普通形式放在旁边,如果可以的话(如果没有,则其他人可以)。 考虑以上所有因素后,您发布的实际答案必须少于1,000,000字节(不包括注释)。(此上限可能只会对自动生成的代码起作用)。同样,您可以为不使用的每个字节增加分数(由于我们处理的是无穷大,只有当序数非常接近或相同时,这才可能被考虑在内)。同样,本段仅适用于发布的答案,不适用于生成的答案或生成的答案生成的答案,依此类推。 这具有quine标记,因为生成至少部分源代码自己的代码可能有助于生成大型序言。但是,它绝对不是必需的(例如,分数为5的提交可能不需要其自己的源代码)。 有关示例的注释示例,请参见此处。

4
ASCII涂鸦:盒子里的激光
有时候,当我涂鸦时,我会画一个矩形,从一个角开始以对角线开始,然后每当我碰到矩形的一侧时通过“反射”一条线来画出一条线。我继续进行此操作,直到碰到矩形的另一个角为止(并希望矩形的长宽比不是不合理的;)。这就像追踪激光照射到盒子中的路径一样。您将使用ASCII艺术产生这种效果。 例如,考虑一个width 5和height 的盒子3。我们将始终从左上角开始。该#标记框的边界。请注意,宽度和高度是指内部尺寸。 ####### ####### ####### ####### ####### ####### ####### #\ # #\ # #\ \# #\ /\# #\ /\# #\/ /\# #\/\/\# # \ # # \ /# # \ /# # \/ /# # \/ /# #/\/ /# #/\/\/# # \ # # \/ # # \/ …

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.