Questions tagged «code-golf»

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

30
给定输入,输出所有基数和幂加到该输入的所有指数
因此,这是我在此站点上遇到的第一个挑战。 面临的挑战是接受一个将为正的输入整数,并以升序(从到,包括n)打印的输出(其中是当前整数)。 nnn111nnni(n−i)i(n−i)i^{(n-i)}iii 例 给定输入5,程序将打印: 1 8 9 4 1 14141^4是1且是8且是9且是4且是1且1+4=51+4=51+4=5 23232^32+3=52+3=52+3=5 32323^23+2=53+2=53+2=5 41414^14+1=54+1=54+1=5 50505^05+0=55+0=55+0=5 输入输出 输入将采用正整数形式。输出将是一个数字列表,以逗号或换行符分隔。 这是代码高尔夫球,因此最短的代码获胜。

4
在罗马时,算不算罗马人?
背景 该挑战的灵感源于该网站,该网站发布了下图: 该图向我们展示了250以下的最长罗马数字表达式是188,需要9个数字来表示。 挑战 用于表达最罗马数字的标准符号如下:{ I,V,X,L,C,D,M},其中人物的数值是M= 1000,D= 500,C= 100,L= 50,X= 10,V= 5,I= 1。 在此挑战中,您的目标是给定正整数n,计算可通过串联n个标准符号组成的有效罗马数字表示形式的数量。 然后,您的程序必须输出该计算的结果! 输入:正整数n。 输出:长度为n的有效罗马数字表达式的数量。 罗马数字表达规则 罗马数字最初只具有“加法”配对,这意味着数字始终按降序书写,并且所有数字的值之和就是数字的值。 后来,减法配对(为了减少大数字中的较小数字而使用)将较小的数字放置在较大的数字前面,从而缩短了罗马数字表达。减法对不能链接,如以下无效表达式中所示:IXL。 以下是加减配对的现代规则。 在减法对中,只有I,X和C可以用作前导数字。 我只能在减法对中放在V或X之前。 X只能在减法对中放在L或C之前。 在减法对中,C只能放在D或M之前。 除减法对之外,数字必须按降序排列(这意味着如果您删除每个减法对的前导数字,则数字将按降序排列)。 较小的面额不能等于或超过M,C和X。 D,L和V只能出现一次。 仅M可以重复4次或更多次。 进一步说明 我们将不会使用条形符号;相反,我们将简单地添加更多M来表示任何数字。 这些是我们罗马数字遵循的唯一规则。这意味着诸如的奇数表达式IVI在我们的系统中也将被视为有效。 还要记住,我们不计算长度为n的表达式的数目,因为有些数字具有多个表达式。相反,我们只计算有效表达式的数量。 测试用例 1 → 7 2 → 31 3 → 105 我手动检查了以上内容,因此请确保仔细检查测试用例,并尽可能添加更多内容! 获奖标准 这是一个高尔夫挑战赛,请尽情享受!我将只接受至少可处理1到9输入的解决方案。再多就是奖励! 编辑 根据评论者的要求,在下面或在此pastebin链接中,我算出n = 3 …

11
N×N板上的骑士图
在国际象棋中,骑士只能相对于其当前位置(♞标记)移动到标记为X的位置: 一个骑士的图形是表示在棋盘的骑士棋子的所有法律动作的图表。此图的每个顶点代表棋盘的一个正方形,每个边都连接两个正方形,这两个正方形彼此分开。 对于标准的8 x 8板,该图看起来像这样。 挑战: 给定整数N,其中3≤N≤8,输出代表一个板的N × N矩阵,其中显示了每个位置的可能移动数。对于N = 8,输出将是一个矩阵,该矩阵显示上图中每个顶点的值。 输出格式灵活。列表列表甚至是扁平列表等都是可接受的格式。 完整的测试用例集: --- N = 3 --- 2 2 2 2 0 2 2 2 2 --- N = 4 --- 2 3 3 2 3 4 4 3 3 4 4 3 2 3 3 2 --- N …

