Questions tagged «code-golf»

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

7
我编程拼图,il代码高尔夫
背景 意大利定冠词(相当于英语的)有七个不同的形式:L”,IL,卤味,GLI,我,拉,乐。使用哪一个取决于三个变量: 性别:男性/女性。 数字:单数/复数。 后继单词的首字母:元音/ A型辅音/ B型辅音。 元音是以下任何一种:aeiou。 辅音类型B是任何这些情况中:S-后跟另一个辅音,Z-,GN- ,pn结,PS-,x轴,异接着元音(此我充当半元音)。 类型A的辅音不是类型B的辅音。 下表显示了上述三个变量的十二种组合中的每种将使用的商品形式。请注意,l'形式附加在后面的单词上,并带有单引号和空格。 挑战 输入一个单词和一个或两个表示性别和数字的字符串,数字或布尔值。(必须从输入的单词中获取首字母)。 输入的单词将是一个小写的ASCII字母序列。重音元音将被其非重音版本代替(例如,realtà将作为realta输入)。 性别和数字输入可以是单独的数字,布尔值或字符串,也可以是字符串的组合数(例如,男性单数为1,女性单数为2,等等)。 只要在答案中指定,任何合理的格式和分隔符都可以使用。 输出单词,并冠以相应的文章形式,并根据需要添加空格或单引号。输出也应该是小写。允许尾随空格或前导空格。 打高尔夫,最短的胜利。 测试用例 在我使用的输入字母下面m,f指定性别和s,p对数(这只是一个可能的输入格式)。 Input Output Comment macchina f s la macchina Initial letter is cons. A zio m s lo zio Initial letter is cons. B libri m p i libri Initial …

2
重叠圆的边界
给定一个平面上几个点的坐标,以及围绕每个点的圆的半径,绘制代表圆和圆相交的边的多边形。直边将始终沿圆-圆相交线落下,但可能不会遵循这些线的全长。 根据mbomb007的建议,想象一下2D肥皂泡的行为。这在技术上是错误的,因为肥皂泡总是会以120°的角度相遇以最大程度地减少能量,而这些圆圈可能会以任何角度相遇。 这是一个Voronoi图,减去定义的平面。谢谢Andreas。这实际上是称为功率图的Voronoi图的一般化。 例子 例如,给定两个点和两个半径,输出可能如下所示: 添加另一个点和半径,输出可能如下所示: 输入项 您可以根据需要构造输入。请通过以下输入发布结果。 测试1 x:10,y:10,r:10 x:25,y:12,r:8 测试2 x:8,y:10,r:6 x:20,y:8,r:4 x:18,y:20,r:12 输出量 输出应为图形,并应包含多边形边界,但不需要其他任何内容。点和交点不需要像示例中那样表示。 约束条件 另一个圆的半径内将不存在任何点。 标准的代码高尔夫规则。 没有漏洞的答案将不被接受,但请随时尝试。

18
解压一些数字
您的任务是创建一个程序或函数,该程序或函数生成长度为10行的拉链。拉链的每一行用两个破折号表示--: -- -- -- -- -- -- -- -- -- -- 程序/功能将以一个百分比(可被10整除)作为输入,并且输出将是从顶部按百分比解压缩的拉链(破折号)(破折号),显示1索引的最低水平重复2次,并所有先前的级别重复4、6、8 ...等。次,同时保持拉链的底部居中。 例子 >>10% -11- -- -- -- -- -- -- -- -- -- >>50% -1111111111- -22222222- -333333- -4444- -55- -- -- -- -- -- >>100% -11111111111111111111- -222222222222222222- -3333333333333333- -44444444444444- -555555555555- -6666666666- -77777777- -888888- -9999- -10- 输入(百分比)可以根据自己的喜好进行格式化(50%、. 5、50、5 [隐含零]等),并且始终在0到100的范围内,并可以被10整除。示例必须保留在输出中。

