Questions tagged «matrix»

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

8
通过矩阵的最佳路径
给定一个由正整数组成的矩阵,当从左上角元素到右下角遍历时,输出总和最小的路径。您可以垂直,水平和对角移动。请注意,可以上下左右移动,也可以左右移动。 例: 1* 9 7 3 10 2 2 10 4* 1* 1* 1* 7 8 3 6 3 8 9 5* 7 8 10 2 5 2 1* 4 5 1 1 3 6 7 9* 给出最低总和的路径标有星号,并得出以下总和:1 + 4 + 1 + 1 + 1 + 5 + 1 …

20
对角线求和
以正整数矩阵为输入,并通过矩阵输出对角线上的元素的各个和。 您只能计算对角线向下和向右的线。您必须从仅包含左下角元素的对角线开始,然后从其上方的长度为2的对角线开始(如果存在),依此类推,直到仅包含右上角元素的对角线,如下所示。 例: Input: 8 14 5 1 10 5 5 8 6 6 8 10 15 15 4 11 Output: 15, 21, 20, 32, 29, 13, 1 (Diagonals: {{15},{6,15},{10,6,4},{8,5,8,11},{14,5,10},{5,8},{1}}) Input: 1 Output: 1 Input: 1 5 Output: 1, 5 Input: 4 1 Output: 1, 4 Input: 17 4 5 …
19 code-golf  math  matrix 

5
是否有更多的硬物或软物
与假设分析书的开头相切。 输入是一个由空格组成的矩形,如字符串,字符串列表等,其对象由#内部组成: ######## # # ######## ### #### ### #### ### 对象将始终是非相交,非接触的矩形。软对象的定义是#中间没有用填充的对象,而只是边界,而硬对象则是填充的对象。具有宽度或高度的对象<=2被认为是坚硬的。所有对象都是硬的或软的。 如果输入,输出中有更多的硬对象"Hard",如果较软,则输出"Soft",如果相等则输出"Equal"。 这是代码高尔夫球,因此以字节为单位的最短代码胜出! 测试用例 这些情况不是全部输入,而是每个对象应表征的内容。实际输入将类似于问题顶部的ascii艺术。 硬 # #### ## ## ########## ########## ########## 柔软的 ### # # ### ################### # # # # # # ################### #### # # # # # # # # # # # # …
19 code-golf  ascii-art  counting  code-golf  number  grid  decision-problem  chess  code-golf  grid  graph-theory  chess  code-golf  math  geometry  code-golf  arithmetic  roman-numerals  fastest-code  code-golf  math  geometry  code-golf  string  cryptography  code-golf  number  sequence  decision-problem  code-golf  string  parsing  c  code-golf  sorting  integer  code-golf  number  sequence  rational-numbers  graphical-output  atomic-code-golf  assembly  box-256  code-golf  geometry  tips  python  code-golf  number  sequence  arithmetic  number-theory  code-golf  ascii-art  kolmogorov-complexity  geometry  code-golf  graphical-output  code-golf  math  code-golf  grid  cellular-automata  game-of-life  code-golf  string  subsequence  code-golf  arithmetic  rational-numbers  code-golf  tips  dc  code-golf  ascii-art  kolmogorov-complexity  date  code-golf  string  primes  code-golf  string  natural-language  conversion  code-golf  sequence  code-golf  number-theory  primes  base-conversion  code-golf  math  primes  base-conversion  code-golf  ascii-art  fractal  code-golf  matrix  code-golf  math  tips  geometry  python  string  code-challenge  keyboard  code-golf  graphical-output  code-golf  string  code-golf  number  sequence  cops-and-robbers  number  sequence  cops-and-robbers 

