Questions tagged «code-golf»

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

11
求和一个立方体的脸
手动求和Cubically多维数据集的脸是繁琐且耗时的,有点像用Cubically本身编写代码。 在“ 最有效的优化器”中,我要求您将ASCII转换为Cubically源。答案之一是使用多维数据集初始化序列,然后根据预初始化的多维数据集之和修改所得的多维数据集。此后,该方法已在许多与Cubub相关的程序中使用。测试新的初始化序列时,必须将所有面上的所有值加起来,通常需要两到三分钟。 您的任务是为我们自动化此过程! 您将接受两个输入,一个整数n和一个字符串c。这些可以从命令行参数,函数参数,标准输入,文件或它们的任何组合中读取。c将是一个立方大小的存储多维数据集,其大小n由解释程序漂亮地打印出来。 Cubically解释器在程序终止时将其多维数据集转储到STDERR,格式正确,易于查看。在Cubically解释器中运行一个空程序,然后打开debug部分以查看已初始化多维数据集的多维数据集转储。添加参数4以查看4x4x4或55x5x5等。 如果n为3,c将遵循以下格式(整数将是可变的): 000 000 000 111222333444 111222333444 111222333444 555 555 555 空格,换行符以及所有内容。如果n为4,c则将如下所示(也带有可变整数): 0000 0000 0000 0000 1111222233334444 1111222233334444 1111222233334444 1111222233334444 5555 5555 5555 5555 等等。 您的程序将输出六个整数。第一个整数将是顶面上所有数字的总和。 000 000 top face 000 111222333444 left, front, right, and back faces, respectively 111222333444 111222333444 555 555 bottom face …

28
数组分解
给定一个正整数数组,输出这些整数的不同素数的稳定数组。换句话说,对于输入中的每个整数,按顺序获取其质数因子,对其进行排序,然后将输出中尚未存在的任何质数附加到输出中。 测试用例 [1,2,3,4,5,6,7,8,9,10] -> [2,3,5,7] [10,9,8,7,6,5,4,3,2,1] -> [2,5,3,7] [100,99,98,1,2,3,4,5] -> [2,5,3,11,7] [541,60,19,17,22] -> [541,2,3,5,19,17,11] [1,1,2,3,5,8,13,21,34,45] -> [2,3,5,13,7,17] [6,7,6,7,6,7,6,5] -> [2,3,7,5] [1] -> [] [8] -> [2] [] -> [] 输出可以是整数或字符串的数组或列表,定界输出或输出数字的有序列表的任何其他标准方式。 这是代码高尔夫球,因此最短答案以字节为单位。

4
九头蛇杀手的归来
自从您杀死那只九头蛇以来已经有一段时间了,您沉浸在荣耀中已有好几年了,但是现在人们都在呼唤您,被洗净了。好了,现在您可以证明它们是错误的,您已经听说了另一只蛇蝎的下落。杀死它,您将获得应有的所有荣耀。 您到达军械库时会收到您的剑,但它们全都是普通剑,只剩下部门。一个n扇区将九头蛇的头数除以n,但仅当头数可被n整除时才能使用。 再一次,您将要编写一些代码来帮助您杀死hydra。您的代码将输入九头蛇的头数,开始战斗,九头蛇每回合增加的头数,以及可以使用的n个扇区的列表。您的代码将输出最佳移动方式,以尽快消灭水蛇 战斗的每一回合,您都可以选择一把剑来使用,如果在一片水after之后只有一个头赢得了您,如果没有,您会长出头。您可能永远不会采取任何行动,如果没有可能采取的行动,您将会输掉。 如果没有解决方案,您可能会输出除解决方案以外的任何内容,例如,空列表,无内容,数字零等。 这是代码高尔夫球,因此答案将按字节数计分,少者更好。 测试用例 这是一些超级基本的测试用例,如果需要,可以添加更多的测试用例。 24 heads, 1 heads per turn, [2,3] -> [3,3,2,3] 25 heads, 2 heads per turn, [2,3] -> No solutions 4 heads, 2 heads per turn, [2] -> No solutions 4 heads, 3 heads per turn, [2,5] -> [2,5] 10 heads, 17 heads …
13 code-golf  math  number  game 

