Questions tagged «code-golf»

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

13
计算连续的子矩阵
从聊天迁移 给定两个非空非负整数矩阵甲和乙,回答的次数甲出现作为连续的,可能重叠,子矩阵在乙。 范例/规则 0.可能没有任何子矩阵 答: [[3,1], [1,4]] B: [[1,4], [3,1]] 回答: 0 1.子矩阵必须是连续的 答: [[1,4], [3,1]] B: [[3,1,4,0,5], [6,3,1,0,4], [5,6,3,0,1]] 答:( 1以粗体显示) 2.子矩阵可能重叠 答: [[1,4], [3,1]] B: [[3,1,4,5], [6,3,1,4], [5,6,3,1]] 答:( 2分别以粗体和斜体标出) 3.(子)矩阵的大小可能为1-by-1或更大 答: [[3]] B: [[3,1,4,5], [6,3,1,4], [5,6,3,1]] 答:( 3以粗体显示) 4.矩阵可以是任何形状 答: [[3,1,3]] [[3,1,3,1,3,1,3,1,3]] 答:( 4两个粗体,两个斜体)

1
拆分账单
任务 假设ppepole必须拆分钞票;每一个都由一个三元组标识,该三元组(Name, n, k)由以下各项组成: Name:名称 ; n:他/他必须支付的金额; k:她/他实际支付的金额。 这里的挑战是找出谁欠谁的钱。 假设条件 输入和输出可以采用任何方便的格式。 p ∈N,∈N,\in \mathbb{N}, \,\;\;n ∈N+,∈N+,\in \mathbb{N}^{+},\; k ∈N.∈N.\in \mathbb{N}. p >1.>1.\gt 1. 名称是任意长度的唯一字符串,由小写字母字符组成。 解 解决方案以p人们之间的最小交易量为代表。特别是三元组(from, to, amount) from:name给钱的人; to:name收钱者的; amount:交易金额。 注意:所有债务的总和(n)可能与所有已付金额的总和(k)不同。在这种情况下,您必须添加输出('owner', Name, amount)或(Name, 'owner', amount)所选的格式。任何名称都不会是owner。字符串'owner'是灵活的。 如果存在多个最小集合,则选择所有交易金额(绝对值)的总和最小的集合;如果是平局,选择其中之一。 测试用例: inputs(Name,n,k): [('a',30,40),('b',40,50),('c',30,15)] [('a',30,30),('b',20,20)] [('a',30,100),('b',30,2),('c',40,0)] [('a',344,333),('b',344,200),('c',2,2)] [('a',450,400),('b',300,300),('c',35,55)] outputs(from, to, amount): [('c','a',10),('c','b',5),('owner','b',5)] or [('c','b',10),('c','a',5),('owner','a',5)] …
12 code-golf 

9
直到重复的转换次数
给定一个整数序列,或更具体地讲,是0..N 变换的排列,此序列如下: 输出[x] =反向(输入[输入[x]]) 重复 例如:[2,1,0]变为[0,1,2]和反转为[2,1,0]。[0,2,1]变成[0,1,2]并反转[2,1,0]。 例子1 In: 0 1 2 S#1: 2 1 0 S#2: 2 1 0 Output: 1 例子2 In: 2 1 0 S#1: 2 1 0 Output: 0 例子3 In: 3 0 1 2 S#1: 1 0 3 2 S#2: 3 2 1 0 S#3: 3 …
12 code-golf 

10
Kolmogorov的灵活性。又名特价!所有Codegolf售完即享
这是产生无输入的固定输出的受限源,kolmogorov-complexity和代码高尔夫球挑战。 但是,输出格式是灵活的-可以按标准输出,按标准错误打印,作为字符列表返回,作为字节列表返回或作为整数列表返回。如果您认为还有其他合理的选择,请在评论中提问! 这是一个简单的大字母ASCII 代码CODEGOLF: CCCC OOO DDDD EEEEE GGG OOO L FFFFF C O O D D E G O O L F C O O D D EEE G GG O O L FFF C O O D D E G G O O L F CCCC OOO DDDD …

6
确定最宽的山谷
想象一下,我们得到了一些山区的一片,这将导致类似于以下的形状: 4 _ 3 _ _ __/ \ 2 / \__/ \ _/ \_ / 1 / \ / \_/ 0 \/ 12322223210012233343221112 如我们所见,我们可以(在一定程度上)用整数序列表示这一点。 出于此挑战的目的,我们将山谷定义为一个连续的子序列,在该子序列中,值最初是减小的,从某个点开始它们是增大的。更正式地为一个序列(一个一世)ñ我= 1(ai)i=1n(a_i)_{i=1}^n的波谷将指数1 ≤ 小号&lt; ř &lt; 吨≤ Ñ1≤s&lt;r&lt;t≤n1 \leq s < r < t \leq n的量,下式成立: 山谷的起点和终点相同:一个s= 一个Ťas=ata_s = a_t 谷开始和结束一次的区域变得更低:一个s&gt; 一个s + 1∧ 一t − …

