Questions tagged «code-golf»

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

1
雷区上的礼貌近视醉酒机器人
正如标题所示,此问题是@NP 礼貌的近视醉酒机器人的半启发 我们的可怜机器人在原点放置在笛卡尔网格上,每分钟之后,它会在四个方向(上,下,左,右)中的一个方向上移动1个单位。 之后ñ分钟,所有对电网活化潜在的地雷,杀死任何僵尸差可能会发现自己在他们。地雷位于满足等式| y | = | x |的所有整数坐标处。 挑战 作为输入,作为输出,您将获得n,即地雷爆炸发生前的分钟数n,您必须找到机器人死亡的可能性。 输入:代表n的自然数。 输出:让僵尸死亡的概率为p / q,其中p和q是相对质数(q不能为0,但p可以)。输出p。 规则 您的算法不得以指数或更高的时间运行。理想情况下,它应在多项式时间内或更短的时间内运行。 您的算法必须能够n在合理的时间内处理<20的输入(如果太难的话可以调整)。 这是一个代码高尔夫挑战。 对于给定的n遍历所有可能性,绝对不会被视为答案。 测试用例 1->0 2->3 4->39 6->135 8->7735 10->28287 n = 6的示例计算 我们有4种可能的移动方式:U,D,R和L。可采用的路径总数为4 ^ 6或4096。有4种可能的情况沿y = x着陆:x,y = ±1; x,y =±2; x,y =±3; 或x = y =0。我们将计算出以(1,1),(2,2)和(3,3)结束的方法数量,将它们乘以4即可得出其他象限,然后相加这就是最终以(0,0)结束的方式数量。 情况1:机器人在(3,3)处结束。为了使机器人在这里结束,它必须进行3次正确的动作,以及3次向上的动作。换句话说,到达此处的总方法是重新排列序列RROUUU中的字母的方法,即6选择3 = 20。 情况2:机器人在(2,2)结束。为了使机器人在此处结束,它可以进行2次向上移动,3次向右移动和1次向左移动;或2个向右移动,3个向上移动和1个向下移动。因此,到达此处的方法总数是重新排列序列RRRLUU和UUUDRR中的字母的方法的总和,二者均为(6选择1)*(5选择2)= …

5
ASCII日历计划器
给定活动列表及其开始时间/日期,请输出一个ASCII艺术日历,显示相应日期的活动。保证所有活动都在同一个月内进行,没有两个活动可以在同一天进行,并且保证所有活动都可以放在日历框中。 日历的日期在每个框的左上角,这些框宽9乘5高,由-和包围|。星期几的两个字母的缩写位于第一行的上方,而星期几则从星期日开始。 例如,给定以下活动: 10/5/2018 - 9:00am - Sandbox calendar challenge 10/9/2018 - 9:00am - Post challenge to main 10/10/2018 - 10:00am - Profit 10/31/2018 - 7:30pm - Halloween party 输出此相应的日历: Su Mo Tu We Th Fr Sa ----------------------------------------------------------------------- | |1 |2 |3 |4 |5 |6 | | | | | …

16
质数很大
给定一个很大的数字(以10为底),例如1234567891011121314151617,请在其中找到素数“ subnumbers”。 素数“子数”是连续的数字序列(从输入中获取),代表一个素数(以10为底)。 输入:数字(字符串,文件或任何您喜欢的数字)。 输出:所有素数子数字都以某种方式分隔(在列表,文件,逗号分隔的字符串中……)如果结果为空,则可以采用任何喜欢的约定(硬编码字符串,空字符串,乱码,但程序不应崩溃。 示例 1234-> 2、3、23 6542-> 5、2 14-> [..空输出] 这是代码高尔夫球。最短的程序获胜! [edit]:附加规则,程序必须说明!并不是每个人都精通果冻:)

9
中秋赌博游戏
明天是中秋节,本着节日的精神,我将介绍我们(厦门人)在节日期间玩的赌博游戏! 规则 游戏中有六个6面骰子。不同的数字组合具有不同的等级,特别强调四和一。您的工作是编写给定6个骰子的等级的手的程序/函数。以下是排名(我对规则进行了一些修改/简化): 我猜只有中国人可以挑战!好的,这是一些英文说明。 0:4个四和2个。 1:6。 2:6个 3:除4和1之外的任何形式的6。 4:5 5:除了四分之一以外的任何形式的5。 6:4 7:直 (1-6) 8:3 9:4以外的任何一种。 10:2 11:1四。 12:没事 输入值 6个数字,6个数字的数组或6个数字的字符串,它们代表1-6个骰子掷骰的值 输出量 您的程序/函数可以返回/输出任何东西来指示等级,只要每个等级由一个输出指示,反之亦然。例如 使用数字0-12、1-13等。 示例(使用0-12作为输出) [1,1,1,1,1,1]->2 [1,4,4,4,1,4]->0 [3,6,5,1,4,2]->7 [1,2,3,5,6,6]->12 [3,6,3,3,3,3]->5 [4,5,5,5,5,5]->5 这是代码高尔夫球,因此最短的字节数为准!
11 code-golf  game 