5
辐射终端黑客
这里有人是贝塞斯达的忠实粉丝吗?也许您更喜欢黑曜石娱乐公司?好吧,如果您属于上述两种情况之一,那么您应该相对熟悉下图。 我已经准备了一个非常独特的ASCII艺术挑战赛,因此这是我要做什么的第一个线索: _____________________________________________________ / \ | _____________________________________________ | | | | | | | Welcome to ROBCO Industries (TM) Termlink | | | | Password Required | | | | Attempts Remaining: | | | | | | | | 0x01 | 0x0D | | | | 0x02 | 0x0E …

1
成为九头蛇杀手
您是该地区最好,最著名的英雄。最近,有传言说九头蛇一直在附近的峡谷中闲逛。作为您的勇敢和善良的英雄,您会发现今天晚些时候可以去检查一下。 水合物的问题在于,每当您尝试切断其头部时,都会有一些新的头部长回来。幸运的是,您拥有可以一次切断多个头部的剑。但是要注意的是,如果九头蛇的头部少于刀口,那么您将无法攻击九头蛇。当九头蛇的头部完全为零时,您就杀死了它。 还有一把特殊的剑,叫做“平分器”,可以切断九头蛇一半的头,但前提是头数是偶数。当头数为奇数时,完全不能使用平分线。这与切断零头不同。 因此,您已经决定要编写一个计算机程序,以找出消灭九头蛇的最佳方法。 任务 您将获得输入 九头蛇开始的头数 九头蛇每回合的头数 可供使用的剑列表(每把都是平分线或每回合切割固定数目的刀头) 您应该输出一个动作列表,该动作将在尽可能少的回合时间内杀死九头蛇。如果没有办法杀死九头蛇,那么您必须输出其他值来指示这样做(如果您的语言是强类型的,则可以使用空列表)。如果有多种消灭九头蛇的最佳方法,您可以输出其中任何一种或全部。 这是一个代码问题,因此答案将以字节计分,而字节越少越好。 测试用例 可根据要求提供更多 5 heads, 9 each turn, [-1,-2,-5] -> [-5] 12 heads, 1 each turn, [/2,-1] -> No solution 8 heads, 2 each turn, [-9, -1] -> [-1,-9] 3 heads, 23 each turn, [/2,-1,-26] -> [-1,-1,-26,-26,-26,-26,-26,-26,-26,-26] 16 heads, 1 …
13 code-golf  math  game 

5
秩相关系数
常用的相关系数(在2d中)用于衡量一条线对一组点的描述程度,如果是,则其符号指示我们是正相关还是负相关。但这是假设这些点的坐标实际上可以定量地解释为例如测量值。 如果你不能做到这一点,但你仍然可以订购的坐标,有秩相关系数:它测量如何好点可以通过描述单调函数。 挑战 给定一个二维点列表,确定它们的等级相关系数。 细节 您可以假定输入是正整数(但不必这样做)或任何其他“可排序”值。 这些点可以当作一个点的列表,也可以当作两个x和y坐标列表,矩阵或2d数组等。 输出必须是浮点数或有理数类型,因为它应表示介于0和1之间的实数。 定义 等级:给定数字列表,X=[x(1),...,x(n)]我们可以为每个条目分配一个rx(i)称为等级的正数x(i)。我们通过对列表进行排序并x(i)在已排序的列表中分配的索引来实现rx(i)。如果两个或两个以上x(i)具有相同的值,则仅使用所有相应索引的算术平均值作为等级。例: List: [21, 10, 10, 25, 3] Indices sorted: [4, 2, 3, 5, 1] 该数字10在此出现两次。在排序的列表中,它将占据索引2和3。这些的算术平均值2.5是 Ranks: [4, 2.5, 2.5, 5, 1] 秩相关系数:设[(x(1),y(1)),(x(2),y(2)),...,(x(n),y(n))]在给定的点,其中每个x(i)和y(i)是实数对于每一个(wlog你可以认为它是一个整数。)i=1,...,n我们计算的秩 rx(i)和ry(i)的x(i)和y(i)分别。 让d(i) = rx(i)-ry(i)是等级差别,让S被总和S = d(1)^2 + d(2)^2 + ... + d(n)^2。然后秩相关系数 rho为 rho = 1 - 6 * …

