Questions tagged «code-golf»

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

17
分割标记的标记
挑战 马克是一个学生,他N在一行中以串联的方式获得他的分数。 面临的挑战是将自己的标记分开,知道每个标记只能是0或1或2或3或4或5或6或7或8或9或或10。 输入项 N 自然数和一行。 输出量 一组自然数。 例 N, One line------------------> Set of marks 3, '843'---------------------> [8, 4, 3] 1, '0'-----------------------> [0] 2, '1010'--------------------> [10,10] 3, '1010'--------------------> [1,0,10] or [10,1,0] 4, '1010'--------------------> [1,0,1,0] 9, '23104441070'-------------> [2, 3, 10, 4, 4, 4, 10, 7, 0] 12,'499102102121103'---------> [4, 9, 9, 10, …

15
我的数组应该等于这个,但事实并非如此!
给定一个整数数组,a其中包含n个整数和一个整数x;从中删除最少的元素a,使之和a等于x。如果a不能形成的组合,则x返回假值。 正如评论中指出的那样,这是x的总和的最大值,对不起我的小数学头脑。自大学以来,我忘记了很多条款。 示例(真实): f([1,2,3,4,5,6,7,8,9,10], 10) = [1,2,3,4] f([2,2,2,2,2,2,2,2,2], 10) = [2,2,2,2,2] f([2,2,2,2,-2,-2,-2,-4,-2], -8) = [2,2,-2,-2,-2,-4,-2] f([-2,-4,-2], -6) = [-4,-2] OR [-2,-4] f([2,2,2,4,2,-2,-2,-2,-4,-2], 0) = [2,2,2,4,2,-2,-2,-2,-4,-2] (不变) f([], 0) = [] (零和的情况不变) 示例(错误,任何一致的非数组值): 不可能提出理由: f([-2,4,6,-8], 3) = falsy (E.G. -1) 零和案例: f([], non-zero number) = falsy (E.G. -1) 注意:像这样的任何值[-1]都不能有效地伪造,因为它可能是真实的输出。 规则: 输入可以采用数组形式,也可以作为参数列表,最后一个或第一个为x。 …

2
将数字的连续分数加倍
给定您的任务x,输出2*x。容易吧!!但是有一个陷阱:x将作为(可能是无限的)连续分数给出,并且输出必须是连续分数。确保输入为实数代数,其次数最多为2。 输入:的连续分数x。这分为三部分:整数部分,前缀和重复部分。整数部分由一个整数组成。前缀和重复部分是(可能为空)正整数数组,用于描述连续分数的前缀和重复部分。例如,输入(3, [1], [2, 4])表示连续分数[3; 1, 2, 4, 2, 4, ...]。 如果重复部分为空,则表示有理数。例如,(3, [1, 2], [])代表[3; 1, 2] = 11/3。您必须接受两种形式的有理数(即(3, [1, 1, 1], []),也[3; 1, 1, 1] = 11/3应该是有效的输入)。 输出:以与输入相同的格式输出输入两倍的连续分数。如果输出是合理的,则可以输出连续分数的任何一种形式。只要答案等同于正确答案,就可以了。不需要“压缩”,因此无限部分可能会“展开”一点(例如,[1; 4, 2, 3, 2, 3...]可能是书写的(1, [4], [2, 3])或(1, [4, 2, 3], [2, 3]))。所有答案必须准确。 测试用例:为方便起见,给出了准确的表格列。 Input Exact Form Output (0, [] []) …

30
多重性测试
使用任何编程语言以这种方式显示1到99(包括两者)之间的数字,以便: 数字用单个空格隔开, 如果数字可被3整除,则应在括号中, 如果数字可被4整除,则应放在方括号中, 如果数字可被3和4整除,则应同时在括号和方括号中(方括号更靠近数字)。 您的程序应准确显示: 1 2 (3) [4] 5 (6) 7 [8] (9) 10 11 ([12]) 13 14 (15) [16] 17 (18) 19 [20] (21) 22 23 ([24]) 25 26 (27) [28] 29 (30) 31 [32] (33) 34 35 ([36]) 37 38 (39) [40] 41 (42) 43 [44] …

9
我的骰子矩阵值多少钱?
输入项 由3x3子矩阵并排放置的非空二进制矩阵。 任务 您的任务是在3x3子矩阵中识别有效的骰子模式(如下所述)。每个有效模式都值得相应骰子的值。无效的模式值0。 输出量 有效骰子值的总和。 骰子图案 1 :⎛⎝⎜0, 0, 00,1, 00, 0, 0⎞⎠⎟3:⎛⎝⎜1 ,0,00,1, 00, 0,1⎞⎠⎟要么 ⎛⎝⎜0, 0,10,1, 01 ,0,0⎞⎠⎟5 : ⎛⎝⎜1 ,0,10,1, 01 ,0,1⎞⎠⎟2 : ⎛⎝⎜1 ,0,00, 0, 00, 0,1⎞⎠⎟要么 ⎛⎝⎜0, 0,10, 0, 01 ,0,0⎞⎠⎟4: ⎛⎝⎜1 ,0,10, 0, 01 ,0,1⎞⎠⎟6 : ⎛⎝⎜1 ,0,11 ,0,11 ,0,1⎞⎠⎟要么 ⎛⎝⎜1 ,1 ,10, …

26
数字记号
给定输入n,编写一个程序或函数,输出/返回n所有基数1到2 的数字和的和n。 n+∑b=2n∑i=0∞⌊nbi⌋modbn+∑b=2n∑i=0∞⌊nbi⌋modbn + \sum_{b=2}^n \sum_{i=0}^\infty \left\lfloor \frac{n}{b^i} \right\rfloor \bmod b 例: n = 5 创建范围[1...n]:[1,2,3,4,5] 对于每个元素x,获取一个由以下x位数组成的数组n: [[1,1,1,1,1],[1,0,1],[1,2],[1,1],[1,0]] 双射碱基1的5 就是[1,1,1,1,1] is的基数2(二进制)5[1,0,1] 碱基3的5 IS[1,2] 碱基4的5 IS[1,1] 碱基5的5 IS[1,0] 对数字求和: 13 测试用例: 1 1 2 3 3 6 4 8 5 13 6 16 7 23 8 25 9 30 10 35 …

14
这是BST的预定遍历吗?
背景 一个二叉树是有根树,其每个节点最多有两个孩子。 带标记的二叉树是一个二叉树,其每个节点都用一个正整数标记。此外,所有标签都是不同的。 甲BST(二进制搜索树)是标记的二叉树,其中,每个节点的标签比其左子树的所有节点的标签比在其右子树的所有节点的标签更大和更小。例如,以下是BST: 标记的二叉树的预遍历由以下伪代码定义。 function preorder(node) if node is null then return else print(node.label) preorder(node.left) preorder(node.right) 请参见下图以获得更好的直觉: 此二叉树的顶点按以下顺序打印: F, B, A, D, C, E, G, I, H 你可以阅读更多关于BSTS 这里,和更多的预购遍历这里。 挑战 给定一个整数列表一种一种a,您的任务是确定是否有一个BST的预遍历打印的正好是一种一种a。 输入项 包含正整数a的非空列表。一种一种a 任选地,长度一种一种a。 输出量 甲truthy值,如果一种一种a是一些BST的预购遍历。 一个falsey值,否则。 规则 标准规定了有效的意见,I / O,漏洞适用。 这是代码高尔夫球,因此最短的解决方案(以字节为单位)获胜。像往常一样,不要让可笑的简短的高尔夫语言解决方案阻止您以您选择的语言发布更长的答案。 这不是规则,但是如果包含测试解决方案的链接以及其工作原理的说明,您的答案会更好。 例子 Input ----> Output [1] ----> …

11
数字排序
在Unicode字符的凹处内,有一个(当前)63个字符的Unicode块,称为“数字形式”,该字符块由具有数值的字符组成,例如罗马数字Ⅻ,↉或like之类的小数部分,或诸如↊(10)或ↈ(100000)。 您的任务是编写一个程序或函数,当在此块中获得一个分配的Unicode字符列表时,该列表将按每个字符的数值排序。 字符和值的(可排序的)列表可以在Wikipedia Page上找到。 为了自成一体,这是代码点及其值的列表: Hex Char Value 0x00BC: ¼ = 1/4 or 0.25 0x00BD: ½ = 1/2 or 0.5 0x00BE: ¾ = 3/4 or 0.75 0x2150: ⅐ = 1/7 or 0.142857 0x2151: ⅑ = 1/9 or 0.111111 0x2152: ⅒ = 1/10 or 0.1 0x2153: ⅓ = 1/3 or 0.333333 …

13
这是同花顺吗?
相关:命名扑克手 同花顺是一张包含五张相继排名的扑克牌,全部相同。作为同花顺的一部分,王牌可以排名高于国王或低于两位。一张高手可以排在高位(例如A♥K♥Q♥J♥10♥是高位同花顺)或低(例如5♦4♦3♦2♦A♦是五高同花顺),但是不能同时在高手和低手同时排名(例如Q♣K♣A♣2♣3♣是高手同花,而不是同花顺)。 挑战 N如果扑克手中有同花顺,给定的纸牌(以任何合理的格式)将输出真实值。 输入项 N卡数。(以任何合理的格式) 一共有四套西装。心,黑桃,钻石和球棒(H, S, D, C)。 每套西装都有一张2到10的卡片,外加4张“图片”卡片,分别是Ace,Jack,Queen和King (A, J, Q, K) 注意:您可以将10作为T 输出量 Truthy/Falsy 值 测试用例 ["AS", "2S", "3S", "4S", "5S"] => true ["3D", "9C", "4S", "KH", "AD", "AC"] => false ["5D", "6D", "7D", "8H", "9D", "10D", "JD"] => false ["JC", "7C", "5D", "8C", "AC", "10C", …

14
切掉矩阵以获得所需的总和
定义 给定非负整数和非负整数的矩阵,我们将定义为“斩波”函数,该函数删除中包含k的所有行和所有列。M中号MkķkFkFķF_kM中号Mkķk 例: M=⎛⎝⎜⎜⎜619612805854⎞⎠⎟⎟⎟F5(M)=(1620)中号=(61个51个28985604)F5(中号)=(1个260)\begin{align}M=\pmatrix{\color{red}6&\color{red}1&\color{white}{\bbox[red,1pt]{5}}\\1&2&\color{red}8\\\color{red}9&\color{red}8&\color{white}{\bbox[red,1pt]{5}}\\6&0&\color{red}4}\\\\F_5(M)=\pmatrix{1&2\\6&0}\end{align} 你的任务 鉴于M中号M和目标总和S小号S,你的任务是找到的所有可能值kķk使得在剩余元素的总和Fk(M)Fķ(中号)F_k(M)等于S小号S。 例: 给定上述矩阵M中号M和S=9小号=9S=9: k=5ķ=5k=5是一个解决方案,因为F5(M)=(1620)F5(中号)=(1个260)F_5(M)=\pmatrix{1&2\\6&0}和1+2+6+0=91个+2+6+0=91+2+6+0=9 k=1ķ=1个k=1是唯一可能的其他解决方案:F1(M)=(54)F1个(中号)=(54)F_1(M)=\pmatrix{5\\4}和5+4=95+4=95+4=9 因此,预期输出为{1,5}{1个,5}\{1,5\}。 澄清和规则 确保输入至少接受一种解决方案。 在原始矩阵中的元素的总和被保证是大于S小号S。 您可以假设S>0小号>0S>0。这意味着空矩阵永远不会导致解决方案。 k的值kķk可以按任何顺序以任何合理,明确的格式打印或返回。 你被允许不进行重复数据删除的输出(例如或对于上面的例子被认为是有效的答案)。[ 1 ,5 ,1 ,5 ][1,1,5,5][1个,1个,5,5][1,1,5,5][1,5,1,5][1个,5,1个,5][1,5,1,5] 这是代码高尔夫球。 测试用例 M = [[6,1,5],[1,2,8],[9,8,5],[6,0,4]] S = 9 Solution = {1,5} M = [[7,2],[1,4]] S = 7 Solution = {4} M = [[12,5,2,3],[17,11,18,8]] S = 43 Solution = …

1
流氓寻路
流氓寻路 给定下面描述的元素的二维数组(表示地牢),您的任务将输出或返回一个数字,该数字表示流氓可以在不唤醒任何怪物的情况下收集的金块数量。 数组的元素如下: 空格由.您的呼叫或一个空格表示; 当然,Rogue的起始位置由@; 表示。 一块金代表$; 墙壁用#; 怪物由以下正则表达式中的字符表示:[a-zA-Z*&]。 该数组不应包含上面未列出的任何字符,因此您可以假定不是墙壁,空白空间,流氓或金币的任何东西都是怪兽。 寻路的规则是: 流氓只能穿过空的牢房或含金的牢房。 转向到相邻或对角线相邻的单元格; 拿起黄金是立即的; 流氓在不醒来的情况下不能与怪物相邻或对角相邻超过一个回合,这是被禁止的; 流氓可以多次进入怪物的意识区域,只有流氓在其附近连续走两圈时,怪物才会醒来。 输入和输出规则 您可以采用任何合理的格式获取输入,包括二维数组,平面数组,字符串或其他任何格式。如果它使您的生活更轻松,那么您也可以考虑数组的尺寸。 可以确保流氓一开始不会在怪物附近。 完整的程序或功能很好。 计分 这是代码高尔夫球,分数是提交的字节数,越少越好。 测试用例 为了方便阅读,我在此处使用空格表示点,如果您愿意,可以使用空格(请参见上文)。还要注意,这纯粹是偶然的,流氓总是在左上角,您的代码也应该处理任何其他有效位置。 1) @.. .$. ... -> 1 只是一个健康测试。 2) @.... ...g$ ..... -> 0 再次进行健全性测试。 3) @.... ...$g ..... -> 1 流氓可以通过向左移动来抢金。 4) @....g.. .......$ ........ .....h.. …

2
整数线性规划
介绍 为整数线性规划编写一个求解器。 挑战 您的任务是编写整数线性规划(ILP)的求解器。在ILP中,给出了一组未知数(所有都是整数)的线性不等式,目的是找到线性函数的最小值或最大值。 例如,对于不等式(示例取自“ 混合整数线性规划”) 4x+2y-15≤0 x+2y- 8≤0 x+ y- 5≤0 - x ≤0 - y ≤0 和目标函数3x+2y,目标函数的最大值应为12(x=2,y=3),而最小值应为0(x=y=0)。 输入以2d数组形式给出(或遵循标准规范的任何等效形式),每一行对应一个不等式,最后一行除外。数组中的数字是系数,该≤0部分始终被省略。如果n每一行中都有元素,则意味着存在n-1未知数。 数组的最后一行对应于线性函数。列出系数。 例如,上面问题的输入数组是 [[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,0]]. 输出应该是最小和最大,以任何合理的形式给出。 对于以下问题(上述问题排除了两个限制): [[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]]. 最大值仍然是12,但最小值不存在,目标函数可以具有任意大的负值(就绝对值而言)。在这种情况下,程序应12按照由应答者确定的虚假值输出。另一种情况是根本没有解决方案,例如, [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]]. 在这种情况下,也应输出虚假值。最好能分辨出目标函数的“最优值”是无穷大的情况以及根本没有解的情况,但这不是必须的。 输入仅包含不等式和目标函数的整数系数。所有未知数也是整数。不等式的系数矩阵被保证具有满分。 测试用例 归功于@KirillL。在原始测试套件中发现错误并加深我对ILP问题的理解。 Input Output [[4,2,-15],[1,2,-8],[1,1,-5],[-1,0,0],[0,-1,0],[3,2,1]] [1,13] [[4,2,-15],[1,2,-8],[1,1,-5],[3,2,0]] [-inf, 12] [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[3,2,0]] [NaN, NaN] [[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[5,5,5,5,6,7]] [55, inf] [[-1,-1,-1,-1,-1,8],[1,1,1,1,0,0],[0,0,0,0,0,4]] [4, 4] [[4,2,-15],[-1,-2,7],[-1,0,3],[0,1,0],[0,0,4]] [NaN, …

8
Fizz Buzz在列中具有唯一字符
受数字在他们的车道和1,2,Fizz,4,Buzz中的启发 介绍 您的任务是完全生成以下输出: 1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzz 16 17 Fizz 19 Buzz Fizz 22 23 Fizz Buzz 26 Fizz 28 29 FizzBuzz 31 32 Fizz 34 Buzz Fizz 37 38 Fizz Buzz 41 Fizz 43 44 FizzBuzz 46 47 …

14
我现在在哪里?
我现在在哪里? 给定一个d仅包含字母的字符串,NSWE确定我经过的坐标(从左到右,贪婪地消耗)以及我所居住的最终坐标。 从左到右读取坐标的规则: 如果下一个字符是N或S: 如果N或之后的字符S是另一个N或S: 仅消耗第一个N或第二个S。 输出[0,1] 为N 输出[0,-1]为S 如果N或之后的字符S是W或E: 同时使用Nor S和Wor E。 输出[1,1]或分别[-1,1]用于NE和NW。 输出[1,-1]或分别[-1,-1]用于SE和SW。 如果字符前面是E或W之前不是S或N: 消费E或W。 输出[1,0]为E。 输出[-1,0]为W。 工作实例 西非国家统计局 [0,1] (North N) [-1,-1] (South-west SW) [1,0] (East E) [0,0] (N+SW+E = Didn't actually move) 请注意,这可以是任何格式,以下是有效输出的其他示例: [[0,1],[-1,-1],[1,0],[0,0]] [[[0,1],[-1,-1],[1,0]],[0,0]] "0,1\n0,-1\n-1,0\n1,0\n0,0" 等等... 更多例子 斯威士尼 [-1,-1] [1,-1] [0,1] [1,1] [-1,-1] [1,1] [1,0] …
21 code-golf 

30
X向前前进,1向后退
这里是一个简单序列的前100个数字: 0,1,0,2,1,4,3,7,6,11,10,16,15,22,21,29,28,37,36,46,45,56,55,67,66,79,78,92,91,106,105,121,120,137,136,154,153,172,171,191,190,211,210,232,231,254,253,277,276,301,300,326,325,352,351,379,378,407,406,436,435,466,465,497,496,529,528,562,561,596,595,631,630,667,666,704,703,742,741,781,780,821,820,862,861,904,903,947,946,991,990,1036,1035,1082,1081,1129,1128,1177,1176,1226 这个序列如何运作? n: 0 1 2 3 4 5 6 7 8 9 10 11 12 0, 1-1=0, 2-1=1, 4-1=3, 7-1=6, 11-1=10, 16-1=15, 0+1=1, 0+2=2, 1+3=4, 3+4=7, 6+5=11, 10+6=16, 15+7=22 a(0) = 0 对于每个奇数n(0索引),它都是a(n-1) + X(X=1每次访问时在1 处加1) 对于每个偶数n(0索引),a(n-1) - 1 挑战: 之一: 给定输入整数n,输出n序列中的'th号。 给定输入整数n,输出n序列的第一个数字。 无限期地输出序列,而无需输入(或获取空的未使用输入)。 挑战规则: 输入n可以是0或1的索引。 如果输出序列(的一部分),则可以使用列表/数组,并使用任何定界符(空格,逗号,换行符等)打印到STDOUT。你的来电。 请说明您在答案中使用的三个选项中的哪个。 …

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.