5
最小对称
局部相关。 目标:给定一个正整数的矩阵,输出包含的最小中心对称矩阵(该矩阵也可能包含非正整数)。M中号MM中号MM 中心对称矩阵是具有2阶旋转对称性的正方形矩阵,即,将其旋转两次后仍保持相同的矩阵。例如,中心对称矩阵的左上角元素与右下角元素相同,中心上方的元素与中心下方的元素相同。在这里可以找到有用的可视化。 更正式地说,给定的矩阵,产生一个方阵使得是中心对称的和,并且不存在其他方阵使得。Ñ Ñ 中号⊆ Ñ ķ 暗淡ķ &lt; 暗淡Ñ中号MMñNNñNN中号⊆ ñM⊆NM\subseteq NķKK暗淡ķ&lt; 昏暗ñdim⁡K&lt;dim⁡N\dim K<\dim N 乙甲⊆ 乙甲我,Ĵ乙我+ 我',Ĵ + Ĵ “(我',Ĵ ')一种AA当且仅当每个值出现在索引,是的子集(符号:)。。乙BB一个⊆ 乙A⊆BA\subseteq B一种我,ĴAi,jA_{i,j}Bi+i′,j+j′Bi+i′,j+j′B_{i+i^\prime,j+j^\prime}(i′,j′)(i′,j′)(i^\prime, j^\prime) 注意:某些矩阵具有多个解(例如[[3,3],[1,2]],以[[2,1,0],[3,3,3],[0,1,2]]或求解[[3,3,3],[1,2,1],[3,3,3]]);您必须输出至少一种有效解决方案。 测试用例 input example output [[1, 2, 3], [4, 5, 6]] [[1, 2, 3, 0], [4, 5, 6, 0], [0, 6, 5, 4], [0, …

4
递增集序列
背景 一个前增加的一组序列的顺序被定义为整数集的序列s ^ 1,S ^ 2,⋯ ,小号Ñ其满足以下的:NNNS1,S2,⋯,SnS1,S2,⋯,SnS_1,S_2,\cdots,S_n 每个是一个非空的子集{ 1 ,2 ,⋯ ,Ñ }。SiSiS_i{1,2,⋯,N}{1,2,⋯,N}\{1,2,\cdots,N\} 对于,小号我 ∩ 小号我+ 1 = ∅,即任何两个连续集没有共同的元素。1≤i&lt;n1≤i&lt;n1\le i<nSi∩Si+1=∅Si∩Si+1=∅S_i \cap S_{i+1} = \varnothing 对于,平均的(平均值)小号我比的严格更少小号我+ 1。1≤i&lt;n1≤i&lt;n1\le i<nSiSiS_iSi+1Si+1S_{i+1} 挑战 给定一个正整数N,输出order的最长递增集合序列的长度N。 测试用例 这些是基于Project Euler用户thundre的结果。 1 =&gt; 1 // {1} 2 =&gt; 2 // {1} {2} 3 =&gt; 3 // {1} {2} {3} …

5
追踪2D空间中的物体
描述 这项挑战的任务是设计一个程序或函数来跟踪n×nn×nn×n空间中的给定对象。 输入输出 您的程序将获得3个输入,可以以任何明智的方式获取: n将是飞机侧面的大小。(因此,对于n=5n=5n=5,您的平面将为5×55×55×5)。您可能会假设n它将始终是一个奇数整数。 s将是对象的起始位置,以一对(x,y)(x,y)(x, y)坐标给出。 D将是有序对的向量。D将遵循格式D=[(d0,t0),(d1,t1),...,(dn,tn)]D=[(d0,t0),(d1,t1),...,(dn,tn)]D = [(d_0,t_0),(d_1,t_1),...,(d_n,t_n)],其中dkdkd_k将始终是一个的'N', 'NE', 'E', 'SE', 'S', 'SW', 'W', 'NW',对于基数和初级intercardinal方向,和tktkt_k将是的“滴答”的数量的整数。 有了这些输入,您的程序必须输出对平面中对象的跟踪。 规则 输出必须包含平面的边界。例如: -21012 + +┌─────┐ 2││ 1││ 0││ 1││ 2││ -└─────┘ 将是一个空的5×55×55×5平面的示例。上方和侧面的数字仅供参考,不需要打印。 您可以使用任何字符作为边界,只要它不是空格(或呈现为空格)即可。您选择的字符必须描绘整个平面,这意味着它们之间不能有间隙。 一些可接受的飞机包括: ┌──┐.... ---- +-+ ││。。| | | | ││。。| | | | └── ....; ----; +-+ 不可接受的飞机包括: .... .... …