8
最小出租车距离图
挑战说明 在出租车度量中,两点之间的距离定义为: 考虑一个只有零和一的矩阵: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 让我们每个映射1到到最接近的距离不同 1的矩阵(当然,假设相邻两行/列之间的距离等于1): 0 0 0 3 0 2 0 0 0 0 0 0 0 0 0 1 0 0 3 0 …

4
这个数字怎么样?
费马数是可表示为2 2 x +1且带整数x的正整数。 现在让我们定义一个称为“ Fermat-ness”的数字的属性: 从基数开始,该数的费马性比二的幂的链的长度小一,其中二的幂被扩展以最大化费马性。 非费马数的数字的费马率为零。 因此,17(= 2 2 2 2 0 +1)具有费马能级3。 挑战 给定一个非零正整数作为输入,输出数字的费马性。 规则 您可以采用二进制,十进制,十六进制,大数字等输入形式,也可以采用让您最满意的格式 您的解决方案必须能够处理长度超过64的数字,无论您使用哪种表示形式。 仅非负整数幂。 当然禁止出现标准漏洞。 这是代码高尔夫球,因此最短的答案会获胜。 测试用例 这些是格式input->output。输入为十六进制以节省空间。 10000000000000000000000000000000000000000000000000000000000000001 -> 2 1000000000000BC00000000000000000000000000000000001000000000000001 ->0 1234567890ABCDEF -> 0 100000000000000000000000000000001 -> 1 5 -> 2 11 -> 3 10001 -> 4 101 -> 1 十进制相同: 115792089237316195423570985008687907853269984665640564039457584007913129639937 …

3
一条河可以穿越多少条路?
想象一条直河和一条穿过桥梁穿越河N次的道路。这条路不会自行循环,并且会无限长。这条路将被视为一条蜿蜒的道路。一个开放的曲折是一个开放的曲线,该不相交本身和在两端,其交叉的线延伸无限Ñ次。 有效曲折可以完全通过其访问的交点的顺序来描述。 一个曲折可以与n个相交的相交的不同模式的数量为n 个平均数。例如,n = 4: 该序列的前几个数字是: 1, 1, 1, 2, 3, 8, 14, 42, 81, 262, 538, 1828, 3926, 13820, 30694, 110954... 这是OEIS序列A005316。 挑战 编写一个程序/函数,将正整数n作为输入并打印第n个平均数。 技术指标 适用标准I / O规则。 标准的漏洞被禁止。 您的解决方案可以是0索引或1索引,但是请指定。 挑战并不是要找到所有语言中最短的方法,而是要找到每种语言中最短的方法。 除非另有说明,否则您的代码通常以UTF-8编码形式以字节计分。 允许使用内置函数来计算此序列,但鼓励使用不依赖内置函数的解决方案。 鼓励甚至对“实用”语言进行解释。 测试用例 这些是0索引的。请注意,如果您的语言默认情况下无法处理这么大的数字。 Input Output 1 1 2 1 11 1828 14 30694 21 73424650 …

