Questions tagged «matrix»

矩阵是排列在具有行和列的矩形中的数字列表。在编程中,它也称为2D数组。如果您面临的挑战是处理矩阵,请使用此标签。

14
斐波那契式矩阵展开
对于矩阵的每一行和每一列,我们可以添加一个额外的条目,并加上该行或列中最后两个条目的总和。例如,使用以下输入矩阵: [ 1 1 1 ] [ 2 3 4 ] 结果矩阵为: [ 1 1 1 2 ] [ 2 3 4 7 ] [ 3 4 5 9 ] 给定整数N的输入和大小至少为2x2的[X,Y]矩阵,请执行上述扩展N次并输出结果。生成的矩阵将始终为[X + N,Y + N]。 例子: Input: Output: 2, [ 0 0 ] [ 0 0 0 0 ] [ …

15
矩阵拼图
输入: 一个整数 n 两个相等大小的正方形矩阵(其宽度/高度为的倍数n) 输出: 一个你自己选择的两个不同的值,一个是用于truthy结果,一个用于falsey结果(所以是的,1/0而非true/false是像Java语言的有效输出,即使他们不视为正式truthy / falsey值)。 正确/错误输出指示我们是否可以n by n在一个矩阵中重新排列大小的块以使其等于另一个矩阵。 例: 输入: Matrix 1: 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1 0 9 8 1 1 1 1 1 …

3
实施简化字距调整
介绍 字距调整是指调整文本字母之间的间距。例如,考虑Top用以下三个字形写的单词: ##### ..... ..... ..#.. ..... ..... ..#.. ..##. .###. ..#.. .#..# .#..# ..#.. .#..# .#..# ..#.. ..##. .###. ..... ..... .#... ..... ..... .#... 我们可以用点填充字形之间的间隙并完成它,但是间隙看起来太宽了。相反,我们将字形滑动到左侧,以便它们几乎可以接触: #####........ ..#.......... ..#..##..###. ..#.#..#.#..# ..#.#..#.#..# ..#..##..###. .........#... .........#... 看起来好多了!请注意,的条形图T在的左边框上方o。在此挑战中,您的任务是为此类矩形字形实现一个简单的字距调整程序。 字距调整过程 考虑具有.和#形状相同的两个矩形2D字符数组。在简单的字距调整过程中,我们首先将数组并排放置,中间放置一列.s。然后,我们将#右阵列中的每一个向左移动一步,直到#左右阵列中的s正交或对角相邻。字距调整的结果是引入相邻s 之前的步骤#。您的任务是实施此过程。 让我们举个例子: Inputs: ..### #.... #.... ..##. ...#. ...## ..### ....# Process: …
24 code-golf  grid  code-challenge  atomic-code-golf  code-golf  combinatorics  probability-theory  card-games  code-golf  number  geometry  code-golf  decision-problem  chess  code-golf  math  number  sequence  code-golf  string  regular-expression  code-golf  arithmetic  integer  code-golf  math  array-manipulation  code-golf  number  decision-problem  integer  code-golf  string  ascii-art  kolmogorov-complexity  code-golf  decision-problem  graph-theory  binary-matrix  code-golf  string  parsing  code-golf  string  code-golf  morse  code-golf  code-golf  string  code-golf  ascii-art  cellular-automata  code-golf  binary  base-conversion  code-golf  arithmetic  decision-problem  integer  checksum  code-golf  matrix  linear-algebra  code-golf  code-golf  game  code-golf  sequence  binary  code-golf  combinatorics  optimization  code-golf  decision-problem  quine  code-golf  rational-numbers  bitwise  code-golf  string  permutations  code-golf  kolmogorov-complexity  unicode  code-golf  ascii-art  number  code-golf  number  integer  binary  base-conversion  code-golf  array-manipulation  code-golf  chemistry  code-golf  number  sequence  fibonacci  code-golf  matrix  optimization  code-golf  number  code-golf  math  number  sequence  code-golf  math  array-manipulation  matrix  linear-algebra  code-golf  kolmogorov-complexity  cops-and-robbers  cops-and-robbers  code-golf  tips  basic  code-golf  decision-problem  binary  tiling  game  king-of-the-hill  python  code-golf  c  code-golf  ascii-art  code-golf  string  kolmogorov-complexity  alphabet  code-golf  number  code-golf  string  code-golf  number  sequence  integer  code-golf  number  permutations  restricted-complexity  restricted-time 

17
它是随机矩阵吗?
甲随机矩阵是马尔可夫链的上下文中使用的概率的矩阵。 甲右随机矩阵是矩阵,其中每一行款项1。 一种 左随机矩阵是其中,每个列总和到1。 一种 双随机矩阵是一个矩阵,其中每行和每列总和到1。 在这个挑战中,我们将使用整数以百分比表示概率。在这种情况下,行或列的总和必须为100不是1。 您的目标是编写一个程序或函数,给定一个整数平方的矩阵作为输入,该程序或函数将输出四个值之一,这些值指示该矩阵是右随机,左随机,双随机或全不随机。 输入项 您可以使用对您的语言自然的矩阵的任何适当表示形式作为输入。例如,列表列表,用逗号分隔的值的字符串和用换行符分隔的行等。 输入矩阵将始终为正方形,并且仅包含非负整数。输入矩阵将始终至少为1×1。 您可以使用STDIN,作为函数参数或类似的参数传递输入。 输出量 您必须选择四个不同的输出,分别对应于右随机,左随机,双随机或全部都不输出。不管传递什么输入,这些输出必须是恒定的。对于相同的情况,您的程序可能不会返回不同的输出,例如,说任何负数对应于所有无效的输出。 简而言之,您的输出与四种可能的情况之间必须存在1对1的对应关系。这四个输出的一些示例为{1, 2, 3, 4}or {[1,0], [0,1], [1,1], [0,0]}或什至{right, left, doubly, none}。 请在您的答案中指出程序使用的四个输出。 如果矩阵是双随机的,那么必须返回对应于双随机的输出,而不是右或左随机的输出。 您可以将输出打印到STDOUT,从函数返回它或类似的东西。 测试用例 [100] => Doubly stochastic [42] => None of those [100 0 ] => Doubly stochastic [0 100] [4 8 15] [16 …
24 code-golf  matrix 

15
半回文之谜
回文是一个本身相反的词。 现在有些单词看起来像回文,但看起来却不然。例如,考虑单词 sheesh, sheesh不是回文,因为它的反向是hseehs不同的,但是如果我们认为sh是单个字母,那么它的反向是sheesh。我们将这种词称为半回文。 具体来说,如果我们可以将单词拆分成一定数量的块,则该单词为半回文,这样当块的顺序颠倒时,便形成了原始单词。(因为sheesh这些块是sh e e sh),我们也将不要求任何块包含两个单词的字母(否则每个单词都是半回文)。例如rear,不是半回文,因为它r ea r具有一个块(ea),其中包含来自原始单词两边的字母。我们认为奇数长度的单词的中心字符不在单词的两侧,因此对于奇数长度的单词,中心字符必须始终位于其自己的块中。 您的任务是获取正整数列表,并确定它们是否为半回文。您的代码应输出两个一致的不相等值,如果输入是半回文,则应输出一个,否则将输出另一个。但是,代码的字节序列本身必须是半回文。 答案将以字节计分,而字节数越少越好。 测试用例 [] -> True [1] -> True [2,1,2] -> True [3,4,2,2,3,4] -> True [3,5,1,3,5] -> True [1,2,3,1] -> False [1,2,3,3,4,1] -> False [11,44,1,1] -> False [1,3,2,4,1,2,3] -> False 程序生成更多的测试用例。 borrible指出,这些与广义Smarandache回文相似。因此,如果您想做进一步的阅读,那是一个开始的地方。

10
最短的唯一标识子字符串
给定一个字符串列表,请用其非空子字符串之一替换每个字符串,该子字符串不是列表中任何其他字符串的子字符串,并且应尽可能短。 例 给定list ["hello","hallo","hola"],"hello"应替换为,"e"因为该子字符串未包含在其中"hallo","hola"并且它尽可能短。"hallo"可通过任一取代"ha"或"al"并"hola"通过任何"ho","ol"或"la"。 规则 您可以假定字符串将为非空,并且仅包含大小写相同的字母字符。 您可以假定列表中的每个字符串都存在这样的子字符串,即列表中的任何字符串都不是其他任何字符串的子字符串。 输入和输出可以采用任何合理的格式。 这是code-golf,因此请尝试使用您选择的语言使用尽可能少的字节。 测试用例 在大多数情况下,仅给出一种可能的输出。 ["ppcg"] -> ["p"] (or ["c"] or ["g"]) ["hello","hallo","hola"] -> ["e","ha","ho"] ["abc","bca","bac"] -> ["ab","ca","ba"] ["abc","abd","dbc"] -> ["abc","bd","db"] ["lorem","ipsum","dolor","sit","amet"] -> ["re","p","d","si","a"] ["abc","acb","bac","bca","cab","cba"] -> ["abc","acb","bac","bca","cab","cba"] 相关:最短识别子字符串 -类似的想法,但涉及更多规则和繁琐的格式。
23 code-golf  string  code-golf  string  code-golf  array-manipulation  code-golf  quine  code-golf  array-manipulation  integer  matrix  classification  code-golf  quine  code-golf  string  matrix  conversion  code-golf  string  number  code-golf  string  code-golf  number  sequence  integer  code-golf  decision-problem  matrix  code-golf  string  code-golf  math  code-golf  math  array-manipulation  combinatorics  code-golf  random  code-golf  code-golf  alphabet  code-golf  python  c  code-golf  base-conversion  code-golf  string  counting  code-challenge  code-generation  fastest-code  code-golf  kolmogorov-complexity  matrix  code-golf  string  code-golf  array-manipulation  decision-problem  random  sudoku  code-golf  chess  code-golf  card-games  encode  code-golf  decision-problem  code-golf  code-golf  math  array-manipulation  matrix 

3
最小矩形盖
矩形盖 假设您有一个位矩阵,例如以下。 1 1 0 0 0 1 1 0 1 1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 1 0 1 1 1 1 0 1 1 0 1 1 1 0 1 我们想找到这个矩阵的矩形封面。它是矩阵的一组矩形子集,其中不包含任何0,但一起包含所有1。子集不需要是不相交的。这是上述矩阵的矩形封面示例。 +----+ +----+ |1 1| 0 0 0 …

21
矩阵以“斜杠”顺序
给定两个正数,N >= 2并N <= 100创建一个遵循以下规则的矩阵: 第一个数字从位置开始 [0,0] 第二个数字从位置开始 [0,1] 第三个数字低于第一个数字(位置[1,0]) 以下数字朝“斜线”方向移动 使用的数字范围是[1, N1 * N2]。因此,数字从开始1到两个输入相乘的结果。 输入项 两个数字N >= 2和N <= 100。第一个数字是行数,第二个数字是列数。 输出量 矩阵。(可以输出为多维数组或带换行符的字符串) 例: 给定数字3 and 5输出: 1 2 4 7 10 3 5 8 11 13 6 9 12 14 15 给定数字 2 and 2 1 2 3 4 …
23 code-golf  matrix 

27
广义矩阵迹
灵感。 给出(通过任何方式): 两个参数(或包含两个元素的列表的单个参数)黑盒函数,(输入和输出为1、2、3,…)f: ℤ+ × ℤ+ → ℤ+ 具有至少两行两列的严格正整数矩阵 返回矩阵的函数trace。 什么是功能跟踪? 法线矩阵轨迹是矩阵的主要对角线(左上至右下)的总和: [[1,2,3],[4,5,6],[7,8,9]]→交通[1,5,9]→交通1+5+9→交通15 但是我们不求总和,而是f沿对角线应用: [[1,2,3],[4,5,6],[7,8,9]]→交通[1,5,9]→交通f(f(1,5),9)或f(1,f(5,9)) 请说明您使用的是从左到右还是从右到左。 给定的矩阵和所有中间值将严格为您语言的整数域内的正整数。矩阵可以是非正方形的。 例子 f(x,y) = xy,[[1,2,3],[4,5,6],[7,8,9]]→交通1×5×9→交通45 f(x,y) = xy,[[1,2,3],[4,5,6],[7,8,9]]→交通 →交通1591 f(x,y) = x-y,[[4,5,6],[1,2,3]]→交通4-2→交通2 f(x,y) = (x+y)⁄2,[[2,3,4],[5,6,7],[8,9,10]]→ 5或7 f(x,y) = x+2y,[[1,2,3],[4,5,6],[7,8,9]]→ 47或29 f(x,y) = max(x,y),[[1,2,3],[4,5,6],[7,8,9]]→交通max(1,5,9)→交通9 f(x,y) = 2x,[[1,2,3],[4,5,6],[7,8,9]]→ 2或4 f(x,y) = lcm(x,y),[[2,2,2],[2,2,3],[2,3,3],[4,4,4]]→交通lcm(2,2,3)→交通6 参考实施。

12
用总和填充矩阵
挑战: 给定一个方形输入矩阵A,在矩阵的所有四个边上分别填充一行和一列。 顶行和底行中每个元素的值应为每个对应列中元素的总和。 左右列中每个元素的值应为每个对应行中元素的总和。 左上角和右下角的元素值应为对角线上的元素之和 右上角和左下角的元素值应为反对角线中元素的总和。 例: A = 1 5 3 3 2 4 2 5 5 Output: 8 6 12 12 7 9 1 5 3 9 9 3 2 4 9 12 2 5 5 12 7 6 12 12 8 说明: 左上和右下元素是对角线1 + 2 + 5 …

16
创建金字塔矩阵
金字塔矩阵是一个正方形矩阵,其中所有数字都从中心点增加或减少,例如下面的两个矩阵: 1 1 1 1 1 1 2 2 2 1 1 2 3 2 1 1 2 2 2 1 1 1 1 1 1 要么: 3 3 3 3 3 3 2 2 2 3 3 2 1 2 3 3 2 2 2 3 3 3 3 …

19
迪克斯特拉的挑战
为纪念APL成为今年50岁的互动工具而颁发 背景 肯·艾弗森(Ken [Iverson])在1963年8月于新泽西州普林斯顿举行的机械语言结构工作会议上发表了他的论文《程序语言形式化》。(巴克斯,库里,迪克斯特拉,弗洛伊德,艾弗森,纽厄尔,玻璃市,威尔克斯)。该文件还记录了演讲后的讨论,最后在Ken和[Edsger] Dijkstra之间进行了交流,其中Ken对Dijkstra问题的答复是单线的。 挑战 您将如何表示一个更复杂的操作,例如,矩阵M中所有元素的总和等于相应的行索引和列索引的总和? 编写一个代码段或表达式(不需要完整的程序或函数)以计算给定整数矩阵中每个元素的总和,该整数等于其索引的总和。或者,如FryAmTheEggman所说:给定一个矩阵中号的元素一个 IJ返回每个的总和一个 IJ其中一个 IJ = I + J。 您可以假定矩阵已经在变量或存储位置中,或者可以将其用作参数或输入。您可以使用基于0或1的索引。 测试用例 0 用于空矩阵 2 0基于0的索引或2基于1的索引 1 5 2 9 4 2 5 9 6 2基于0或10基于1 0 3 0 4 0 4 1 4 4 3 1 2 -2 4 -2 -1 11 3 -1 …

22
重叠的字符串块
挑战: 给定多行字符串的列表,将它们重叠(在左上角)并输出结果。 例: 输入:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 输出: cbaa bbaa bbaa aaaa 挑战规则: 输入格式灵活。允许您以2D行列表(即[["aaaa","aaaa","aaaa","aaaa"],["bb","bb","bb"],["c"]])或3D字符列表(即)获得输入[[["a","a","a","a"],["a","a","a","a"],["a","a","a","a"],["a","a","a","a"]],[["b","b"],["b","b"],["b","b"]],[["c"]]]。您可以通过STDIN一对一地接受所有输入。等等。 输出格式严格。您可以选择打印或返回多行字符串。(如果您的语言没有任何字符串,则可以选择将其输出为2D字符列表。但前提是您的语言完全没有字符串。) 输入列表的顺序当然很重要(但是,如果选择这样做,则可以反向输入)。 输入将只包含在Unicode范围可打印ASCII [ 33 ,126 ][33,126][33,126](!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~)。 输入将仅是矩形(因此没有奇怪的形状)。不过,输出不是必需的矩形。 尾随空格和单个尾随换行符是允许的。前导空格和/或换行符不行。 一般规则: 这是代码高尔夫球,因此最短答案以字节为单位。 不要让代码高尔夫球语言阻止您发布使用非代码高尔夫球语言的答案。尝试针对“任何”编程语言提出尽可能简短的答案。 标准规则适用于具有默认I / O规则的答案,因此允许您使用STDIN / STDOUT,具有适当参数的函数/方法以及返回类型的完整程序。你的来电。 默认漏洞是禁止的。 如果可能的话,请添加一个带有测试代码的链接(即TIO)。 另外,强烈建议为您的答案添加说明。 测试用例: 输入:["aaaa\naaaa\naaaa\naaaa","bb\nbb\nbb","c"] 输出: cbaa bbaa bbaa aaaa 输入:["12345\n54321","00\n00\n00\n00","001\n011\n012"] 输出: 00145 01121 012 00 输入:["sm\noo\nmr\nee\nt!\nh_\ni_\nn_\ng_","!@#$%^\n&*()_+\nqwerty\nuiopas","this\nis_a\ntest"] 输出: this%^ is_a_+ testty uiopas …

23
ASCII艺术八边形
给定输入整数n > 1,输出边长由n字符组成的ASCII八角形。请参阅以下示例: n=2 ## # # # # ## n=3 ### # # # # # # # # # # ### n=4 #### # # # # # # # # # # # # # # # # #### n=5 ##### # # # # # # …
22 code-golf  ascii-art  code-golf  geometry  code-golf  balanced-string  code-golf  cops-and-robbers  code-challenge  cops-and-robbers  code-golf  code-golf  random  cryptography  code-golf  array-manipulation  number  code-challenge  integer  code-golf  math  integer  code-golf  math  math  parsing  image-processing  test-battery  math  number  combinatorics  fastest-code  code-golf  code-golf  math  number-theory  rational-numbers  polynomials  code-golf  math  geometry  code-golf  code-golf  number-theory  primes  factoring  code-golf  restricted-source  code-golf  string  decision-problem  counting  code-golf  math  sequence  fibonacci  code-golf  array-manipulation  counting  code-golf  array-manipulation  number-theory  code-golf  array-manipulation  code-golf  random  code-golf  string  hexadecimal  code-golf  string  code-challenge  sorting  code-golf  number  floating-point  code-golf  sorting  code-golf  decision-problem  fibonacci  code-golf  number  combinatorics  code-golf  string  code-golf  math  code-golf  electrical-engineering  code-golf  javascript  code-golf  base-conversion  code-golf  array-manipulation  matrix  binary-matrix  code-golf  kolmogorov-complexity  python  perl  ruby  code-golf  number  code-golf  optimization  integer-partitions  code-golf  string  code-golf  ascii-art 

16
找出3 x 3矩阵的逆矩阵
挑战 给定九个数字,a, b, c, d, e, f, g, h, i作为与平方矩阵相对应的输入: M=⎛⎝⎜adgbehcfi⎞⎠⎟M=(abcdefghi)\mathbf{M} = \begin{pmatrix}a& b& c\\ d& e& f\\ g& h& i\end{pmatrix} 求矩阵的逆M− 1M−1个\mathbf{M}^{-1}并输出其分量。 逆矩阵 矩阵3乘3的逆遵循以下方程式: M M− 1= M− 1M =我 = ⎛⎝⎜1个0001个0001个⎞⎠⎟中号中号-1个=中号-1个中号=一世=(1个0001个0001个)\mathbf{MM}^{-1} = \mathbf{M}^{-1}\mathbf{M} = \mathbf{I} = \begin{pmatrix}1&0&0\\0&1&0\\0&0&1\end{pmatrix} 可以计算为: 中号− 1= 1det (M)CŤ中号-1个=1个t(中号)CŤ\mathbf{M}^{-1} = \frac{1}{\det(\mathbf{M})}\mathbf{C}^T 其中是辅助因子的矩阵:CC\mathbf{C} C = ⎛⎝⎜e …

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.