2
懒惰的面包袋
我在一家面包店工作,该面包店提供小麦,黑麦,大麦,谷物和法国面包,但是面包师有点奇怪-他以随机的顺序堆放面包,有时只剩下一些架子空着。 每天,同一位顾客进来,要求每条面包中的一块,但是棘手的是,他是个细菌菌,所以当我装满袋子时,我无法连续选择两个相邻架子上的面包。 在相邻的架子之间走需要一秒钟的时间。这是一家繁忙的商店;对于任何随机配置的面包,我想尽可能减少获取每个独特面包的时间。我可以在任何架子上开始和结束。 如果今天的订购量为W B W G F R W,则可能的路径为0, 3, 5, 1, 4,总共12秒钟:abs(3-0) + abs(5-3) + abs(1-5) + abs(4-1) = 12 (这1, 2, 3, 4, 5是行不通的,因为面包是从相邻的架子上连续拾取的。) 如果为B W B G B F B R B W B F,则可能的路径为1, 3, 5, 7, 10,总共需要9秒钟。 经理总是确保有可能的解决方案,因此我不必担心会收到错误的输入。他通常将订单发送给我,但是如果需要,我可以将其键入STDIN或以其他方式读取。我希望程序根据默认的I / O规则打印出最佳路径的索引及其时间。 简而言之: 5种面包。 面包顺序显示为随机顺序和长度的字符串。 必须从每个唯一的面包中选择一个。 …

21
Minecraft语言文件更新程序
在1.13版中,Minecraft语言文件从一种简单的多行key = value格式切换为JSON。 挑战 编写一个从原始格式转换为返回JSON字符串的程序。可以使用任何标准输入方法进行输入,任何标准输出方法的输出必须为json 原始格式包含带有键=值对的行,例如 tile.dirt.name=Dirt advMode.nearestPlayer=Use "@p" to target nearest player build.tooHigh=Height limit for building is %s blocks 应该转换为key = value的一个大JSON对象 { "tile.dirt.name": "Dirt", "advMode.nearestPlayer": "Use \"@p\" to target nearest player", "build.tooHigh": "Height limit for building is %s blocks" } 一些细节 只要它包含正确的键/值对,就可以使用任何有效的JSON。允许使用尾部逗号,因为Minecraft允许使用逗号。 唯一必须避免的是引号。(1.13之前的语言文件中不存在换行符,反斜杠或其他破坏JSON的东西) 空行应忽略 行包含正好等于1的行 测试用例 输入: tile.dirt.name=Dirt …
11 code-golf  game  json 

14
画一个后裔金字塔(加法)
挑战 给定一系列非负整数,请创建一个输出后代金字塔的函数,其中子代是两个父代数字的总和。 使用tab将结果输出为字符串\t。 注意:不需要每行上的尾随制表符 1\t\t2\t\t3\n\t3\t\t5\t\n\t\t8\t\t results in 1 2 3 3 5 8 可选地,结果可以使用空位置作为空格输出为数组。 [[1,,2,,3], [,3,,5,], [,,8,,]] 例: 给定4,5,7,3,4,2输出: 4 5 7 3 4 2 9 12 10 7 6 21 22 17 13 43 39 30 82 69 151 规则 适用标准代码高尔夫球规则 输入可以是使用任何分隔符或数组的字符串 允许使用前导/尾随换行符和制表符(但只要输出是倒金字塔,则不需要) 测试用例 Input: 1,3,5 1 3 5 …
11 code-golf 

1
不只是一个四肢难题
在该方案中的4个4困扰你应该使用最多x x's(并且没有其他号码),并定义了一组操作的从0达到每号为100。如果x = 4那么你可以使用多达四个4s,这问题就变成经典的4个4拼图(除非您最多可以使用四个4,而不必只使用四个)。我们假设1 &lt; x &lt;= 9。 在此版本中,仅允许以下运算符: 加法(+),减法(-),乘法(*),除法(/)。请注意,这是实数除法,因此5/2 = 2.5。 求幂(例如4 ^ 4),因为如果用手工正常书写,将不涉及任何多余的符号。 您可以通过串联创建新的整数xs。例如,您可以使整数4, 44, 444, 4444。 您也可以仅使用括号将数字分组,以控制运算符的求值顺序。例如,您不能像那样将括号与串联结合在一起(4/4)(4/4) = (1)(1) = 11。 不得使用其他符号,并且适用标准的操作顺序。 如果输入x在定义的范围内且n介于两者之间0(100包括两端),则程序应为该输入生成正确的解决方案(如果存在)。否则,您的代码必须输出某些内容以指示不存在此类解决方案。 您必须能够在允许范围内的任何输入值下x,n在计算机上运行提交以完成操作。这就是代码高尔夫,因此最短的解决方案将获胜。 这个古老的相关问题使用更多的运算符(只有4s),因此从0到100的所有数字都是可解的,因此对于此挑战而言并非如此。 输入输出 您的代码需要两个整数x并n作为输入和输出应该解决(或者指示没有解决)在您方便的任何人类可读的格式。例如,输入4 6将意味着“使用最多四个4,使数字为6”。因此,如果输入为4 6输出,则可能为(4+4)/4+4。