2
用Mo鼠山造山
您将获得一连串的地形,其中有丘陵和山脉: /\ / \ _/\__ / \ ___/ \_/ \_ ____/\___/ \___ 您的工作是用同一列中心居中的等效山峰替换字符串中的每个小丘。字符串的其余部分必须不受影响。这可能需要在字符串的开头添加其他行。 一个小题大做由这里的地形上升相邻列,紧接着相邻列在地势下降。最短的一面必须正好是一列宽。 这些都是小丘: _____/\______ /\________ __/ ________/\ \__ \ / \ / \ / \ / \/\_/ 这些不是小丘: /\ ___/ \______ ___ _____/ \___ ____ _______ \/ 一座山就像是一座小山,但最短的一面是四行而不是一行。 例子 /\ / \ -&gt; / \ ____/\____ _/ \_ …

6
带我离开这里
挑战 在给定网格大小,障碍物位置,玩家位置和目标位置的情况下,您的任务是为玩家找到一条到达目标并同时避开障碍物的路径(如有必要)。 输入值 N:网格大小N x N P:球员位置[playerposx, playerposy] T:目标位置[targetposx, targetposy] O:障碍物位置[[x1, y1], [x2, y2],...,[xn, yn]] 输出量 路径:玩家可以用来达到目标​​的路径[[x1, y1], [x2, y2],...,[xn, yn]] 规则 该点[0,0]位于网格的左上角。 玩家的位置将始终位于网格的左侧。 目标的位置将始终在网格的右侧。 网格将始终至少具有一个障碍。 您可以假设没有障碍重叠在玩家或目标位置上。 您不一定需要找到最小路径。 玩家只能左右移动,不能左右移动。 您可以通过任何方便的方式进行输入。 您可以假设玩家始终可以到达目标的路径。 显然,对于每个输入,存在多个有效路径,请选择一个。 假设N &gt; 2网格至少为3 x 3。 例子 输入:9,[6, 0],[3, 8],[[0, 5], [2, 2], [6, 4], [8, 2], [8, 7]] …