10
斐波那契分解
斐波那契数 斐波那契数字的开头为f(1) = 1和f(2) = 1(其中有些包括,f(0) = 0但这与挑战无关。然后,对于n > 2,f(n) = f(n-1) + f(n-2)。 挑战 您的任务是找到并输出n可以表示为斐波纳契数的乘积的第-个正数。您可以选择使其更适合0索引或1索引,但您必须在答案中指定它。 另外,您的答案必须在合理的时间内计算出第100个项。 测试用例 n result corresponding product (for reference) 1 1 1 2 2 2 3 3 3 4 4 2*2 5 5 5 6 6 2*3 7 8 2*2*2 or 8 8 9 3*3 …

30
输出“适合”数字
“适合人数” 山姆有一个“聪明”的压缩想法!你能帮我吗? 这是Sam压缩方案的简要说明。首先采用严格小于2 ^ 16的任何自然数的基数10表示形式,并将其写为没有任何前导零的二进制字符串。 1-> 1 9-> 1001 15-> 1111 13-> 1101 16-> 10000 17-> 10001 65535-> 111111111111111 现在,用一个零替换一个或多个零的任何组。这是因为这个数字越来越少了。您的二进制字符串现在将如下所示。 1-> 1-> 1 9-> 1001-> 101 15-> 1111-> 1111 13-> 1101-> 1101 16-> 10000-> 10 17-> 10001-> 101 65535-> 111111111111111-> 111111111111111 现在,您将二进制字符串转换回以10为基数的表示形式,并以任何可接受的格式输出。这是您的测试案例。第一个整数表示输入,最后一个整数表示输出。请注意,有些数字不会改变,因此可以称为“适合” 1-> 1-> 1-> 1 9-> 1001-> 101-> 5 …

6
确定挑战是否值得回答
我是一个非常随意的代码高尔夫球手,并且直到他们出现在StackOverflow上的“热网络问题”侧栏中之后,才经常看到他们。通常,我迟到了游戏,并且由于我所知道的唯一语言是Python,所以我的回答毫无意义,因为已经有多个Python答案。您的挑战是弄清楚一个问题是否值得我回答。 输入: 您的代码(函数或程序)将带有一个输入参数 i 输出: 问题ID的真值或假值i。如果问题的答案超过5个,问题分数大于3,并且在Python中回答一个或更少,则输出Truthy(版本之间没有区别)。 规则/说明: 输入格式可以是任何合理的格式(stdin,文件,命令行),但应在答案中指定。数据类型和前导/尾随空格无关紧要。 假设问题ID对有效codegolf.stackexchange.com。 忽略特定于语言的问题要求。(即,如果一个问题满足投票要求和答案,并且没有Python答案,因为它仅是Java,则仍然会产生Truthy)。 如果在帖子的第一条换行符之前的任何位置出现“ python”(区分大小写),则该回答为Python回答。 这是代码高尔夫,因此以字节为单位的最短代码获胜。 样品盒* id = 79082 => True id = 78591 => False (less than 5 answers, also hella hard) id = 78410 => True id = 76428 => False (greater than 1 Python answer) id = 78298 => …

3
随机化测试
我是老师,几天后我必须给学生考试。现在,我一直担心最可爱的学生在作弊时会受到最不可爱的学生的伤害,所以我想对考试进行随机化处理,以便没人能欺骗任何人。 现在,我的测试以这种格式保存: When was Java invented? Why does this matter? 1941 War was beginning None of the above What is the increment operator in Java? Stack Overflow>how 2 incrememnt Google>how 2 incrememnt increment ++ 也就是说,问题用单个空白行分隔,并且答案都以两个空格开头。这是我需要的输出: What is the increment operator in Java? ++ increment Google>how 2 incrememnt Stack Overflow>how 2 …
21 code-golf  random 

23
除数减少
数字n的除数是将n平均除的任何数字,包括1和n本身。除数d(n)是一个数有多少个除数。这是前两个n 的d(n): n divisors d(n) 1 1 1 2 1, 2 2 3 1, 3 2 4 1, 2, 4 3 5 1, 5 2 6 1, 2, 3, 6 4 我们可以从一个数字中反复减去除数的数量。例如: 16 = 16 16 - d(16) = 16 - 5 = 11 11 - d(11) = 11 - …

3
排列平方根
在数学上,阶数n的置换 σ是从整数1 ... n到其自身的双射函数。此清单: 2 1 4 3 表示置换σ,使得σ(1)= 2,σ(2)= 1,σ(3)= 4,σ(4)= 3。 置换σ的平方根是一个置换,当应用于自身时,得出σ。例如,2 1 4 3具有平方根τ = 3 4 2 1。 k 1 2 3 4 τ(k) 3 4 2 1 τ(τ(k)) 2 1 4 3 因为对于所有1≤k≤n,τ(τ(k))= σ(k)。 输入项 由n > 0个整数组成的列表,都在1到n之间(包括1和n),表示一个排列。排列将始终具有平方根。 只要输入和输出一致,就可以使用0 ... n-1列表。 输出量 排列的平方根,也作为数组。 限制条件 您的算法必须在n的多项式时间内运行。这意味着您不能只遍历所有n!n阶排列。 …

14
找出最大为1s的矩形
背景 我想购买一块土地并在上面建造房子。我的房子应该是矩形的,并且要尽可能大。但是,可用的地块上有很多我无法建立的岩石区域,因此在地块上安装潜在的房屋时遇到了麻烦。我希望您编写一个程序为我分析情节。 输入输出 您的输入是矩形2D数组,其大小至少为1×1,且采用任何合理的格式。数组代表一块土地;1s是可以建造房屋的“好”区域,s是无法建造房屋0的“多岩石”区域。 您的输出应为1输入数组中s 的实心矩形的最大面积。它代表了我可以在该地块上建造的最大房屋的面积。请注意,如果1输入中没有,则输出为0。 例 考虑输入 101 011 111 1s 的最大矩形是右下角的2×2矩形。这表示正确的输出是4。 规则和计分 您可以编写完整的程序或函数。最低字节数获胜,并且不允许出现标准漏洞。 测试用例 0 -> 0 1 -> 1 00 00 -> 0 01 10 -> 1 01 11 -> 2 111 010 111 -> 3 101 011 111 -> 4 0111 1110 1100 -> 4 1111111 …

7
这是子矩阵吗?
这是该挑战的二维概括。 出于我们的目的,如果可以通过从B完全删除许多行和列来获得A,则一个矩阵(或2D数组)A被视为另一个矩阵B的子矩阵。(注意:某些来源有不同/限制性更强的定义。) 这是一个例子: A = [1 4 B = [1 2 3 4 5 6 2 1] 6 5 4 3 2 1 2 1 2 1 2 1 9 1 8 2 7 6] 我们可以从B删除第2、3、5、6和第2、4行以获得A: B = [1 2 3 4 5 6 [1 _ _ 4 _ _ …

12
交织两个字符串的所有可能方法
我最近在stackoverflow上看到了这个问题。这是一个很好的问题,但是这个问题有一个致命的问题。他们正在寻求最佳方法。例如,最容易阅读,最惯用,最整洁等。他们不知道这并不重要吗?您应该问如何用最少的代码字节来做! 因为我怀疑这个问题会在stackoverflow上得到赞赏,所以我决定在这里提问。 挑战 您必须编写最短的程序或函数,以生成所有可能的方式来交织任意两个任意字符串。例如,如果两个字符串是'ab'和'cd',则输出为: ['abcd', 'acbd', 'acdb', 'cabd', 'cadb', 'cdab'] 如您所见,a总是在b,并且c总是在d。 IO可以采用任何合理的格式。使用此python代码进行验证以检查您的输出。(信用:JeD) def shuffle(s,t): if s=="": return [t] elif t=="": return [s] else: leftShuffle=[s[0]+val for val in shuffle(s[1:],t)] rightShuffle=[t[0]+val for val in shuffle(s,t[1:])] leftShuffle.extend(rightShuffle) return leftShuffle 样本IO: shuffle("$", "1234"): ['$1234', '1$234', '12$34', '123$4', '1234$'] shuffle("az", "by"): ['azby', 'abzy', 'abyz', 'bazy', …

3
遵循不完整的指示
您的一位朋友已为您指示了镇上最好的餐厅。这是一系列的左转和右转。不幸的是,他们忘了提到在这些转弯之间需要走多长时间。幸运的是,您有一张包含所有餐厅的街道地图。也许您能弄清楚他们的意思是哪家餐厅? 输入项 该地图以ASCII字符的矩形网格形式给出。.之路,#是一个建筑,A到Z是各种餐馆。您从左上角开始,向东行驶。例: .....A .#.### B....C ##.#.# D....E ##F### 您朋友的说明将以(可能为空)字符串或包含Ls和Rs 的字符列表的形式给出。 输出量 您可以走与输入字符串中的左转和右转相对应的任何路径,前提是您在每个位置之前和末端至少向前走了一步。特别是,这意味着如果字符串以R您开头,则不能在最左边的列中立即向南移动。这也意味着您不能当场旋转180°。 除了最后到达的那栋建筑物或餐厅,您不能漫步。您可以假设左上角为.。 您应该将您朋友指示下可以到达的所有餐馆输出为字符串或列表。 您可能会认为这些说明将导致至少一家餐馆。例如,一张单张L对于以上地图无效。 上图的一些示例: <empty> A R F RR B,D RL C,E RLRL E RLLR C RLLL B RLRR D RLRRRR A,C RLLLRLL B 请特别注意R达不到B。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 适用标准代码高尔夫球规则。 其他测试用例 这是一张较大的地图,由Conor O'Brien提供(我对此做了一些修改): .......Y..........................###### .####.....#.##....##..######....#.###.## B.........#.##.#..##....##...##.#.#P...# .#.#####..#.##..#.##....##.#....#.####.# .#.#...C..#.##...G##..#.##.#....#.#....# .#.#.#.#..#.####.###.#..##.#....#.#.NO.# .#.#A#.#..#.##...F###...##.#.##.#......# …

14
生成最小余数序列
每个数字都可以使用无限长的余数序列表示。例如,如果我们把7号,并执行7mod2,那么7mod3,那么7mod4,依此类推,我们得到的1,1,3,2,1,0,7,7,7,7,....。 但是,我们需要尽可能短的余数子序列,该子序列仍可用于将其与所有较低的数字区分开。再次使用7 [1,1,3]是最短的子序列,因为所有先前的子序列都不以开头[1,1,3]: 0: 0,0,0,0... 1: 1,1,1,1... 2: 0,2,2,2... 3: 1,0,3,3... 4: 0,1,0,4... 5: 1,2,1,0... 6: 0,0,2,1... 请注意,[1,1] 它不能代表7,因为它也可以代表1。但是,您应该[1]输入1。 输入输出 您的输入是一个非负整数。您必须输出如上定义的余数的最小长度序列或序列。 测试用例: 0: 0 1: 1 2: 0,2 3: 1,0 4: 0,1 5: 1,2 6: 0,0,2 7: 1,1,3 8: 0,2,0 9: 1,0,1 10: 0,1,2 11: 1,2,3 12: 0,0,0,2 30: 0,0,2,0 …

9
矩形检测
编写一个包含0“ s”和1“ s ”的多行字符串的程序或函数。字符串中不会再有其他字符,并且字符串始终将是矩形的(所有行将具有相同数量的字符),尺寸小至1×1,但否则可以任意排列0'和1'。 您可以假设该字符串具有可选的尾随换行符,并且如果需要,可以使用任意两个不同的可打印ASCII字符代替0和1。 打印或返回truthy值,如果所有的的路径连接的区域都0的和1的中的字符串是实心矩形,否则输出falsy值。 甲路径连接区域的0“是,从任何一个S是指0在该区域中,所有其它0的可以通过仅向上移动达到,下,左,右等0的(和不倾斜地移动,不移动到任何1和不会超出字符串范围)。同样的想法适用于1路径连接区域。 甲实心矩形的0的手段的矩形的整个区域被填充0的和没有1的。同样的想法适用于1实心矩形。 以字节为单位的最短代码获胜。抢七是较早的答案。 (请注意,字符串不会与环形边界条件一起环绕。) 例子 1)此输入字符串具有3个路径连接的区域(2个用于0,1个用于1)。但是,只有右下角的00区域是一个实心矩形,因此输出将是虚假的。 0011 0111 0100 2)该输入字符串具有4个路径连接的区域(2两者0和1)。它们都是实心矩形,因此输出将是真实的。 0011 0011 1100 3)此输入具有2条路径连接的区域,但其中只有一个是实心矩形,因此输出将是虚假的。 00000000 01111110 00000000 4)此输入只有1条路径连接的区域,并且是一个实心矩形,因此输出是真实的。 11111111 11111111 11111111 测试用例 T输入字符串下方的A 表示真实,F表示虚假。 0 T 1 T 00 T 01 T 10 T 11 T 0000000 T 1111111 T 011100100100101100110100100100101010100011100101 T 00 11 …

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.