1
Python清单中最常见的元素
这是使用Python打高尔夫球的提示问题,这是main的主题。 我正在寻找以最短的方法获取Python列表中所有最常见元素的最短方法。这是我尝试过的方法,假设列表位于一个名为的变量中l: from statistics import* mode(l) 如果存在多种模式,则会引发错误。 max(l,key=l.count) 这仅返回1个项目,我需要获取所有具有最大数量的元素。 from collections import* Counter(l).most_common() 这将返回的元组列表(element, count),按计数排序。从中我可以拉出所有相应元素等于第一个元素的所有元素,但是我认为没有比这更好的高尔夫方法了: from collections import* c=Counter(l).most_common() [s for s,i in c if i==c[0][1]] 我敢肯定有更短的方法! 另外,如果可以在不进行变量分配或不使用的情况下完成此操作l,则我可以将其余代码保留为lambda表达式,以节省更多字节。 编辑:根据@Uriel的建议,我们可以执行以下操作: {s for s in l if l.count(s)==l.count(max(l,key=l.count))} 我可以别名list.count几个字节: c=l.count;{s for s in l if c(s)==c(max(l,key=c))} @Uriel指出我们可以通过以下方式获得更多的字节map: c=l.count;{s for s in l …
13 code-golf  tips  python 

16
给我建一座城堡楼梯!
您将得到一个由可打印ASCII组成的字符串(没有换行符)。您的任务是为我的城堡建造一个漂亮的楼梯。 如何建立一个漂亮的楼梯? 首先,您应该获得String的所有旋转。例如,字符串abcd具有以下旋转角度:(abcd, bcda, cdab, dabc每个字符都移到末尾,直到到达最后一个字符为止)。 现在,我们将每个旋转彼此叠加: abcd bcda cdab dabc 我们不能真正爬上直墙,所以我们必须建造楼梯。这意味着您应该在每次旋转之前在旋转列表中为其索引添加一些空格: abcd bcda cdab dabc 您还需要连接到我城堡另一侧的楼梯,因此您应该像下面这样建造楼梯,反转每次旋转并增加一些间距: abcd dcba bcda adcb cdab badc dabccbad 这是code-golf,因此以字节为单位的最短代码获胜,并且适用标签的标准规则。 测试用例 输入:abcd,输出: abcd dcba bcda adcb cdab badc dabccbad 输入:aaaa,输出: aaaa aaaa aaaa aaaa aaaa aaaa aaaaaaaa 输入:Code golf,输出(注意空格): Code golf flog edoC ode golfC …

2
这些辫子相等吗?
如果您不熟悉辫子理论,建议您先阅读本节。这个问题假设您至少熟悉手头的概念,并假设您熟悉小组理论 让我们定义σ Ñ为其中所述编织物Ñ从顶部越过所述第链(一个索引)的n + 1个链,和σ Ñ -是的逆σ Ñ(即在N + 1个链与第n个链交叉)。 编织物组乙Ñ然后通过产生<σ 1,σ 2,σ 3,。。。,σn -1 >。因此,B n上的每个编织都可以写成σ编织的乘积。1个 确定一组上的两个辫子是否相等并不是一件容易的事。这可能是很明显,σ 1 σ 3 =σ 3 σ 1,但它是不那么明显的是,例如σ 2 σ 1 σ 2 =σ 1 σ 2 σ 1。2 因此,问题是“如何确定两个辫子是否相同?”。上面的两个示例分别代表了这一点。通常,以下关系称为阿丁关系: σ 我 σ Ĵ =σ Ĵ σ 我 ; i-j> 1 σ 我 …

9
凯撒的转变
描述 凯撒移位(Caesar Shift)是一种非常简单的单字母密码,其中每个字母都被替换为字母中的一个字母。例: Hello world! -> IFMMP XPSME! (IBSLR, EGUFV!是实际挑战的输出,这是移动1的示例。) 如您所见,空格和标点符号保持不协调。但是,为防止猜测消息,所有字母均大写。通过将字母向后移,可以解密该消息,很方便,但是真的很容易被不知道该消息含义的其他人解密。 因此,我们将通过使用一种高级形式的密码来帮助Caesar:Self-shifting Caesar Shift! 挑战 您的任务是编写一个程序或函数,给定要加密的字符串,然后输出与输入相对应的加密字符串。先进的Caesar Shift的工作方式如下: 1. Compute letter differences of all adjacent letters: 1.1. Letter difference is computed like this: Position of 2nd letter in the alphabet -Position of 1st letter in the alphabet ======================================= Letter difference 1.2. …

10
三重平衡数
描述 如果将三部分中的每一部分中的数字总和为相同的数字,我们认为该整数具有至少三位数的三重平衡。我们按如下方式拆分数字: abcdefghi - Standard case: the number of digits is divisable through 3: abc def ghi abcdefgh - Number % 3 == 2: The outer groups are both assigned another digit abc de fgh (the inner group will have one digit less than both outer groups) abcdefghij - Number …

2
循环字符串,隐藏程序
编写3个程序来执行以下任务: 让A,B,C这三个程序的源代码; 如果A产生BC作为输出, 如果B运行CA, 如果C运行AB产生; 因此,每个程序都会编写一个字符串(为每个程序循环),并对其隐藏自身。 其他但必不可少的约束: 禁止出现标准漏洞; 每个程序必须至少1个字节长; 三个程序中的每个程序都必须使用不同的语言编写; 如果您的提交具有以下格式,那就太好了: 语言A(A的大小)-语言B(B的大小)-语言C(C的大小)-得分 A B C <extra stuff> 获胜者是获得最低分数的人,这是三个程序的总和。
13 code-golf  quine 

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.