13
得分布里斯科拉
介绍 Briscola是意大利最受欢迎的纸牌游戏之一。这是一个招人喜欢的纸牌游戏,例如Br​​idge。Briscola以其怪异的点系统而闻名。在此挑战中,给定两张牌,您将输出第一张得分高于,低于或等于Briscola积分系统中第二张得分的积分。 挑战 布里斯科拉(Briscola)与一副意大利扑克牌一起玩。一副纸牌中有40张卡片,四种套装中的每套1-10张:杯子,剑,棍棒和硬币。我们将忽略应对这一挑战的方法。卡2-7是数字卡,卡8、9和10是面卡。卡的排名(从最高到最低)是: +------------------------+-------------+ | Cards, by Rank | Point Value | +------------------------+-------------+ | Ace (1) | 11 | | Three (3) | 10 | | King (10) | 4 | | Knight (9) | 3 | | Jack (8) | 2 | | Numeric Cards (2, 4-7) | …

13
第一最后最后最后
挑战 任务很简单。给定一个数组以及第一个和最后一个值:在第一个之后返回最后一个的第一个,在最后一个之前返回第一个的最后一个。 或简单地说:给定数组var1,var2。 示例数组: [var2,,var1,,var2,,var2,var1,var2,] 返回: 数组中出现的第一个var1右侧的第一个var2的索引。 [var2,,第一个var1,第一个var2,第二个var2,var1,第三个var2,] 数组中显示的最后一个var2左侧的第一个var1的索引。 [var2,,second var1,,var2,,var2,first var1,last var2,] 输入值 两个不同的正整数 正整数数组 输出量 答案索引,按顺序 规则 数组将包含每个变量中的至少一个(最小大小为2) 假设输入工作 示例:0, 1 [1, 0]或类似的将失败 IO很灵活 例子 Input First = 2; Last = 4; [0, 2, 4, 2, 3, 1, 4, 0, 1, 2, 4, 9] Output 2, 9 Input …

4
确定季节
介绍: 在北半球(即欧洲,北美等),季节划分如下: - 春季: 3月,4月,5月 - 夏季: 6月,7月,8月 - 秋季: 9月,10月,11月 - 冬季: 12月, 一月二月 但是在南半球(即澳大利亚,南美等),季节划分如下: - 春季: 9月,10月,11月 - 夏季: 12月,1月,2月 - 秋季: 3月,4月,5月 - 冬季:六月七月八月 这种差异是由于太阳相对于赤道的位置,北半球和南半球的季节相反。 输入: 在此挑战中,我们将接受两个输入: 一个月(1 &lt;= m &lt;= 12或0 &lt;= m &lt;= 11)(示例和测试用例全部按1索引编制)。 在地球纬度(-2 &lt;= p &lt;= 2)的五个“位置组”中,-2南极是南极,-1不包括南极的0是南半球,赤道附近的热带1是北极,不包括北极的北半球2是北极。 尽管当然北极,南极和热带仍然有季节,但是为了应对这一挑战,我们将说北极和南极处于恒定状态Winter,而热带则处于恒定状态Summer。 这是这五个组的视觉表示,-2南极圈在哪里?-1在摩ri座和南极圈之间;0在摩ri座和癌症之间;1在北极圈和北回归线之间;和-2北极圈。 资料来源:COSMOS-SAO天文学百科全书 输出: 一Spring,Summer,Autumn,或者Winter,遵循以下规则: 是位置输入2还是-2(北极或南极),总是输出Winter。 …
11 code-golf  number 

12
复制矩阵的总和
给定数字列表[ a 1 a 2 ... a n ],计算所有矩阵A the的总和,其中Aᵢ定义如下(m是所有aᵢ的最大值): 1 2 ⋯ (i-1) i (i+1) ⋯ n +---------------------------- 1 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ 2 | 0 0 ⋯ 0 aᵢ aᵢ ⋯ aᵢ . . . . . . . . . . . …

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.