7
希尔伯特-求矩阵
受启发 问题 将2D图像展开为1D字符串的另一种方法是使用 希尔伯特曲线。 该曲线有很多版本,具体取决于计算时使用的迭代次数。下面是从一阶到五阶的希尔伯特曲线示例。 计算该曲线的方法如下。首先,我们将一阶希尔伯特曲线定义为图中所示的那条曲线(n = 1的曲线),以使其适合1x1的正方形。然后,我们制作该曲线的四个副本,将它们间隔为4x4正方形,以便它们都向左侧呈现“凹面”。然后,我们翻转两条最左侧的1曲线,以使顶部的一个凹面朝向顶部,而底部的凹面朝向底部。最后,我们连接相邻的希尔伯特曲线的角。如果要获得(n + 1)阶曲线,我们只需要对四个n阶曲线重复该过程即可。我们可以在此处看到该过程的可视化(我还将添加一张详细描述该过程的图像) 您在此挑战中的任务是沿着该矩阵的最低阶希尔伯特曲线展开整数矩阵。 为简单起见,我们将从矩阵的左上角开始绘制曲线。 您可以将输入作为整数列表的列表来接收,其中每个子列表代表矩阵的一行。 您可以假定输入将是一个方矩阵(n * n)。 例如: 输入: [[ 1, 2,] [ 3, 4 ]] 输出: [ 1, 2, 4, 3 ] 由于我们使用的是如图所示的一阶希尔伯特曲线 输入: [[ 1, 2, 3, 4, ] [ 5, 6, 7, 8, ] [ 9, 10, 11, …

11
最大化平方差
考虑从1到的整数值的置换N。例如此示例N = 4: [1, 3, 4, 2] 我们将认为此列表是循环的,因此1和2被视为相邻列表。我们可以为这样的列表计算的一个量是相邻值的总平方差: (1-3)² + (3-4)² + (4-2)² + (2-1)² = 10 给定正整数,您的任务是找到一个最大化此数量的排列N。在N = 4上面的例子中不是最佳的(实际上,这是最小的)。18通过以下排列(以及其他几个排列),我们可以实现的总平方差: [1, 4, 2, 3] 您的算法必须在(的N)多项式时间内运行。特别是,您不能简单地计算所有排列的总平方差。 您可以编写程序或函数,通过STDIN(或最接近的替代方案),命令行自变量或函数自变量获取输入,并通过STDOUT(或最接近的替代方案),函数返回值或函数(out)参数输出结果。 输出可以采用任何方便,明确,平坦的列表或字符串格式。您可以选择从与返回值的列表0,以N-1代替1向N。 适用标准代码高尔夫球规则。 测试数据 这个问题有一个很好的分析解决方案。例如,所有有效的解决方案N = 10均等效于以下列表(直至循环移位和反转): [7, 5, 6, 4, 8, 2, 10, 1, 9, 3] 我不想透露过多的信息(尽管足以找出模式),因此无需给出更多示例,您可以检查您的结果是否具有给定的总平方差N: N Total squared difference 1 0 2 …
19 code-golf  array-manipulation  permutations  restricted-complexity  code-golf  geometry  grid  code-golf  string  sorting  code-golf  simulation  code-golf  string  code-golf  arithmetic  code-golf  sorting  code-golf  string  code-golf  sorting  code-golf  interpreter  code-golf  number  kolmogorov-complexity  natural-language  conversion  code-golf  random  internet  code-golf  board-game  code-golf  number  sequence  code-golf  math  number  code-challenge  image-processing  classification  test-battery  code-golf  ascii-art  code-golf  tips  code-golf  arithmetic  code-golf  tips  code-golf  tips  javascript  code-golf  array-manipulation  code-golf  ascii-art  code-golf  string  binary  code-golf  arithmetic  linear-algebra  matrix  code-golf  sequence  code-golf  math  number  arithmetic  code-golf  primes  code-golf  math  code-golf  array-manipulation  counting  code-golf  arithmetic  code-golf  quine  code-generation  polyglot  code-golf  math  kolmogorov-complexity  trigonometry  code-golf  string  encryption 

14
平方随机对称
挑战 编写返回或打印平方随机对称矩阵的程序或函数。 输入值 N:矩阵的大小,即6 x 6 输出量 矩阵。您可以打印它,将其作为字符串(带有换行符)或作为列表/数组的列表/数组返回。 规则 您需要至少使用N不同的字符,其中N是方阵(输入)的大小。由于我们仅使用字母[a,z] [A,Z]和数字[0,9](当时仅使用1个数字),因此可以假定N < 27and N > 2,这是因为在那时N <= 2您不能同时拥有两个字母和数字。最后但并非最不重要的一点是,每个字母/数字的发生概率都必须为非零(不必均匀分配)。但是,结果必须至少具有N不同的字母/数字。 矩阵必须水平和垂直对称。 恰好2行2列必须严格包含一个个位数(它的位置也应该是随机的)。其余的行/列将仅包含字母。将字母视为[a,z]和[A,Z],当然将一位数字视为[0,9]。 只是要更容易,你可以假设信件的情况下无所谓,只要案件是对称的意思是:a=A, b=B, etc。 每个可能的输出都必须具有非零的发生概率。随机分布不需要是统一的。 例 输入 8 输出: c r p s s p r c r k o z z o k r u t 2 a a 2 …
18 code-golf  matrix 

20
折叠矩阵
相关:让我们设计一个数字马赛克,打印/输出L-phabet。沙盒发布在这里 给定2个输入,C = columns and rows, S = starting point输出矩阵如下: Input 4, 3 1 2 3 0 2 2 3 0 3 3 3 0 0 0 0 0 说明 给定 C = 4, S = 3 1)创建一个C x C填充有0 4 columns 4 _____|____ | | r --0 0 0 …
18 code-golf  matrix 

2
这是一个韦尔矩阵吗?
有一种n × n矩阵W,称为基本Weyr规范形式。使用以下参考图,此类矩阵由其框描述,并具有以下属性: 主对角线块W¯¯ II是Ñ 我 ×n个我矩阵形式的λ 我Ñ 我其中我Ñ 我是Ñ 我 ×n的我单位矩阵。 Ñ 1 ≥Ñ 2 ≥...≥Ñ ř 第一superdiagonal块w ^ K-1,K为ķ∈2..r是Ñ K-1 ×n个ķ矩阵是行还原梯形形式列满秩,或更简单地说,我Ñ ķ坐在的顶部n k-1 -n k行零。 所有其他块均为0矩阵。 例如: 主对角线块(黄色)使得n i为4、2、2和1。 第一个超对角线块为绿色。 灰色区域由所有其他块组成,都为0。 对于这一挑战,我们将假设λ= 1。 输入值 任何方便格式的0和1的方阵。 输出量 对于输入矩阵是否为Weyr,输出两个不同的值之一。 规则 这是代码高尔夫球。每种语言中的最低字节获胜。适用标准规则/漏洞。 测试用例 表示为行数组。 韦尔: [[1]] [[1,1],[0,1]] [[1,0,1,0,0],[0,1,0,1,0],[0,0,1,0,1],[0,0,0,1,0],[0,0,0,0,1]] [[1,0,0,1,0,0,0,0,0],[0,1,0,0,1,0,0,0,0],[0,0,1,0,0,1,0,0,0],[0,0,0,1,0,0,1,0,0],[0,0,0,0,1,0,0,1,0],[0,0,0,0,0,1,0,0,1],[0,0,0,0,0,0,1,0,0],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] [[1,0,0,0,1,0,0,0,0],[0,1,0,0,0,1,0,0,0],[0,0,1,0,0,0,0,0,0],[0,0,0,1,0,0,0,0,0],[0,0,0,0,1,0,1,0,0],[0,0,0,0,0,1,0,1,0],[0,0,0,0,0,0,1,0,1],[0,0,0,0,0,0,0,1,0],[0,0,0,0,0,0,0,0,1]] 非韦尔: …

10
最小排序列表到矩阵
给定唯一的正整数的未排序列表,请将其最小排序为2D矩阵。输入列表被保证是复合长度,这意味着在输出矩阵不一定是正方形的,但是大小n x m与n,m > 1。 “最小排序”在此表示以下含义: 按升序对列表进行排序。 尽可能压缩输出矩阵-最小化矩阵尺寸的总和(例如,对于20输入元素作为输入,需要a 5x4或4x5输出矩阵,而不是a 2x10)。 从排序列表中的第一个元素开始,将排序的数字尽量压缩到矩阵的左上角。 可以将其视为对列表进行排序,然后将其沿矩阵的对角线(从左上角开始)进行切片。 例子: 对于输入,1..20输出为5x4或4x5矩阵,如下所示: 1 2 4 7 11 3 5 8 12 15 6 9 13 16 18 10 14 17 19 20 1 2 4 7 3 5 8 11 6 9 12 15 10 13 16 18 …

19
在所有n列中具有1到L(n)的矩阵
挑战: 取一个列表,L包含正整数作为输入: 3 5 2 1 6 并创建一个矩阵,其中第n列包含矢量1:L(n),其中较短的行用零填充。 测试用例: 3 5 2 1 6 ----------------- 1 1 1 1 1 2 2 2 0 2 3 3 0 0 3 0 4 0 0 4 0 5 0 0 5 0 0 0 0 6 1 - 1 1 2 …
18 code-golf  matrix 

28
范围内的矩阵
挑战 给定一个整数n>0输出,n+1 X n+1矩阵包含所有从1to的整数,2n如下面的测试用例所示 测试用例 n=1 1 2 2 2 n=2 1 2 4 2 3 4 4 4 4 n=5 1 2 3 4 5 10 2 3 4 5 6 10 3 4 5 6 7 10 4 5 6 7 8 10 5 6 7 8 9 …

21
输出我的对角线位置的平方
给定一个数字n,输出一个落在n*n方矩阵的对角线上的从1开始的索引的有序列表。 例: 输入以下内容3: 正方形应为: 1 2 3 4 5 6 7 8 9 现在,我们选择所有所代表的指数\,/或X(#或者非对角线位置被拒绝) \ # / # X # / # \ 输出应为: [1,3,5,7,9] 测试用例: 1=>[1] 2=>[1,2,3,4] 3=>[1,3,5,7,9] 4=>[1,4,6,7,10,11,13,16] 5=>[1,5,7,9,13,17,19,21,25] 没有可接受的答案。我想知道每种语言的最短代码。
18 code-golf  math  matrix 

11
压缩稀疏矩阵
使用压缩的稀疏行(CSR,CRS或Yale格式)压缩稀疏矩阵。 这些都是相同的压缩形式(忽略新耶鲁)。 输入可以是任何二维数据结构(列表列表等):例如 [[0 0 0 0], [5 8 0 0], [0 0 3 0], [0 6 0 0]] 和输出应该有三个1D的数据结构(列表等),即表示输出A,IA和JA,例如 [5, 8, 3, 6] [0, 0, 2, 3, 4] [0, 1, 2, 1,] 维基百科描述了该过程: 数组A的长度为NNZ,并按从左到右的顺序从上到下(“行优先”)保存M的所有非零条目。 数组IA的长度为m +1。它由以下递归定义定义: IA [0] = 0 IA [i] = IA [i-1] +(原始矩阵第(i-1)行中非零元素的数量) 因此,IA的前m个元素将索引存储在M的每一行中的第一个非零元素的A中,而最后一个元素IA [m]存储NNZ,即A中的元素数,也可以认为是幻像行的第一个元素的A中的索引刚好在矩阵M的末尾。从元素A [IA …

2
魔术可能吗?
甲幻方是一个正乘n正方形网格,在范围填充有不同的正整数1,2,...,N ^ 2,使得每个单元包含每个行中的不同的整数和整数的和,列和对角线相等。 您的任务是获取由正数和空单元格的占位符组成的n × n矩阵(我将使用 0,但您可以使用任何喜欢的非数字字符或数据类型),并确定是否为填写遗漏的数字可以制作一个魔术方块 矩阵将至少为2×2,最多为10×10。最小的非平凡的幻方是3×3。输入矩阵中的数字可能大于n ^ 2,并且所有单元格都有可能被填充。 测试用例: 2 2 2 0 False 8 0 6 0 5 0 0 9 2 True 16 2 3 13 5 11 10 8 9 7 6 12 4 14 15 1 True 10 0 1 0 5 9 3 …

5
约旦分解
重要说明:因为此挑战仅适用于平方矩阵,所以每当我使用术语“矩阵”时,都假设我是指平方矩阵。为了简洁起见,我将省略“方形”描述。 背景 通过使用相似的对角矩阵(一个不在主对角线上的元素为0的元素),可以简化许多与矩阵相关的操作,例如计算行列式,求解线性系统或将标量值函数扩展到矩阵。到原始矩阵(意味着,对于输入矩阵A和对角线矩阵D,存在一些可逆矩阵P,使得D = P^(-1) * A * P;另外,D和A共享一些重要性质,如本征值,决定因素,而迹线)。对于具有不同特征值的矩阵(矩阵的特征多项式的根,通过求解det(A-λI) = 0给出λ,其中I是与相同维的恒等式A),对角化很简单:D是一个矩阵,其特征值在主对角线上,并且P是一个由对应于这些特征值的特征向量组成的矩阵(顺序相同)。这个过程称为本征分解。 但是,具有重复特征值的矩阵不能以这种方式对角线化。幸运的是,任何矩阵的约旦范式都可以很容易地计算出来,并且比常规的对角矩阵难得多。它还具有很好的特性,如果特征值是唯一的,则Jordan分解与特征分解相同。 约旦分解解释 对于A特征值均具有1的几何多重性的方阵,约旦分解的过程可描述如下: 令λ = {λ_1, λ_2, ... λ_n}为A具有多重性的特征值列表,其中重复的特征值连续出现。 创建一个对角矩阵,J其元素是的元素λ,顺序相同。 对于每个多重性大于1 1的特征值,将特征值的每个重复项的右边放在a 的主对角线上J,最后一个除外。 所得矩阵J是的约旦范式A(对于给定矩阵,可以有多个约旦范式,具体取决于特征值的顺序)。 一个可行的例子 设A以下矩阵: A具有多重性的特征值是λ = {1, 2, 4, 4}。通过将它们放入对角矩阵,我们得到以下结果: 接下来,将1s 放在每个重复特征值中的一个之外的所有右边。由于4是唯一重复的特征值,因此我们1在前四个值旁边放置一个: 这是Jordan的正常形式A(单个矩阵可能具有几种有效的Jordan正常形式,但是出于解释的目的,我将详细介绍该细节)。 任务 给定方阵A作为输入,输出有效的Jordan范式A。 输入和输出可以采用任何合理的格式(2D数组/列表/任何形式,列表/阵列/任何列或行向量,内置矩阵数据类型等)。 的元素和特征值A将始终是范围内的整数[-200, 200]。 为了简单起见,所有的特征值将具有1的几何多重性(因此上述过程成立)。 A 最多为10x10矩阵,至少为2x2矩阵。 不允许使用计算特征值和/或特征向量或执行特征分解,Jordan分解或任何其他类型的分解/对角化的内建函数。允许矩阵算术,矩阵求逆和其他矩阵内置函数。 测试用例 [[1, 0], [0, 1]] …

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.