Questions tagged «code-golf»

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

7
构造雅可比矩阵
取未知向量,并应用一些通用的微分函数。的雅可比然后通过矩阵给出,使得: 例如,假设m=3和n=2。然后(使用基于0的索引) 雅可比f然后 这个挑战的目标是打印这个雅可比矩阵。 输入值 你的程序/功能应该采取作为输入两个正整数m和n,其代表的部件的数目f和u分别。输入可以来自任何所需的来源(stdio,功能参数等)。您可以指定接收顺序,对于输入的答案必须一致(请在答案中指定)。 输出量 代表雅可比矩阵的东西。此表示形式必须明确拼出Jacobian矩阵的所有元素,但是每个术语的确切形式都是实现定义的,只要明确区分什么以及关于什么进行区分,并且每个条目均以逻辑顺序输出。用于表示矩阵的示例可接受形式: 列表列表,其中外部列表​​的每个条目都对应于雅可比行的一行,内部列表的每个条目都对应于雅可比行的列。 字符串或文本输出,其中每行是Jacobian行,每行中由定界符分隔的条目对应于jacobian的列。 矩阵的一些图形/视觉表示。示例:使用MatrixForm命令时Mathematica显示的内容 其他每个条目都已存储在内存中并且可以查询的密集矩阵对象(即,您不能使用生成器对象)。例如,Mathematica如何在内部表示Matrix对象 条目格式示例: 形式为的字符串d f_i/d u_j,其中i和j是整数。例如:d f_1/d u_2。请注意,d和f_1或之间的这些空格x_2是可选的。此外,下划线也是可选的。 形式为d f_i(u_1,...,u_n)/d u_j或的字符串d f_i(u)/d u_j。也就是说,功能组件的输入参数f_i是可选的,并且可以明确地拼写出来或以紧凑形式保留。 格式化的图形输出。例如:计算表达式时Mathematica会打印什么D[f_1[u_,u_2,...,u_n],u_1] 您可以选择起始索引u和目标索引f(请在答案中指定)。输出可以是任何所需的接收器(stdio,返回值,输出参数等)。 测试用例 以下测试用例使用约定m,n。索引显示为从0开始。 1,1 [[d f0/d u0]] 2,1 [[d f0/d u0], [d f1/d u0]] 2 2 [[d f0/d u0, d f0/d u1], [d f1/d u0, d …

7
可视化链规则
定义 具有两个功能的链式规则指出: D[f(g(x))] = f'(g(x)) * g'(x) 或者,或者: D[f1(f2(x))] = f1'(f2(x)) * f2'(x) 具有三个功能的链式规则指出: D[f(g(h(x)))] = f'(g(h(x))) * g'(h(x)) * h'(x) 或者,或者: D[f1(f2(f3(x)))] = f1'(f2(f3(x))) * f2'(f3(x)) * f3'(x) 等等。 任务 给定2到21之间的整数,以第一种形式或第二种形式输出具有许多功能的链式规则。 请指定您是否使用第二种形式。 眼镜 字符串的格式必须与上面所述完全相同,并带有: 所有空间保持完整 大写 D 紧随其后的方括号 D 星号完好无损 允许一个额外的尾随空格(U + 0020)。 第二种形式的函数名称中的前导零(例如,f01代替f1)是允许的。 测试用例 如果您使用第一种形式: input output 2 …

6
二进制重复序列
二进制重复序列是具有以下形式的递归定义的序列: 这是斐波那契(x = 1, y = 2, a = [1, 1], alpha = 1, beta = 1)序列和卢卡斯(x = 1, y = 2, a = [2, 1], alpha = 1, beta = 1)序列的概括。 挑战 给定n,x,y,a,alpha,和beta,在任何合理的格式,输出n对应的二进制递归序列的第术语。 规则 您可以选择序列是1索引还是0索引,但是您的选择必须在所有输入中保持一致,并且必须在答案中记下您的选择。 您可能会假设不会给出任何无效输入(例如在之前终止n的序列或引用未定义术语(例如F(-1)或F(k)where k > n)的序列)。由于这一结果,x并y会一直是积极的。 输入和输出将始终是整数,在语言的自然整数类型的范围内。如果您的语言具有无界整数,则输入和输出将在该范围内[2**31, 2**31-1](即32位带符号二进制补码整数的范围)。 a将始终精确地包含y值(按照定义)。 测试用例 注意:所有测试用例均以0索引编制。 x = 1, y = …

3
取得电话号码的方法
鉴于第一个数字的输入,第二个数字(均为正整数,零已排除),确定有多少种方法可以使第二列全国第一,使用以下操作:+1,+2和*3。简单地从左到右应用操作。 例子: 输入:1 2。输出:1。即,您只能2这样做+1,所以是一种方法。 输入:1 3。输出:3。也就是说,你可以得到由要么做3 +2或+1+1,或*3 输入:1 4。输出:4。 输入:2 6。输出:6。 输入:2 7。输出:9。 输入:1 10。输出:84。 如果没有办法,例如100 100或100 80,输出为0。 您也可以将输入作为数组或带有任何方便分隔符的字符串。 最短的解决方案获胜。

6
找到路径!
您必须编写一个程序或函数。 输入是数字的“映射”。您可以选择将地图作为带换行符(\n)的字符串或二维字符串数组。 所有地图都是5个字符乘5个字符,并且这些字符始终是大于0的数字或空格。 这是地图的示例: 12 45 11233 233 1 2 899 您的任务是在地图中找到连接的组件。有效成分是至少三个水平和/或垂直(非对角线)相连的相同数字(不是空格)的序列。然后,您需要用xs 替换有效连接的组件的字符,然后打印或返回该结果。 因此,以上示例的输出为: x2 45 xx2xx 2xx 1 2 899 这是另一个测试用例(感谢Martin Ender): Input: 2 3 4 1 5 111 6 11 7 Output: 2 3 4 x 5 xxx 6 xx 7 这是代码高尔夫球,因此以字节为单位的最短代码获胜!

2
证明数字是代数的
受此答案启发(重点是我的): 我们将玩游戏。假设您有一些数字x。您可以从x开始,然后可以加,减,乘或除以除零以外的任何整数。您还可以乘以x。您可以根据需要多次执行这些操作。如果总数变为零,则您赢了。 例如,假设x为2/3。乘以3,然后减去2。结果为零。你赢了! 假设x为7 ^(1/3)。乘以x,然后再乘以x,然后减7。您赢了! 假设x为√2+√3。在这里,要赢得胜利并不容易。但是事实证明,如果您乘以x,然后减去10,再乘以x两次,再加上1,那么您就赢了。(这似乎并不明显;您可以使用计算器进行尝试。) 但是,如果您从x =π 开始,您将无法获胜。如果您对整数进行加,减,乘或除,或与π相乘,则无论采取多少步,都无法从π变为0。(这也不应该很明显。这是非常棘手的事情!) 像√2+√3这样的数字可以被赢得,称为代数。像π这样无法赢得的数字称为先验数字。 为什么这很有趣?每个代数数字都与整数算术相关,游戏中的获胜手法向您展示了如何做到这一点。到达零的路径可能很长且很复杂,但是每个步骤都很简单,并且有一条路径。但是,先验数在本质上是不同的:通过简单的步骤,它们与整数没有算术关系。 本质上,您将使用上面引用的问题中使用的步骤为给定的输入“赢得”游戏。 给定一个实数代数常量x,请使用以下允许的运算将数字转换为零: 加或减整数。 用非零整数乘或除。 乘以原始常数x。 输入是一个字符串,其中可以包含整数,加法,减法,乘法,除法,乘幂(您对**或的选择^,指数用于表示根)和括号。输入中的空格是可选的,但输出中的空格则是可选的。您应该输出获得零结果所需的步骤,因此乘以7一个步骤将输出为*7。允许尾随空格和/或换行符。 例子 0 -> +0 (or any other valid, or empty) 5/7 + 42 -> -42 *7 -5 (or shorter: *7 -299) 2^(1/3) -> *x *x -2 5*(3**(1/4)) -> *x *x *x -1875 2^(1/2)+3^(1/2) …
10 code-golf  math 

16
懒人打码高尔夫
你在这个代码高尔夫的目标是把两个字符串,language并且code (如果你这个写的golfed代码为多,那么这个变量将是多),和一个整数bytes。它们表示编程语言的变量,占用的字节数以及代码本身。 之后,您将像打高尔夫球的人一样格式化它。 输出变量是称为的多行字符串answer。 您可以在以下位置使用多行字符串: C ++ 蟒蛇 佩尔 的JavaScript 如果搜索Stack Overflow,则应该能够找到更多支持它的编程语言。 这是输出减价的模板。该code变量在代码块中,并且具有第二级标头。 ## {language}, {bytes} bytes {code} 这是粘贴到Markdown解析器中后的输出结果。 {language},{bytes}个字节 {code} 假定变量已经作为您在代码高尔夫代码中输入的语言,其占用的字节数以及实际代码进行了填写。 这是代码输出的另一个示例,这次填充了变量: ## JavaScript, 1337 bytes document.getElementById("foo").innerHTML = bar; 这是版本的块引用: JavaScript,1337字节 document.getElementById("foo").innerHTML = bar; 如果您使用一种<p>通过id 设置HTML中元素文本的方法,则可以从代码中删除字节result,例如以下JavaScript代码: document.getElementById("result").innerHTML = answer; 确保<p id="result"></p>在JSFiddle的HTML部分中也包含,这样才能起作用。 计分 像所有的代码问题一样,使用最少字节数的代码也是最好的。

7
向下数字竞赛
您的任务是创建一个程序,该程序将随机数字添加到最终数字竞赛摊牌中的先前总和。 每个赛车手(列)从0开始,并在比赛的每一步中将1或0添加到先前的总和,直到所有赛车手达到获胜所需的分数为止。1或0应该随机选择(可以在此处找到random的标准定义)。输出将显示比赛的结果,每一列以一种格式表示: >> racers:5,score needed:2 0 0 0 0 0 # all racers start at 0 + + + + + # add 1 0 0 0 1 # random 1 or 0 = = = = = # equals 1 0 0 0 1 # sum + + + …
10 code-golf 

10
查找获得结果所需的操作
因此,任务很简单,给定数字和结果数组,您需要从array中找到需要对数字进行哪些操作才能获得请求的结果。 让我们简化启动过程,只允许执行基本操作,例如:加法,减法,乘法和除法。 例: Input : [5,5,5,5,5] 100 Output : 5*5*5-5*5 为了给Java之类的语言带来一些好处,请求是实现功能,而不是整个程序,结果可以通过参数返回或打印到控制台。 代码是根据字节数计分的,这是高尔夫球代码挑战赛中得分最低的获胜者。 另一个要求是,如果数组仅包含digids,则可以从以下数字构造数字,从而获得-10分。即 Input : [1,2,3,4,5] 0 Output : 12-3-4-5 请注意,如果输出是建议的输出,则某些情况下可能有多个解决方案。您将根据自己的任务提供一个或多个解决方案。 编辑: 从数学的角度来看,结果必须是有效的,因此除法是有理除法,而不是整数,并且运算优先级与经典数学中的相同(首先是乘除法,然后是加法和减法)。

3
一百个方块!
回归本源... 作为当地小学(年级?)的老师,您需要一种方法来教您班级的时间表。您可以随意使用数百个正方形和大量的红笔。您还需要能够快速向班级显示正确答案。 现在,您足够聪明,可以编写一个可以执行时间表的程序,但是可以在100平方尺上绘制它们吗? 挑战 使用ansi-escape码将100平方输出到stdout或等价的数字,以数字的阴影表示,该数字是输入的倍数。 输出包含数字1-100的10x10网格。 只要保持一致,每个框中2位数字的对齐方式都没有关系 对于1位数字,您可以填充至2位数字,并使用与2位数字相同的格式,或者在框中间居中。 如果框中的数字是输入的倍数,请将整个框涂成红色。 这意味着整个盒子,而不仅仅是数字部分 例如,给定输入3,打印给定的百平方 这是代码高尔夫球,所以最短的答案以字节为单位!

4
最小成本块对角化
考虑二进制块对角矩阵,该矩阵在主对角线上具有1s的正方形块,而在其他各处均为0。让我们称此类矩阵为“有效”矩阵。 例如,以下是一些有效的4x4矩阵: 1 0 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 1 1 1 1 0 1 0 0 1 1 0 0 0 1 1 0 0 1 1 1 1 1 0 0 1 1 1 1 …

12
N-唯一加法集
请记住,集合是无序的,没有重复项。 定义长度为K的N个唯一加法集合S是一个集合,使得S中所有N个长度子集的总和为不同的数。换句话说,S的所有N个长度的子集的和都是不同的。 目标给定一个数组/集合作为输入,并N以任意合理格式给函数或完整程序提供一个数字,查找并返回或输出表示输入是否为N的真实或假值(错误为假)。独特的添加剂。 您可以假设每个元素最多只能出现一次,并且每个数字都在您语言的本机数据类型之内。如果需要,您还可以假设输入已排序。最后,您可以假设0 < N <= K。 例子 让我们考虑一下set S = {1, 2, 3, 5}和N = 2。这是所有唯一对的总和S(因为唯一对是唯一的总和): 1 + 2 = 3 1 + 3 = 4 1 + 5 = 6 2 + 3 = 5 2 + 5 = 7 3 + 5 = 8 我们可以看到输出中没有重复项,因此S是2唯一加法的。 现在让我们考虑集合T …

13
对角线点积
这个挑战非常简单。您将得到一个以任何理性方式表示的方阵作为输入,并且您必须输出该矩阵对角线的点积。 具体而言,对角线是从左上角到右下角以及从右上角到左下角的对角线。 测试用例 [[-1, 1], [-2, 1]] -> -3 [[824, -65], [-814, -741]] -> 549614 [[-1, -8, 4], [4, 0, -5], [-3, 5, 2]] -> -10 [[0, -1, 0], [1, 0, 2], [1, 0, 1]] -> 1

3
RegEx-golf:匹配字符串中的所有内容
您的任务是编写一个与字符串中的所有内容匹配的RegEx。 字符串定义为被两个未转义的包围(但不包括)的所有内容"。 A "可以通过进行转义\,也可以再次进行转义。 测试用例 string: ab\c"defg\\\"hi"jkl"mn\\\\"opqrst"" matches: ^^^^^^^^^^ ^^^^^^ ^ (the empty string) 计分 最短的解决方案获胜。 眼镜 请指定使用的风味。 输入将保持平衡"。 在\string-beginning-delimiter之前紧跟着没有。例如,您不需要处理abc\"def"

2
架桥
您的任务是建立一座桥梁,以连接两个峭壁d(在一定距离的情况下输入)。d将永远是偶数 但是,桥需要列来支撑它。每列每侧最多可容纳6个空格。 对于此示例: ________ ________ | | A | | B |----------------------| d = 22 的桥d = 20应该看起来像这样,有两列。列不计入d。 _____|__________|_____ 12345|1234554321|12345 | | 规则: 必须有足够的立柱站立。 必须具有站起来所需的最少列数。 必须对称 最低字节赢率 示例:(#仅用于帮助您计算空格。不应包含在您的输出中) d = 10 _____|_____ 12345|12345 | d = 32 _____|___________|___________|_____ 12345|12345654321| | | | | d = 8 ____|____ 1234|1234 | d …

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.