Questions tagged «code-golf»

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

1
自动循环奎
做一个奎因,但要稍加扭曲。 声明 quine打印其代码,但将其第一个字符放在末尾。 (您可以反向执行,但在答案中包括该注释) 然后,输出必须是一个程序,这也是一个解决方案。 示例:假设您的代码为foobar,运行它将返回oobarf,它将是另一个有效程序。 foobar -> oobarf oobarf -> obarfo obarfo -> barfoo barfoo -> arfoob arfoob -> rfooba rfooba -> foobar 规则 您的代码一定不能是其他人明显偷窃的某代代码的输出 您的代码长度必须超过2个字符(因此,短代码没什么意思) 您的代码必须至少包含两个不同的字符(例如:+++无效) 计分 作为代码高尔夫球挑战,最短的代码获胜。
11 code-golf  quine 

2
找出我的邻居
输入由包含邻居信息的i行组成。每个我个行包含4个值,代表的邻居我到北,东,南与西方向,分别。因此,每个值代表在给定方向的邻居我个行,从第1行开始,并且可以达到65,535行。的0值表示没有邻居到该方向。 例如,如果第一行是“ 0 2 3 10”,则表示第i个邻居还有其他三个邻居:北方没有邻居,东方没有邻居2,南方没有邻居3,西方没有邻居10。 您需要从最接近西北的值开始输出邻居数组。每个邻居在相对于其他邻居的位置仅显示一次。让我们看一些例子: 输入: 0 0 0 0 无邻居(空情况),输出: 1 输入: 0 2 0 0 0 0 0 1 1在东边有邻居2。2在西边有邻居1 输出: 1 2 输入: 0 2 0 0 0 0 3 1 2 0 0 0 1在东边有邻居2。2在西边有邻居1,在南边有邻居3。3在北部有邻居2 输出: 1 2 3 输入: 2 0 0 0 …

17
产生一个轮换词列表2
轮名2 “ Rotonym”是ROT13转换为另一个单词(使用相同语言)的单词。 对于这个挑战,我们将使用一个替代定义:“ Rotonym”是一个单词,可以循环移位/旋转为另一个单词(使用相同的语言)。 例如: 'stable' < 'tables' < 'ablest' 'abort' > 'tabor' 'tada' >> 'data' 挑战 编写一个程序或函数,该程序或函数接受词典/单词列表,并打印或返回完整的轮换单词列表。 顺序无关紧要。 比较应该不区分大小写,因此可以假定输入将作为仅小写的字典传递。 结果应表示为单个单词(而不是对),并且不包含重复项,因此您可以假设输入内容不包含重复项。 这是代码高尔夫球。 例 给定 ablest abort green irk stable tables tabor tata terra vex you 返回 ablest abort stable tables tabor 真实的测试 给定 a aa aal aalii aam aani …
11 code-golf 