30
本色代码
维基百科上的真彩色(24位)在相关部分中描述为 24位几乎总是使用R,G,B中的每个8位。截至2018年,几乎每台计算机和电话显示器以及绝大多数图像存储格式都使用24位色深。几乎所有情况下每个像素有32位意味着使用24种颜色,其余8种是alpha通道或未使用。 2 24给出16,777,216种颜色变化。人眼最多可以辨别一千万种颜色[10],并且由于显示器的色域小于人眼的范围,因此这意味着该范围应覆盖比所能感知的更多的细节。... ... Macintosh系统将24位颜色称为“数百万种颜色”。术语“真彩色”有时用来表示本文所说的“直接彩色”。[13]通常也用于指所有大于或等于24的颜色深度。 全部16,777,216色 任务 编写一个程序,该程序在CSS rgb()函数中生成并返回数组中所有16,777,216个颜色变化作为字符串 5.1。RGB功能:rgb()和rgba() 该rgb()函数通过直接指定红色,绿色和蓝色通道来定义RGB颜色。其语法为: rgb() = rgb( &lt;percentage&gt;{3} [ / &lt;alpha-value&gt; ]? ) | rgb( &lt;number&gt;{3} [ / &lt;alpha-value&gt; ]? ) &lt;alpha-value&gt; = &lt;number&gt; | &lt;percentage&gt; 前三个参数分别指定颜色的红色,绿色和蓝色通道。0%代表sRGB色域中该颜色通道的最小值,并100%代表最大值。A &lt;number&gt;等效于a &lt;percentage&gt;,但范围不同:0再次代表颜色通道的最小值,但255代表最大值。这些值来自以下事实:许多图形引擎在内部将颜色通道存储为单个字节,该字节可以容纳0到255之间的整数。实现应尽可能尊重创作或计算得出的通道精度。如果无法做到这一点,则应使用所使用的最高精度将通道四舍五入到最接近的值,如果两个值相等接近,则将四舍五入。 最后一个参数,&lt;alpha-value&gt;指定颜色的Alpha。如果指定为a &lt;number&gt;,则该值的有用范围是0 (表示完全透明的颜色)至1(表示完全不透明的颜色)。如果指定为,则0%表示完全透明的颜色,而100%表示完全不透明的颜色。如果省略,则默认为100%。 超出这些范围的值不是无效的,但是在计算值时将被限制为此处定义的范围。 出于遗留原因,rgb()它还支持另一种语法,该语法用逗号分隔所有参数: rgb() = rgb( &lt;percentage&gt;#{3} , &lt;alpha-value&gt;? ) | …

14
检查文件仅包含空字节
您的目标是编写一个程序或函数,该程序或函数接受代表文件路径的字符串作为输入,并在该文件不为空且不包含非空字节的情况下输出真实值-即所有位均为0- -否则为假值。 我意识到这是一个非常简单的问题,我想我可以破解一些东西,但是我怀疑必须有一些简短而优雅的方法来做,这给了我一个挑战的想法。 这是代码高尔夫球,因此以字节为单位的最短代码获胜。(我个人倾向于使用最快的解决方案,但这也取决于实现方式...) 相关问题:用零填充文件 动机:这只是为了告诉您问题出在哪里,以防您感兴趣。您不需要阅读它。 用“ dd”或其他方式复制的CD和DVD的ISO映像通常以仅包含空字节的无用块序列终止。删除这些块的标准技术是已知且简单的(请参阅 /unix/74827/),但是它们有时可能会删除非null有用的数据,因为介质的大小可能取决于其自身大小。因此,我想检查已删除的块是否仅包含空字节。删除这些块对于定义ISO映像的规范化版本很重要。

17
计算最小值
背景 请考虑以下顺序(OEIS中为A051935): 从术语开始。222 找出大于的最低整数,使为质数。2 2 + nñnn2222 + n2+n2+n 找到大于的最低整数,使为质数,以此类推。 Ñ 2 + Ñ + Ñ 'ñ′n′n'ñnn2 + n + n′2+n+n′2 + n + n' 一个更正式的定义: 一个ñ= { 2分钟{ X ∈ Ñ | X &gt; 一n − 1 和 ( x + ∑n − 1我= 0一个一世) 是素数}if n=0otherwisean={2if n=0min{x∈N∣x&gt;an−1 and …

6
高尔夫溶解度表
给定阳离子和阴离子的名称,输出“ S”(可溶)或“ I”(不溶)。我们将使用的表来自维基百科:https : //en.wikipedia.org/wiki/Solubility_chart。将其复制到问题的末尾以备将来参考。 输入:阳离子,后跟阴离子,并用空格分隔。阳离子将是以下之一: Lithium Sodium Potassium Ammonium Beryllium Magnesium Calcium Strontium Barium Zinc Iron(II) Copper(II) Aluminium Iron(III) Lead(II) Silver 阴离子将是以下之一: Fluoride Chloride Bromide Iodide Carbonate Chlorate Hydroxide Cyanide Cyanate Thiocyanate Nitrate Oxide Phosphate Sulfate Dichromate 每个字母的首字母大写。 输入示例: Sodium Chloride 输出:真实值,S如果可溶,假或I其他,则为或。如果维基百科页面上列出了其他任何内容(例如,微溶或与水反应),或者输入内容不是“阳离子阴离子”形式,则您的程序可能会执行任何操作(未定义的行为),因此可能会输出“ S”,“我,或其他。 表: ?,S,S,S,?,S,S,S,?,S,S,?,I,S,S S,S,S,S,S,S,S,S,S,S,S,?,S,S,S S,S,S,S,S,S,S,S,S,S,S,?,S,S,S S,S,S,S,S,S,S,S,?,S,S,?,S,S,S S,S,S,?,?,?,?,?,?,?,S,?,?,S,? …

11
Codegolf Rainbow:整数数组的乐趣
介绍: (来源:Wikipedia) 当我们看着彩虹时,它将始终具有从上到下的颜色 。橙子; 黄色; 绿色; 蓝色; 靛青; 紫色 如果我们看这些单独的环,红色环当然要比紫色环大。 另外,也可以同时有两个甚至三个彩虹。 以上所有这些结合将用于此挑战: 挑战: 给定一列大小为7的整数,其中每个值表示可用于形成彩虹的颜色粒子(其中最大的索引表示红色,最小的索引表示紫色),输出可以形成的彩虹数量。 单个整数彩虹必须至少具有3x紫色,4x靛蓝,5x蓝色,6x绿色,7x黄色,8x橙色,9x红色。它上方的第二条彩虹甚至比第一条彩虹的红色环大(包括它们之间的一个空格),因此它将至少需要11x紫色,12x靛蓝,13x蓝色,14x绿色,15x黄色,16x橙色,除了第一个彩虹使用的颜色外,还有17x红色。第三条彩虹将再次以19倍紫罗兰色开始。 例: 输入列表:[15,20,18,33,24,29,41] 输出:2 为什么?我们有15倍紫罗兰色,两条彩虹至少需要3 + 11 = 14。我们有20个靛蓝,两条彩虹至少需要4 + 12 = 16。等等。我们有足够的颜色可容纳两个彩虹,但不足以形成三个彩虹,因此输出为2。 挑战规则: 输入数组中的整数保证为非负数(&gt;= 0)。 确保输入列表的大小恰好为7。 当无法形成彩虹时,我们输出0。 输入和输出格式灵活。可以是十进制整数的列表或数组,可以从STDIN中获取。输出可以是任何合理输出类型的函数返回,也可以直接打印到STDOUT。 n彩虹数量所需的最小颜色数量: Amount of Rainbows Minimum amount per color 0 [0,0,0,0,0,0,0] 1 [3,4,5,6,7,8,9] 2 [14,16,18,20,22,24,26] 3 [33,36,39,42,45,48,51] 4 …

17
Codegolf Rainbow:黑白画
介绍: (来源:Wikipedia) 当我们看着彩虹时,它将始终具有从上到下的颜色 。橙子; 黄色; 绿色; 蓝色; 靛青; 紫色 如果我们看这些单独的环,红色环当然要比紫色环大。 另外,也可以同时有两个甚至三个彩虹。 以上所有这些结合将用于此挑战: 挑战: 给定一个integer n,输出很多(可能不止一个)“彩虹”的圆环,在这里我们将使用字母vibgyor作为颜色。 请参阅下面的测试用例,以了解如何从向上构建它们n=1,以及如何处理间距(在处n=8)。如您所见,在我们在一行中添加下一个彩虹的环之前,在两个彩虹之间添加了一个空格,包括顶部的间距。 挑战规则: 您可以使用大写VIBGYOR字母而不是小写字母 各个彩虹之间应该有一个间隔 只要实际的彩虹(放置在屏幕上的任何位置)正确,就可以使用任何数量的前导和/或尾随空格/换行符 输入将始终为正整数(&gt;= 1)。n=0因此,何时的行为是不确定的,并且程序/函数可以执行任何所需的操作(不输出任何内容;输出彩虹n=1;随机输出;由于错误而失败等)。 如果需要,您可以输出字符串列表/数组或2D数组/字符列表(可以在TIO页脚中添加实际的漂亮打印代码)。 忽略输出看起来更像玛雅神庙而不是彩虹的事实。xD 通用规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您使用非代码高尔夫球语言发布答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数的函数/方法和返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接。 另外,强烈建议为您的答案添加说明。 测试用例(n=1从头到尾n=10,和n=25): 1: vvv v v 2: iii ivvvi iv vi 3: bbb biiib bivvvib biv vib 4: …

14
奈史密斯法则
奈史密斯的规则有助于计算出步行或徒步旅行所需的时间长度(考虑到距离和上升情况)。 给定沿路径平均间隔的点处的高度的非空列表以及该路径的总距离(以米为单位),您应该根据奈史密斯规则计算所需的时间。 奈史密斯(Naismith)的规则是,每五公里应该允许一个小时,而每上升600米,则需要增加一个小时。 输入必须以米为单位,保证由非负整数组成,并且输出应始终为小时或分钟(但不能同时为两者),并且在适用的情况下必须能够提供十进制数字(浮点数可以确定) 。 例如,给定: [100, 200, 400, 200, 700, 400], 5000 对于前两个元素,[100, 200]您有100米的上升路程,即10分钟。在[200, 400]您有200米的上升距离(即20分钟)的情况下,[400, 200]它不会上升,因此不会为此增加时间。[200, 700]是500米的上升,这是50分钟,最后[700, 400]没有上升。五公里的距离增加了一个小时。总计140分钟或2.333 ...小时。 测试用例 [0, 600] 2500 -&gt; 1.5 OR 90 [100, 200, 300, 0, 100, 200, 300] 10000 -&gt; 2.8333... OR 170 [40, 5, 35] 1000 -&gt; 0.25 OR 15 [604] 5000 …
12 code-golf  number 

7
给定N,输出['A','B','AB','C','D','CD','ABCD','E',...]的第n个元素?
考虑以下列表: expected = [ 'A', 'B', 'AB', 'C', 'D', 'CD', 'ABCD', 'E', 'F', 'EF', 'G', 'H', 'GH', 'EFGH', 'ABCDEFGH', 'I', 'J', 'IJ', 'K', 'L', 'KL', 'IJKL', 'M', 'N', 'MN', 'O', 'P', 'OP', 'MNOP', 'IJKLMNOP', 'ABCDEFGHIJKLMNOP', ... ] 这是一种看待它的方法-您正在学习如何写汉字,并且想要学习越来越大的汉字,并随身进行练习。您从A开始,然后与B一起,然后已经有一个成对的两个序列,因此可以将其组合。然后,您选择C和D,再配对,然后练习。然后您进行排练:ABCD。然后,E到H相同,然后进行排练:ABCDEFGH。列表是无限的。 目标是生成并打印出此列表的第n个元素,索引从零开始递增。假设在“ Z”之后,您再次得到“ 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.