Questions tagged «code-golf»

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

4
计算三角形的费马点
这有点类似于三角形的中心,但是具有不同的点。在费马点是在三角形ABC中的点P,使得AP + BP + CP的值被最小化。有两种情况: 如果角度大于120度,则该顶点为费马点。否则,在ABC的每一侧上绘制等边三角形。将每个等边三角形的远顶点连接到三角形ABC的相反顶点。对三个等边三角形中的每一个进行此操作会导致所有三条线的单个公共交点,即费马点。 它应在合理的计算机上运行5秒钟。 输入:一组3点,不一定是整数。可以将其视为嵌套数组,字符串,元组列表等(无论哪种语言)。 输出:同样,费马点的坐标,但是您的语言最能处理点。浮点数错误将不算在您身上。 测试用例: [[1, 1], [2, 2], [1, 2]] --> [1.2113248654051871, 1.788675134594813] [[-1, -1], [-2, -1], [0, 0]] --> [-1, -1] [[-1, -1], [1, -1], [0, 1]] --> [0, -0.42264973081037427] [[0, 0], [0.5, 0.8660254037844386], [-5, 0]] --> [0, 0] [[0, 0], [0, -5], …

9
CamelCase2snake_case()
编写将CamelCased文本转换为snake_case的函数:FunctionForHTMLManipulation变成function_for_html_manipulation 输入文本将是多种语言的单个合适的标识符。它必须以英文字母开头,然后是任意数量的英文字母或数字。不允许使用其他字符(空格,符号等)。 CamelCased文本中的每个“单词”都将以大写字母开头,除非在文本开头或紧跟在数字之后,然后是零个或多个字母(大小写均相同)。数字组将被视为单独的单词,但将保持不变。 换句话说,小写字母后跟大写字母表示分词。彼此相邻的任何字母和数字都表示分词。大写字母后跟另一个大写字母和小写字母表示单词中断。 ...lU...=> ...l_u... ...l9...=> ...l_9... ...U9...=> ...u_9... ...9l...=> ...9_l... ...9U...=> ...9_u... ...UUl...=>...u_ul... 双方Buy24Beers并buy24beers成为buy_24_beers。 MacDonaldAndObrian成为mac_donald_and_obrian。 MACDonaldAndOBrian成为mac_donald_and_o_brian。
13 code-golf  string 

6
桥牌得分
使合同桥梁非常有趣的一件事是其高度复杂的“人工”元游戏。这种计分系统只是其中的一小部分。 桥牌是一个花招的纸牌游戏。每个玩家有13张手牌,游戏开始于竞标。竞标决定了其余游戏的进行方式,因此这是至关重要的部分。为了确保您和您的伴侣的出价不会太高(或太低),我们开发了这种人工评分系统来告诉您您的手牌有多好。 计分 这是一个示例手: S:KQT5 H:J72 D:965 C:AK8 S,H,D,C代表西服(锹,心形,菱形和棍棒),其余为这些西服中的牌。因此,此手有一张黑桃皇后(Q),一张黑王(K),十张黑桃(T),五张黑桃,红心杰克,七张红心,等等。 计分系统的工作方式如下: 您每获得一张王牌(A),您将获得4点;每位国王(K),您将获得3点;每位皇后(Q),您获得2点;每位杰克(J),您获得1点。没有其他卡可以得分。 西装第四张之后的每张卡都会给你1分。因此,如果您有六颗心,您将获得2分。 一套只有2张卡片的西装可以给你1分(这是一双)。仅有1张卡片的西服给您2分(这是单身人士)。如果您在某套西装中没有卡,则得到3分(这是无效的)。(通常,只有在您与伴侣商定了诉讼之后,才计入这些费用,但为了使挑战变得更加有趣,我将它们包括在内。) 因此,上述手有13点。 挑战 给定上面显示的格式的桥手,计算该手有多少点。西服将始终按照黑桃,心,钻石和球棒的顺序列出,并且牌将始终按A,K,Q,J,T,9-2的顺序排序。 样本输入和输出 S:KQT5 H:J72 D:965 C:AK8 \-> 13 S:AKQT6 H:54 D:J83 C:732 \-> 12 S: H:KQT8754 D:A86 C:432 \-> 15 S:9876 H:843 D:652 C:432 \-> 0 S:AKQT5 H:AQJ6 D:Q3 C:AK \-> 28 这是代码高尔夫球,因此以字节为单位的最短代码获胜。

1
注入文字Rickrolls
因为rickrolling是地球上最大的模因,所以您[知道规则,我也是如此]是要编写最短的代码,从而可以在文本上对不知情的读者进行rickroll。让[you down]有一个包含字母,标点和空格的输入文本。每当前两个节中的[撒谎和伤害您]短语出现在文本中时... We're no strangers to love You know the rules and so do I A full commitment's what I'm thinking of You wouldn't get this from any other guy I just wanna tell you how I'm feeling Gotta make you understand Never gonna give you up Never gonna let …
13 code-golf  string 

10
素数与素数索引
编写一个程序或函数,以输出/返回前10000个素数索引质数。 如果我们称第n 个素数p(n),则此列表为 3, 5, 11, 17, 31, 41, 59 ... 1366661 因为 p(p(1)) = p(2) = 3 p(p(2)) = p(3) = 5 p(p(3)) = p(5) = 11 p(p(4)) = p(7) = 17 ... p(p(10000)) = p(104729) = 1366661 禁止出现标准漏洞,并允许使用标准输出方法。您可以使用完整程序,命名函数或匿名函数来回答。
13 code-golf  math  primes 

7
打印复古火箭
(受此SO问题启发) 您将获得一个正整数n作为输入。 以尽可能少的字符输出ASCII艺术的火箭,其头部,尾部和由n个段组成的主体。不应包含尾随空格或换行符。 对于任何n值,火箭的头和尾始终是相同的。主体由交替的两种不同类型的线段组成。这些例子应该使火箭的结构清楚。 n = 1的输出: /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ +=*=*=*=*=*=*+ |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| |../\..../\..| |./\/\../\/\.| |/\/\/\/\/\/\| +=*=*=*=*=*=*+ /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ n = 2的输出: /**\ //**\\ ///**\\\ ////**\\\\ /////**\\\\\ +=*=*=*=*=*=*+ |../\..../\..| |./\/\../\/\.| |/\/\/\/\/\/\| |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| +=*=*=*=*=*=*+ |\/\/\/\/\/\/| |.\/\/..\/\/.| |..\/....\/..| |../\..../\..| |./\/\../\/\.| |/\/\/\/\/\/\| +=*=*=*=*=*=*+ /**\ //**\\ …

4
如何不减少分数
错误地减少分数 在此代码高尔夫球挑战中,您必须找到可以以错误的方式减少但仍以相同数量结尾的分数。 注意:减少分数的错误方法此处有一个确切的定义,请参阅详细信息。 例: 64/16 = 6 4/1 6 = 4/1 = 4 当然,您不能只击中两个6e,但是在这里您仍然得到正确的值。在这个挑战中,您必须找到这样的例子。 细节 您必须编写一个函数/程序,接受一个正整数n作为输入,然后输出/返回格式的分数列表/数组 numerator1,denominator1,numerator2,denominator2,... 该计划必须找出每个分数a/b与a+b=n和a,b>0它是否可以减少错误的方式。(无论是否可以以常规方式减少排放量,还是有很多减少排放量的可能性,都必须至少以一种方式以错误的方式减少排放量。) 错误方式的定义:当且仅当相同的连续数字序列出现在a和b中且如果除去子字符串时分数的值保持相同时,分数才能以错误的方式还原。 示例:1536/353可以“减少”为16/3,但是这两个值不相等,因此您不能以错误的方式减少此分数。 请注意,这种减少错误方式的定义也可以包括以正确方式减少的分数:即使110/10 = 11/1在减少错误方式的定义内,它也是有效的步骤。 计分 最少的字节数获胜。您可以编写一个接受整数并返回使用stdin / stdout的数组或程序的函数或程序,也可以考虑将n保存在变量中,并且在程序末尾,列表必须保存在另一个变量中。 测试用例 请包括以下测试用例(告诉我应该添加哪些测试用例,我不知道这些部分有多少/期望有多少示例) n=80 (64/16 should be in this list) n=147 (98/49 should be in this list) n=500 (294/196 should be in this list) …

4
查找色号
令人惊讶的是,我们在图形着色方面还没有遇到任何挑战! 给定一个无向图,我们可以为每个顶点赋予一种颜色,使得没有两个相邻的顶点共享相同的颜色。实现此目的所需的最小数量的独特颜色χ被称为图形的色数。 例如,以下显示使用最少数量的颜色的有效着色: (在维基百科上找到) 因此,该图的色数为χ= 3。 编写一个程序或函数,给定多个N <16的顶点(从1到N),并给出一个边列表,确定一个图的色数。 只要输入未经过预处理,您就可以接收输入并以任何方便的格式产生输出。也就是说,您可以使用字符串或数组,可以在字符串中添加方便的定界符,也可以使用嵌套数组,但是无论您做什么,扁平化的结构都应包含与以下示例相同的数字(顺序相同)。 您可能不使用内置的图论相关功能(如Mathematica的ChromaticNumber)。 您可能会认为该图没有环(将顶点与其自身连接的边),因为那样会使该图不可着色。 这是代码高尔夫球,最短的答案(以字节为单位)获胜。 例子 您的程序必须至少在合理的时间内解决所有这些问题。(它必须正确解决所有输入,但是较大的输入可能需要更长的时间。) 为了缩短篇幅,在以下示例中,我在一个逗号分隔的列表中显示了边缘。如果愿意,您可以换行或使用一些方便的数组格式输入。 三角形(χ= 3) 3 1 2, 2 3, 1 3 6个顶点的“环”(χ= 2) 6 1 2, 2 3, 3 4, 4 5, 5 6, 6 1 5个顶点的“环”(χ= 3) 5 1 2, 2 3, 3 4, 4 5, …

3
Codegolf:Quine和Antiquine
该挑战类似于您可以进行Meta Quine吗? quine是在STDOUT上产生自身的程序。挑战在于产生程序A,该程序在运行时会在STDOUT上产生程序B。运行时,程序B在STDOUT上生成程序A。程序A和B必须以相同的语言编写(并运行)。链接的问题约束A!=B。这看起来太简单了。因此,对于这个问题,我们坚持使用以下规则,将A和B定义为对数: 程序A和B不得使用任何相同的字符,但空格和语句分隔符以及标点符号除外。 程序A和B必须分别包含至少一个既不是空格也不是语句分隔符,也不是标点符号的字符。 出于规则1和2的目的,术语“空白”不包括任何符号或符号序列,它们本身就是被解释的语句,运算符或符号(与分隔符相对)。因此,在空白语言中,没有空白。 语句分隔符是该语言中通常用于分隔语句的语法元素。这将包括python中的换行符,或Java,perl或C中的分号。 标点符号是ASCII字符,它既不是空格也不是POSIX单词字符类(即,下划线不是用于此目的的标点符号),即ispunct()返回true,而不是_。 程序A在运行时必须在其STDOUT上生成程序(程序B),而程序在运行时又会生成程序A。 程序A和B必须使用相同的编程语言。 使用的编程语言实际上必须是一种编程语言。除非您没有其他理由,否则我建议它必须是图灵完整的。 A和B中的至少一个必须在该语言中执行至少一个语句。 这是代码高尔夫,所以最短的答案会获胜,得分是程序A的长度(以字节为单位)(即程序B的长度无关紧要)。
13 code-golf  quine 

3
建立一个冰拼图生成器+解算器
在Twitch PlaysPokémon中,一个人可能会遇到的最烦人的障碍是冰拼图,您必须在一个地方向一个方向滑动,直到碰到墙壁或巨石,才能从一个地方旅行到另一个地方。 您的任务是构建一个程序,该程序将生成一个随机的难题。 你的程序将接受三位数字M,N和P作为输入(与10 <= M <= 30,15 <= N <= 40和0 <= P < 65536): 12 18 并输出: 一个M通过N网格组成的.和O,分别代表冰和巨石。 表示从何处输入拼图的位置标记。这个位置标记由字母的L,R,T,或B,表示左,右,顶部,底部和,后面是表示(从左侧或顶部)上的一侧的位置的数目以从输入。 一个类似的位置标记,表示难题从何处退出。 最短解决这一难题,由一个序列的L,R,U,和D分别。 输出示例: ..O...O........... ............O..... ..O............... .......O.......... .................. ...........O...... O..O...........O.. ..........O....... ..O..........O.... ........O......... O....O.........O.. ............O..... R 4 B 5 LDLDRULD (Note that this output is actually invalid because it …
13 code-golf 

5
将度数转换为指南针的32个点之一
至少可以说,32点罗盘很有趣。 由Denelson83(自己的作品)[ GFDL或CC-BY-SA-3.0 ],通过Wikimedia Commons 您面临的挑战是采取度数测量并将其转换为32点罗盘上的方向。 每个方向都比上一个方向远11.25(360/32)度。例如,N(北)为0度,NbE(北至东)为11.25度,NNE(北-东北)为22.5度,依此类推。 至于您应该如何获得指示, 0度是N,90度是E,180度是S,270度是W。 这些被称为基本方向。 基本方向之间的中间点就是它们之间串联的基本方向。N或S始终排在第一位,W或E始终排在第二位。 这些称为顺序指示。 基本方向和顺序方向之间的中间点是它们之间的连接方向,再次之间是“-”。基本方向为第一,第二顺序。 这些被称为次要心内方向。 次要心轴方向与其他方向之间的中点是它们最接近的基本方向“旁”的其他方向(当然,不是紧邻其的那个方向)。 我不知道这些叫做什么:P 如果所有这些解释都像我一样伤害您的大脑,您可以参考此图表: 1 North N 2 North by east NbE 3 North-northeast NNE 4 Northeast by north NEbN 5 Northeast NE 6 Northeast by east NEbE 7 East-northeast ENE 8 East by north EbN 9 …
13 code-golf 

9
拼图游戏
也许您知道Set的游戏(对孩子们来说是一个很棒的游戏)是一款拥有81张纸牌的纸牌游戏,其中每张纸牌上都有一个具有4种不同属性(形状,数字,颜色和填充)的数字。每个属性具有3个不同的值: form: wave, oval, diamond colour: red, purple, and green number: 1, 2, 3 fill: none, dashed, opaque. 桌子上放了12张纸牌,现在的挑战是要显示一组。一组包含三张卡,每个属性值出现0、1或3次。拥有两张带有红色数字,不透明或一张数字的卡是不好的。请参阅提供的链接以获取更直观的说明。 我确实设想了一张卡片的代码,其中所有属性都被编码为 "WP2N" 代表 2 Purple Waves with No fill 与例如OR1N和DG3N 和 它是一组(3种不同形式,3种不同颜色,3种不同数字,1种填充)。 输入是代表卡的唯一代码的空格分隔字符串(从81种可能的代码中随机选择)。 "OR1N WP2N DG3N DR1D WG3S WG1N WR2D WP3N DR2O DR2D OG3O OR2D" 解决方案必须指出给定集合中的所有可能的集合。所以 OR1N, WP2N, DG3N 必须与所有其他集合一起成为解决方案的一部分。
13 code-golf 

20
FIBonacci序列
对于此代码高尔夫球,您将收到fib onacci序列的输入,即正常的斐波纳契序列,但其中一个数字不正确。看到,序列在跳动!得到它?:D 您的工作是找出哪个数字不正确,然后打印该数字的索引(从0开始)。 例如: Input : 1 1 2 9 5 8 13 Output: 3 Input : 8 13 21 34 55 80 Output: 5 Input : 2 3 5 5 13 21 Output: 3 规格: 该序列可以以任意数量开始。 输入的前两个数字将始终正确。 最短的代码(字符数)获胜。

8
删除那些讨厌的“ .DS_Store”文件
如果使用OS X,则可能会因使用Finder而臭名昭著的隐藏“ .DS_Store”文件。 挑战在于编写将遍历整个文件系统的代码,并删除任何名为“ .DS_Store”的文件。 高尔夫经典代码-最短代码获胜。 说明: 代码中并没有需要删除需要超级用户的任何.DS_Store文件; 假设不存在此类文件。 该代码仅应删除相关的.DS_Store文件,而不能删除其他任何文件。

1
解决8个难题
8拼图是15Puzzle(或滑动拼图)的较小变体。您有一个3x3网格,其中填充了以随机顺序排列的0-8(0表示空白图块)中的数字。您的任务是输入一个3x3的网格并显示最短的解决方案(最小移动量)以达到目标状态。显示每个板状态,包括输出中的第一个状态。 可能有多种最佳解决方案,您只需要打印一种即可。 输入:(小示例) 1 2 0 4 5 3 7 8 6 输出: 2 <- denotes minimum number of moves required 1 2 0 4 5 3 7 8 6 1 2 3 4 5 0 7 8 6 1 2 3 4 5 6 7 8 0 <- goal …

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.