7
恢复范围参数
描述 您会得到一个范围函数的结果,其中每个元素都已四舍五入到最接近的整数。您的目标是恢复原始列表。 例如,以下函数(在Python3中)将为您的程序产生一个输入: from numpy import arange, floor def floored_range(A, B, C): return list(floor(arange(A, B, C))) 程序的输出应该是原始数据的有效猜测。在这里,有效的猜测意味着它必须在落地时与输入完全匹配,并且必须是范围函数的可能输出(即,在绘制时必须形成一条完美的直线)。 例子 Input: [1,2,3,4] Output: [1,2,3,4] Input: [1,2,3,4] Output: [1.9,2.7,3.5,4.3] Input: [1,2,3,4,5,5] Output: [1.9,2.7,3.5,4.3,5.1,5.9] Input: [1,1,2,2,3,3,4,4] Output: [1,1.5,2,2.5,3,3.5,4,4.5] Input: [1,1,2,3,3,4] Output: [1,1.7,2.4,3.1,3.8,4.5] Input: [56, 54, 52, 50, 48, 45, 43, 41, 39, 37, 35, …
11 code-golf 

4
挖掘采石场游戏中时光倒流
您喜欢在几分钟内观看完建筑或其他大型工作的时光倒流吗?让我们在这里做一个。 我们将看挖掘机的采石场,每天拍摄照片以查看整个进度。您的任务是向我们展示此过程! 采石场由其第一层的宽度定义。 挖掘机的定义是一天之内的挖掘能力。 输入值 采石场的宽度。整数,始终> =1。 挖掘机挖掘速度。整数,始终> = 1。 输出量 每天采石场的进度。从平坦的未接触地面开始,直至完成采石场。 规则 在最后一天,挖掘的单位可能少于挖掘机的能力。过多的工作不会在任何地方使用,因此您应该只输出完全挖掘的采石场。 必须整天都在输出中显示进度。您无法清除或覆盖输出中的前一天进度。 每天输出的尾随换行符和前导换行符的数量均可接受。 这是代码高尔夫,因此请使代码尽可能紧凑。 澄清说明 工作从平坦的地面开始。所显示地面的长度是采石场的宽度+2。因此,在采石场的两侧始终会有一个下划线字符。 __________ 挖掘采石场的宽度看起来像这样: _ _ \ / \ / \ / \/ 像这样的奇数宽度 _ _ \ / \ / \ / V 以下是采石场进度的示例: _ _______ V dug 1 unit _ ______ \/ …

4
Base Pi中的整数
背景: Pi(π)是一个超越数,因此具有一个非终止的十进制表示形式。同样,如果以其他整数为基数,表示形式也不会终止。但是,如果我们将它写在基础上π怎么办? 小数位数代表10的幂,因此: π = 3.14… = (3 * 10^0) + (1 * 10^-1) + (4 * 10^-2) + … 因此,以base为底π,数字将代表以下各项的幂π: π = 10 = (1 * π^1) + (0 * π^0) 在这个新的基础上,整数现在具有非终止表示形式。因此,十进制的10现在变为: 10 => 100.01022… = (1 * π^2) + (0 * π^1) + (0 * π^0) + (0 …

3
疯狂但理性的基础
基于10、2、36甚至-10,我们面临许多挑战,但是其他所有理性基础又如何呢? 任务 给定以10为底的整数和有理底数,请以该底数返回整数(作为数组,字符串等)。 处理 很难想象一个合理的基础,因此让我们使用爆炸点将其可视化: 考虑这个动画,以基数3表示17: 每个点代表一个单位,框代表数字:最右边的框是一个位置,中间的框是3 ^ 1位置,最左边的框是3 ^ 2位置。 我们可以从一个地方的17个点开始。但是,这是基数3,因此该位置必须小于3。因此,我们“爆炸” 3个点,并在左侧的框上创建一个点。我们重复此过程,直到最终得到一个没有爆炸点的稳定位置(即同一框中的3个点)。 因此,以10为底的17是以3为底的122。 分数基数类似于将一些点分解为一个以上的点。基数3/2将爆炸3个点以创建2。 以3/2为基数表示17: 因此,以10为底的17是以3/2为底的21012。 负基的工作原理与此类似,但是我们必须跟踪符号(使用所谓的反点,等于-1;用空心圆表示)。 以-3表示17: 注意,还有额外的爆炸使所有框的符号相同(忽略零)。 因此,以10为底的17是以-3为底的212。 否定的有理基础在以上两种情况的组合中也类似地起作用。 规则 没有标准漏洞。 输出中每个“数字”的符号必须相同(或为零)。 所有数字的绝对值必须小于基数分子的绝对值。 您可以假定基数的绝对值大于1。 您可以假设一个理性基数是其最小化形式。 您可以在输入中分别计算基数的分子和分母。 如果一个数字具有多种表示形式,则可以输出其中任何一种。(例如,12在基体10可以是{-2, -8}和{1, 9, 2}在碱-10) 测试用例: 格式: {in, base} -> result {7, 4/3} -> {3, 3} {-42, -2} -> {1, 0, 1, …

3
同名,me子!
编写一个函数或程序,当给定名称列表时,输出或返回一个列表,其中给定名称的重复项具有其姓氏的唯一缩写形式。 输入: 名称列表,其中名称由给定名称定义,姓氏由空格分隔。名称是仅包含大写和小写字母的非空字符串。该列表可以是字符串数组,也可以是用恒定的非字母,非空格字符分隔的名称,但是输出的格式必须与输入的格式相同。 输出: 输入名称的列表,其顺序和格式与通过以下规则修改的输入相同: 对于唯一的给定名称,仅输出给定名称 对于具有相同给定名称的名称: 除了其给定名称外,还要添加其姓氏的最短唯一版本,该版本不与其他名称共享,后跟一个句点。例如: John Clancy, John Smith变John C.,John S.和James Brown, James Bratte变James Bro.,James Bra. 如果一个姓氏是另一个姓氏的子集,例如Julian King,Julian Kingsley,则返回较小的姓氏的完整姓氏,不带句点。这个例子将成为Julian King,Julian King. 基本上,句点代表正则表达式.+,其中只有一个名称应与之匹配。 您可能会假设没有人会共享相同的给定名称和相同的姓氏 名称区分大小写 测试用例: John Clancy,Julie Walker,John Walker,Julie Clancy -> John C.,Julie W.,John W.,Julie C. Julian King,Jack Johnson,Julian Kingsley > Julian King,Jack,Julian King. Jack Brown,Jack Black,Jack …

20
月球两点之间的距离
给定的两个点的纬度/经度在月球(lat1, lon1)和(lat2, lon2),计算两个点之间的距离以公里,通过使用任何式给出相同的结果haversine公式。 输入值 四个整数值lat1, lon1, lat2, lon2(度)(角度)或 ϕ1, λ1, ϕ2, λ2以弧度表示的四个十进制值。 输出量 两点之间的距离(以公里为单位)(十进制任意精度或四舍五入整数)。 Haversine公式 哪里 r 是球体的半径(假设月球的半径为1737公里), ϕ1 点1的弧度(弧度) ϕ2 点2的弧度(弧度) λ1 点1的经度(弧度) λ2 点2的弧度 d 是两点之间的圆形距离 (来源:https : //en.wikipedia.org/wiki/Haversine_formula) 其他可能的公式 d = r * acos(sin ϕ1 sin ϕ2 + cos ϕ1 cos ϕ2 cos(λ2 - λ1)) @miles的公式。 d …

6
菱形序列
想象一下枚举增长的菱形元素[1],[1,3,1],[1,3,5,3,1],…(只有奇数才能使它们很好地对齐)。看起来如下所示,请注意,您始终使用以下方法开始枚举1: 01 1 02 03 04 1 2 3 4 05 06 07 08 09 … 5 10 11 12 13 (1) (1,3,1) (1,3,5,3,1) (1,3,5,7,5,3,1) … 现在,如果您开始对列([1],[2],[1,3,5],[4],[5],[2,6,10],…)求和,您将得到菱形序列。这些是所述序列的前100个元素: 1,2,9,4,5,18,35,24,9,10,33,60,91,70,45,16,17,54,95,140,189,154,115,72,25,26,81,140,203,270,341,288,231,170,105,36,37,114,195,280,369,462,559,484,405,322,235,144,49,50,153,260,371,486,605,728,855,754,649,540,427,310,189,64,65,198,335,476,621,770,923,1080,1241,1110,975,836,693,546,395,240,81,82,249,420,595,774,957,1144,1335,1530,1729,1564,1395,1222,1045,864,679,490,297,100 IO 您可以自由选择以下三种输入/输出方法之一(您无需处理无效的输入): 给定整数n,则按该顺序输出第n个元素(0或1索引,您可以选择) 给定整数n输出该序列的前n个元素 不确定地打印/返回序列 测试用例 请参考上面的前100个术语,这是一些较大的示例(1索引): 101 -> 101 443 -> 1329 1000 -> 49000 1984 -> 164672 2017 -> 34289 …

6
数羊入睡
大多数人都熟悉这种数羊入睡的方法。有一群绵羊,其中一些在篱笆上跳跃,而您在绵羊跳跃时数数。据说,这可以使您的思维平静下来,并使您进入类似睡眠的状态,从而使您入睡。 这是一个面向右侧的ASCII绵羊,等待被计数: '00^> || 这是跳过篱笆的ASCII绵羊: '00^> /\ ++ 这是一个已被数过的朝左的人: <^00' || 挑战 给定两个输入整数,n和m,n > 2描述总共有多少只绵羊,并m > 0说出已经计数了多少只绵羊,输出一个ASCII艺术表示形式来计数要入睡的绵羊。 现在来看一下: 由于绵羊所处的围栏大小,第一排只能容纳最多的10绵羊,这还不包括当前跳跃的绵羊,绵羊也必须始终位于第一排。 随后的各行不能将羊放在各自的笔外(第二行的左边羊不能比第一行的羊多,右边的羊也不能多)。 如果11绵羊总数超过或等于总数,则第一行中必须包含10跳跃的绵羊。 前导/尾随空格和绵羊之间的空格无关紧要,只要: 绵羊之间至少要有一个空白字符 所有字符都正确排列。 只要符合这些规则,绵羊的实际安排就取决于您的实现。 例子 例如,这是n=3和m=1,是最简单的情况。 '00^> '00^> /\ <^00' || ++ || 这是n=11和m=6,可以容纳在一条水平线上的最多的绵羊。 '00^> '00^> '00^> '00^> '00^> /\ <^00' <^00' <^00' <^00' <^00' <^00' || || || …

4
平衡三元逻辑
平衡三元逻辑 三元通常为基地3个,也就是另外一个名字,每一个数字是0,1或2和每一个地方是值得的3倍之多的下一个地方。 均衡三元是三元的变形例,它使用的位数-1,0和1。这具有不需要标志的优点。每个地方的价值仍然是下一个地方的3倍。因此,前几个正整数[1],[1, -1],[1, 0],[1, 1],[1, -1, -1]而前几个负整数是[-1],[-1, 1],[-1, 0],[-1, -1],[-1, 1, 1]。 您有三个输入x, y, z。z或者是-1,0,或1,而x且y可以来自-3812798742493于3812798742493以下。 第一步是将十进制转换为平衡三进制x并转换y。这应该给您27个三叉戟(三重digITS)。然后,您必须使用三元运算来组合来自x和y成对的Trits ,然后将结果转换回十进制。 您可以选择z映射到以下三个三元操作之一的值: A:给定两个Trit,如果其中一个为零,则结果为零,否则,如果它们不同,则结果为-1,如果相同则为1。 B:给定两个Trit,如果其中一个为零,则结果为另一个Trit,否则,如果它们不同,则结果为零;如果它们相同,则为负数。 C:给定两个Trit,如果它们不同则结果为零,如果它们相同则结果为零。 例。假设x是29和y是15。在平衡三元组中,它们变为[1, 0, 1, -1]和[1, -1, -1, 0]。(为简便起见,其余23个零零位省略了。)在每个相应的操作之后,它们变为A:[1, 0, -1, 0],B:[-1, -1, 0, -1],C:[1, 0, 0, 0]。转换回十进制的结果24,-37并27分别。请尝试以下参考实现以获取更多示例: 显示代码段 function reference(xd, yd, zd) { var rd = 0; var p3 …

4
解码因子树
如果您错过了编码因子树,这是因子树的定义: 空字符串为1。 串联表示乘法。 括号(或任何成对的字符)中包含的数字n表示第n个质数,其中2是第一个质数。 请注意,这是递归完成的:第n个素数是括号中n的因数树。 数量的因数应按从小到大的顺序排列。 例如,以下是2到10的因子树: () (()) ()() ((())) ()(()) (()()) ()()() (())(()) ()((())) 这个挑战使用了类似的格式。然而,这个挑战是对这些结构进行解码。 测试用例 无耻地被盗 改变用途从上个挑战。 除了上面的9个之外…… ()()((()))((())) => 100 (()(()(()))) => 101 (()())(((())))(()(())) => 1001 (((((((()))))))) => 5381 (()())((((()))))(()()(())(())) => 32767 ()()()()()()()()()()()()()()() => 32768 规则 输入中的成对字符是您选择的括号,方括号,大括号或尖括号。如果要求,我可以允许其他格式(例如XML标记)。 您应该能够处理2到2 15或32768中任何数字的因子树。 由于这是代码高尔夫球,因此以字节为单位的最短答案会获胜。

5
素数
这没有实际目的,但打高尔夫球可能会很有趣。 挑战 给定数字n, 计算n中每个数字的数量并向每个计数加1 采取的素数分解 n 计算n的素数分解中每个数字的数量,但不包括重复的素数 通过将步骤1和步骤3中列表的各个元素相乘来创建一个新列表 返回该列表的总和 例如,121具有两个1s和a 2,因此您将从步骤1中获得以下列表: 0 1 2 3 4 5 6 7 8 9 1 3 2 1 1 1 1 1 1 1 121的素数分解为11 2,这给出了步骤3的以下列表: 0 1 2 3 4 5 6 7 8 9 0 2 0 0 0 0 0 …

12
列出0000-01-01至99999-12-31之间的所有回文素数日期
您知道回文,素数和日期是什么。 您的任务是列出满足所有三个特征的十万年的所有日期。 除了数字外,别无其他,请使用以下格式:YYYYMMDD和YYYYYMMDD。 0000-01-01和9999-12-31之间的日期应打印为8位回文日期(如果有?),而10000-01-01和99999-12-31之间的日期应打印为9位回文日期。 按时间顺序列出日期不是强制性的。 有效输出的示例部分。 前三个9位数主要回文日期: ... 100111001 100131001 100161001 ... 规则 有标准漏洞。

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.