15
一线键盘
挑战 这项挑战的目标是确定是否只能使用标准UK QWERTY键盘的一行来键入给定的String。 这是code golf,所以最短的解决方案以字节为单位获胜! IO 输入将是零个或多个字符的单个字符串,且在ASCII十进制范围(包括32-126)中。您可能会为这个挑战假设一个空的String不需要键入,因此可以使用一行来键入。 您可以将输入作为字符串,字符列表或您语言的等效形式。 对于可以使用单行键入的任何字符串,输出应为真值,否则为false。 键盘布局 为了澄清以下标准键盘布局的任何歧义,每一行上都有可用的键列表,包括备用的上键(使用shift访问)。 1号线 标准: `1234567890-= 2号线 标准: qwertyuiop[] 3号线 标准: asdfghjkl;'# 大写: ASDFGHJKL 特别:大写锁定 4号线 标准: \zxcvbnm,./ 备用: |<>? 大写: ZXCVBNM 特别:班次 5号线 特别:空格键 如果Shift也在同一行上,则只能按下备用的上键,并且只能通过Caps Lock或Shift来访问大写键。您实际上只能使用一根键盘线! 测试用例 -> true (empty string) 45-2=43 -> true (line 1) qwerty -> true (line 2) …

23
玩音乐乌龟
我的两个孩子喜欢玩以下玩具: 可以触摸内部形状的着色区域,然后乌龟会照亮该区域并播放声音或说出颜色或内部形状的名称。中间按钮更改模式。有一种模式,其中的区域在触摸时会弹奏不同的音符,并带有一种扭曲:如果孩子顺时针触摸三个连续的区域,则会播放特殊的旋律1。如果将三个连续触摸的区域逆时针放置,则会播放特殊的旋律2。 挑战 让我们模拟玩具的内部逻辑。给定一个带有3次按压的字符串,如果这3次按压是针对连续区域(顺时针或逆时针)的,则返回两个不同的连贯值;如果不是连续的,则返回第三个不同的值。 细节 输入区域将分别用一个字符命名,该字符可以是它们的颜色:ROYGB红色,橙色,黄色,绿色和蓝色。或它们的形状:HSRTC用于心脏,正方形,星形(R),三角形和圆形。大小写无关紧要,您可以选择只使用大写还是小写来处理输入和输出。 该程序将通过三次按下来接收字符串(或char数组或任何等效形式)。例子(使用颜色): ,RBO,GYO,BBR,,YRG ...YGBORB 程序将输出三个截然不同的连贯值,以表示三种可能的结果:如果组合未触发特殊旋律,则为第一个值;如果组合触发顺时针特殊旋律,则为第二个值;如果组合触发了特殊旋律,则为第三个值。逆时针特殊旋律。例如:0对于没有特殊组合的情况,1对于由顺时针组合-1触发的旋律和对于逆时针组合触发的旋律。 您无需担心处理错误的输入。 测试用例 Input Output // Input based on colors -------------- RBO 0 // No special combination GYO -1 // Counterclockwise melody triggered BBR 0 // No special combination YRG 0 // No special combination YGB 1 // Clockwise melody triggered …

17
可以建立多少个立方体
任务 您的任务是构建具有个多维数据集的结构。多维数据集的体积遵循以下顺序(底部->顶部)ññn ñ3,(n − 1 )3,(n − 2 )3,。。。,13n3,(n−1)3,(n−2)3,...,13n^3, (n-1)^3, (n-2)^3,...,1^3 输入 结构的总体积()。VVV 输出 ()的值,即:多维数据集的总数。ññn V= n3+ (n − 1 )3+ 。。。。+ 13V=ñ3+(ñ-1个)3+。。。。+1个3V = n^3 + (n-1)^3 + .... + 1^3 笔记 输入将始终是整数。 有时不可能遵循该顺序,即:并不代表的特定值。在这种情况下,返回-1或您选择的虚假值(尽管需要保持一致)。ñVVVññn 这是代码高尔夫球,因此每种语言的最短答案以字节为单位。 由于上述原因,没有答案将被标记为接受。 要求 这是我在网站上遇到的第一个挑战,请多多包涵,并宽恕(并告诉我)我犯的任何错误。 请提供一个链接,以便可以测试您的代码。 如果可以的话,请撰写有关代码工作方式的说明,以便其他人可以理解和欣赏您的工作。 例子 input : 4183059834009 output : 2022 input : 2391239120391902 …
20 code-golf  math 

15
找到细胞的邻居
...或环形摩尔社区 由于正整数h,w和一个非负整数i,返回所有围绕着指数i。 您将假定一个矩阵,该矩阵由元素的h行w组成,从左上角的最低编号到右下角的最高编号,并以任何合理的格式返回将要使用的索引列表包围索引i。这个矩阵是一个圆环(环绕每个边缘的无限图)。 例如,输入h=4和w=4,将得出矩阵: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 但更具体地说: 15 12 13 14 15 12 3 0 1 2 3 0 7 4 5 6 7 4 11 8 9 10 11 8 15 12 13 14 15 …
20 code-golf  matrix 

5
击退仇敌
设置: 社交网络以两种方式报告帖子的投票数:净投票数(总投票数-总投票数)和被投票数的百分比,四舍五入到最接近的整数(四舍五入。)。净投票数是一个整数(不一定是正数),第二个保证是0到+100之间的一个整数。upvotes数和downvotes数均为零或正32位整数(可以指定有符号或无符号)。假设如果总票数为零,则投票的百分比将报告为零。 挑战: 给定这两个整数(净投票数和%投票数),您可以编写出最短的程序,该程序确定在满足上述所有约束的情况下收到的帖子的总投票数最少的情况? 输入约束得到保证。如果输入不满足上述约束,则程序行为由您决定。如果不进入无限循环或崩溃,则可赢得荣誉。如果您需要更多指导,请考虑返回负数。 一般规则: 这是代码高尔夫球,因此最短的有效解决方案(以字节为单位)获胜。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。诸如Javascript之类的客户端Web语言的荣誉。 如果您在多语言有趣的解决方案,张贴他们分开。 标准规则适用于您的答案,因此允许您使用STDIN / STDOUT,具有正确参数和返回类型的函数/方法或完整程序。你的来电。 禁止默认漏洞。 如果可能的话,请添加一个带有测试代码的链接。 另外,请添加代码说明。 请记住,如果您要执行的整数除法运算会被截断(例如20/3 = 6)而不是舍入,则可能并不完全正确。 欢迎在上述约束条件下探索边缘情况的其他测试用例。 虽然期望的返回类型为数字,但可以使用布尔值“ false”代替0。 测试用例示例: 第一列只是为了方便讨论而包括的参考数字。 ref net %up answer 1 0 0 => 0 2 -5 0 => 0 3 -4 17 => 1 4 -3 29 => 2 5 -2 38 …

22
加倍,异或再做一次
对于任何大于0的整数,我们将函数g定义为g(n)= n XOR(n * 2)。 给定x> 0,找到最小整数y> 0,使得对于某些k> 0,g k(y)= x。 例 x = 549 549 = 483 XOR (483 * 2) (as binary: 1000100101 = 111100011 XOR 1111000110) 483 = 161 XOR (161 * 2) (as binary: 111100011 = 10100001 XOR 101000010) 这意味着g 2(161)= 549。我们不能再走了,因为没有n使得g(n)= 161。因此,对于期望的输出X = 549为Y = …

18
上还是下Wythoff?
首先,让我们谈谈Beatty序列。给定一个无理数正数r,我们可以通过将正整数乘以r并乘以每个结果计算的底数来构造无限序列。例如, 如果r > 1,则有特殊条件。我们可以形成另一个无理数s,即s = r /(r -1)。然后,这可以生成自己的Beatty序列B s。巧妙的技巧是B r和B s是互补的,这意味着每个正整数都恰好在两个序列之一中。 如果我们将黄金比例设置为r = then,则得到s = r + 1和两个特殊序列。该低Wythoff序列为[R : 1, 3, 4, 6, 8, 9, 11, 12, 14, 16, 17, 19, 21, 22, 24, 25, 27, 29, ... 和上部Wythoff序列为小号: 2, 5, 7, 10, 13, 15, 18, 20, 23, 26, 28, …

13
让我来点咖喱
有一个函数f带有参数x 1,x 2,…,x n –即 f:X 1 ×X 2 ×…×X n →Y – currying将f重新定义为带有单个参数a 1的函数,该参数映射到另一个函数。这项技术对于部分应用很有用,例如具有pow我们可以编写的curried 函数exp = pow(e)。 例 假设我们有以下函数f接受三个参数(f:X 1 ×X 2 ×X 3 →Y): def f(a,b,c): return a + b * c 调用此函数将使我们留下f_curry:X 1 →(X 2 →(X 3 →Y)),如果我们现在两次调用该函数,f_curry(1)(2)我们将得到一个h等于以下返回值的函数(): def h(c): return 1 + 2 * c curried函数f可以这样编写(Python …

30
计算范围
挑战: 计算1范围内所有数字的二进制表示形式中的1的数量。 输入: 两个非十进制正整数 输出: 1两个数字之间范围内的所有s 的总和。 范例: 4 , 7 ---> 8 4 = 100 (adds one) = 1 5 = 101 (adds two) = 3 6 = 110 (adds two) = 5 7 = 111 (adds three) = 8 10 , 20 ---> 27 100 , 200 ---> …

11
你能用这些骰子拼写这个单词吗?
字母骰子在文字游戏中很常见。例如,尝试用骰子拼写有趣的单词可能会很有趣。如果您抓一把骰子,则可能无法拼写某些单词。这个挑战是对这一想法的概括。 挑战 给定一个骰子列表,每个骰子至少具有一张面孔和一个单词,您的任务是确定是否可以使用给定的骰子对该单词进行拼写(在这种情况下,它应该返回真实的结果)。每个骰子只能使用一个字母,每个骰子只能使用一次。您不需要使用所有给定的骰子。 例子 在一个简单的示例中,使用骰子[[A],[C],[T]]和字符串CAT,结果为true。BAT当然会返回false,因为上面没有骰子 如果给定[[A,E,I,O,U],[A,B,C,T],[N,P,R]]作为骰子集合,则对于ART,TON和CUR将返回true ,但对于CAT,EAT和PAN则为false,因为这些字符串需要重用骰子。还应该很明显,因为没有足够的骰子,所以不能用这些骰子拼写CRAB。 如果给定[[A,B,C],[A,E,I],[E,O,U],[L,N,R,S,T]]作为骰子集合,则可以拼写CAT,BEE,BEAN,TEA,BEET和BAN,但您将无法拼写LONE,CAB,BAIL,TAIL,BAA或TON 同一骰子可能有多个。如果给定[[A,B,C],[A,B,C],[A,B,C]],您将可以拼写CAB,BAA,AAA等...但是显然没有A的话, B,或C在其中。 规则 没有利用标准漏洞 这是代码高尔夫,因此最短的代码获胜。 您可能会假设单词和骰子都只能由大写字母组成。 您可能会假设该单词的长度始终至少为1个字母,并且始终会有至少1个骰子。 您可能会认为骰子永远不会有多个相同的字母。 输入和输出可以采用任何方便的格式。

8
几乎是哥伦布集
您的任务是在Columbo情节标题中找到两个丢失的角色。 输入值 69个哥伦布剧集标题之一(如下所列),正好两个字符替换为*。 范例: "Ran*om for a *ead Man" 输出量 您可以返回完整的情节标题,也可以仅以任何合理的格式返回两个缺失的字符,前提是字符的顺序是明确的。 一些有效的输出: "Ransom for a Dead Man" "sD" ["s", "D"] 集数 请点击此链接以获取未格式化的列表。 Prescription: Murder Swan Song Murder, Smoke and Shadows Ransom for a Dead Man A Friend in Deed Sex and the Married Detective Murder by the Book An Exercise …

30
以36为基数递增字符串
这是我之前在堆栈上问过的类似问题的代码高尔夫版本,但认为这将是一个有趣的难题。 给定一个长度为10的字符串,该字符串表示一个基数为36的数字,将其加1并返回结果字符串。 这意味着字符串将只包含数字0到9和来信a至z。 Base 36的工作原理如下: 最右边的数字递增,首先使用0于9 0000000000> 9次迭代> 0000000009 然后使用ato z: 000000000a> 25次迭代> 000000000z 如果z需要增加,它将循环回到零,并且左边的数字将增加: 000000010 进一步的规则: 您可以使用大写或小写字母。 您不得丢掉前导零。输入和输出均为长度为10的字符串。 您不需要处理zzzzzzzzzz作为输入。 测试用例: "0000000000" -> "0000000001" "0000000009" -> "000000000a" "000000000z" -> "0000000010" "123456zzzz" -> "1234570000" "00codegolf" -> "00codegolg"

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.