Questions tagged «matrix»

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

3
有山环吗?
挑战 给定一个正整数矩阵,请确定山是否存在“环”。对此挑战的正式定义是:给定一个正整数矩阵,是否存在任何正整数,矩阵中n存在一个闭环,该闭环严格大于n以使环中包含的所有单元均小于或等于到n。 让我们举一个真实的例子: 3 4 5 3 3 1 2 3 4 2 1 3 4 3 6 5 如果我们设置n为2: 1 1 1 1 1 0 0 1 1 0 0 1 1 1 1 1 我们可以清楚地看到,1沿边缘的s形成一个环。 我们将环定义为单元的有序集合,其中集合中的相邻单元在网格上也相邻(边或角)。此外,该环内部必须至少包含1个单元;也就是说,尝试仅边沿BFS填充整个矩阵(不包括集合中的单元),并且从不遍历集合中的一个单元,则必须至少丢失一个单元。 真实的测试案例 4 7 6 5 8 -> 1 1 1 1 1 …

14
生成给定大小的所有平方子矩阵
您将得到一个整数M和另一个正整数n的方阵,严格小于M的大小。您的任务是生成大小为M的所有平方子矩阵 n。 出于此挑战的目的,正方形子矩阵是M中包含的一组相邻行和列。 输入/输出格式 您可以自由选择任何其他合理的格式,这些只是一些示例。 输入值 本机矩阵类型的矩阵(如果您的语言有一种) 2D数组(1D数组的数组,每个数组对应于一行/一列) 一维数组(因为矩阵始终为正方形) 字符串(您选择了空格,但请勿以任何方式滥用此字符串),等等。 输出量 矩阵矩阵。 4D数组,其中每个元素(3D列表)代表行/列上的子矩阵。 3D数组,其中每个元素(2D列表)代表一个子矩阵。 所得子矩阵的字符串表示形式,等等。 眼镜 您可以选择采取大小的中号输入了。保证至少为2。 输出的方向是任意的:您可以选择将子矩阵输出为列列表或行列表,但是选择必须一致。 您可以使用任何编程语言进行竞争,并且可以通过任何标准方法接受输入并提供输出,同时请注意,默认情况下,这些漏洞是禁止的。 这是代码高尔夫球,因此每种语言的最短提交(以字节为单位)将获胜。 例 给定n = 3和M: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 可能的3x3子矩阵为: + ------- + + -------- + 1 2 3 …

7
我的孩子的字母垫是否按颜色正确分组?
我的孩子有一个字母垫可以玩,就像这样: 经过数月的随机放置地垫瓷砖后,我累了,并根据其背景颜色按部分分组放置了所有地垫瓷砖。因此,如果字母代表背景色,我会得到一个像这样的垫子: AABBCDDDE ABBCCCDEE ABCCCCDDE AACCCDDEE AAAACCCCE AAAAAACCC 因此,对于颜色A,B,C,D和E,总有一种方法可以在垫子中水平或垂直连接具有相同背景颜色的所有图块。这就是我所说的按颜色正确分组的垫子。您可以在下表中看到上一个示例的组: AA A A AA AAAA AAAAAA BB BB B C CCC CCCC CCC CCCC CCC DDD D DD DD E EE E EE E 此外,每种颜色只有一组,因此这是无效的: ABA ABA 因为颜色A磁贴不仅仅分为一组。这也将无效,因为这些图块既不水平连接也不垂直连接: AB BA 挑战 给定一个可打印ASCII范围内的二维字符数组(只要两个维度的大小均等于或大于1,就不必是正方形),请检查该数组是否表示按颜色正确分组的垫子(数组中的每个字符都代表不同的颜色)。输入可以采用任何合理的格式,只要它表示二维字符数组(2D char数组,相同长度的字符串数组,依此类推),并且输出必须是一对真值和假值(0 / 1,'t'/'f',true / false,无论返回什么,并且返回值在输入中都保持一致)。 这是代码高尔夫,因此每种语言中最短的程序/函数/方法/ lambda可能会获胜! 例子 A …

11
案例匹配查找替换
以三个输入,文本串T; 一串要替换的字符F;以及用替换它们的字符串R。对于每个T具有相同(不区分大小写)字符的子字符串F,请将其替换为中的字符R。但是,请保持与原始文本相同的大小写。 如果输入的字符R多于个F,则多余的字符应与输入的大小写相同R。如果其中包含数字或符号F,则其中的相应字符R应保持其大小写R。F不一定会出现在中T。 您可以假设所有文本都在可打印的ASCII范围内。 例子 "Text input", "text", "test" -> "Test input" "tHiS Is a PiEcE oF tExT", "is", "abcde" -> "tHaBcde Abcde a PiEcE oF tExT" "The birch canoe slid on the smooth planks", "o", " OH MY " -> "The birch can OH MY e slid OH MY …
14 code-golf  string  code-golf  string  ascii-art  alphabet  code-golf  number  sequence  counting  code-golf  sequence  counting  code-golf  quine  source-layout  code-golf  string  code-golf  decision-problem  game  code-golf  string  quine  source-layout  subsequence  code-golf  quine  code-golf  array-manipulation  integer  code-golf  ascii-art  code-golf  sequence  integer  code-golf  kolmogorov-complexity  code-golf  array-manipulation  integer  code-golf  number  array-manipulation  integer  code-golf  string  number  integer  code-golf  string  ascii-art  code-challenge  test-battery  expression-building  source-layout  printable-ascii  code-bowling  code-golf  number  code-golf  number  string  binary  code-golf  matrix  conversion  code-golf  number  arithmetic 

23
计算矩阵向量
给定一个至少包含两个元素的整数数组,输出该数组的矩阵向量(定义如下)。 为了计算Matrix-Vector,首先旋转通过nsize - input数组以创建一个size的矩阵n x n,该数组的第一个元素位于主对角线之后。这形成矩阵部分。对于向量,垂直翻转输入数组。然后执行普通矩阵乘法。输出向量是结果。 例如, a = [1, 2, 3] 首先,将阵列向右旋转两次,以获得[3, 1, 2]和[2, 3, 1],然后将它们堆叠以形成3x3矩阵 [[1, 2, 3] [3, 1, 2] [2, 3, 1]] 接下来,垂直翻转数组以形成向量 [[1, 2, 3] [[1] [3, 1, 2] x [2] [2, 3, 1]] [3]] 执行通常的矩阵乘法 [[1, 2, 3] [[1] [[1+4+9] [[14] [3, 1, 2] …

9
列表和数组,各部分
在此挑战中,您将获得四个不同但有些相关的任务,必须以特定的方式解决它们。首先,我将解释任务,然后解释如何解决它。 您的代码在所有四个任务中都应使用两个正整数作为输入:n,m,其中n<m。所有任务必须以相同的语言解决。矩阵的方向是可选的(n×m可以解释为“ n行,m列”或“ n列,m行”)。 任务1: 创建(并输出/打印)由以下元素组成的矢量/列表:n, n+1 ... m-1, m。因此,对于n=4, m=9,您应该输出:4,5,6,7,8,9。 任务2: 创建(并输出/打印)矩阵/数组/列表列表(或等效列表),如下所示: n, n+1, ... m-1, m n+1, n+2, ... m-1, m+1 ... n+m, n+m+1, ... 2*m-1, 2*m 对于n=4, m=9您应该输出: 4, 5, 6, 7, 8, 9 5, 6, 7, 8, 9, 10 ... 13, 14, 15, 16, 17, 18 …


21
做矩阵乘法!
在数学中,矩阵乘法或矩阵乘积是一种从两个矩阵生成矩阵的二进制运算。该定义受矢量上的线性方程式和线性变换的启发,在应用数学,物理学和工程学中有许多应用。更详细地讲,如果A是n×m矩阵,而B是m×p矩阵,则它们的矩阵乘积AB是n×p矩阵,其中A行中的m个条目与m个条目在a处相乘。 B列并求和以产生AB条目。当两个线性变换由矩阵表示时,则矩阵乘积代表两个变换的组成。 资料来源:维基百科 换句话说,将两个矩阵相乘,例如: 1 2 3 1 4 2 3 4 × 3 1 = 3 4 5 4 6 首先,采取在第一矩阵的行号1,列号1中的第二矩阵,和乘法1通过1,2通过3,并3通过4。 1 × 1 = 1 2 × 3 = 6 3 × 4 = 12 现在将它们加在一起得到您的第一个项目: 1 2 3 1 4 19 2 3 4 × 3 1 …
14 code-golf  math  matrix 

6
二进制自转
给定一个二进制3D数组,对于每一层,按其上一层的各列的二进制编码所示,将其每一列循环向上旋转许多步,然后按如下所示将其每一行循环左旋转许多步下方图层的行的二进制编码。 总会有至少三层。顶层的列和底层的行不应旋转。 演练 让我们从小的4层2行3列数组开始: [[[1,0,1], [1,0,0]], [[1,0,1], [0,1,1]], [[0,1,1], [1,1,1]], [[1,1,0], [1,1,1]]] 第一步是评估每一层的列和行以二进制编码的数字: 3 0 2 5 [[[1,0,1], 4 [1,0,0]], 2 1 3 5 [[1,0,1], 3 [0,1,1]], 1 3 3 3 [[0,1,1], 7 [1,1,1]], 3 3 1 6 [[1,1,0], 7 [1,1,1]]] 第一层[[1,0,1],[1,0,0]]不会旋转其列,但其行将分别向左循环5步和3步,从而变为[[1,1,0],[1,0,0]]。 第二层[[1,0,1],[0,1,1]]的列将分别循环向上旋转3、0和2步,给出[[0,0,1],[1,1,1]],然后将行分别向左循环旋转3和7步,没有可见变化。向上旋转2、1、3步 的第三层[[0,1,1],[1,1,1]]保持不变,向左旋转6、7步也没有任何作用。 最后,[[1,1,0],[1,1,1]]向上旋转了1、3和3步的第四层是[[1,1,1],[1,1,0]],但是之后的行不再旋转,因为它是最后一层。 再次将所有图层放在一起,便得到了二进制自旋转3D数组: [[[1,1,0], [1,0,0]], [[0,0,1], [1,1,1]], …

16
修剪那些分散注意力的背景!
拍照时会很烦人,但背景会损害图像的实际内容吗?我会说是的。我需要知道应该种植多少,这样我才能摆脱这个问题!但是-像往常一样-我很懒,所以我需要有人替我做... 任务与规则 给定一个表示图像的二进制矩阵,输出包含原始矩阵中所有111 s 的最小子矩阵的尺寸(宽度和高度)。甲子矩阵是从原始的矩阵相邻条目的块。等效地,它是通过重叠原始行的相邻行的子集和相邻列的子集而形成的新矩阵。 也可以将矩阵的宽度和高度作为输入。 该输入保证至少包含一个111。 您可以通过任何标准方法进行输入并提供输出,同时请注意,默认情况下,这些漏洞是禁止的。这是代码高尔夫,因此请尝试以您选择的语言可以管理的最少字节来完成任务。 例 ⎡⎣⎢⎢⎢⎢⎢⎢000000110000110010000011000100⎤⎦⎥⎥⎥⎥⎥⎥⟶⎡⎣⎢110011100011010⎤⎦⎥⟶(5,3)[000000010100011011001010000000]⟶[101001101101010]⟶(5,3)\left[\begin{matrix} \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\\ \color{red}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}0\\ \color{red}0&\color{blue}1&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}1\\ \color{red}0&\color{blue}0&\color{blue}1&\color{blue}0&\color{blue}1&\color{blue}0\\ \color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0&\color{red}0\end{matrix}\right] \longrightarrow \left[\begin{matrix}1&0&1&0&0\\1&1&0&1&1\\0&1&0&1&0\end{matrix}\right]\longrightarrow(5,3) 测试用例 输入| 输出量 [[0,1,0,0,0,1,0]] ->(5,1)或(1,5) [[0,0,0,0,0],[0,1,0,1,0],[0,0,1,0,0]] ->(3,2)或(2,3) [[1,1,1,1],[0,0,0,0],[0,0,0,0],[1,0,0,0]] ->(4,4) [[0,0,0,0,0,0],[0,1,0,1,0,1],[0,0,0,0,0,0]] ->(5,1)或(1,5) [[0,0,0,0,0],[0,1,0,1,0],[0,0,1,0,0],[0,1,0,1,0],[ 0,0,0,0,0]] ->(3,3) [[0,0,0,0,0,0],[0,1,0,1,0,0],[0,1,1,0,1,1],[0,0,1, 0,1,0],[0,0,0,0,0,0]] ->(5,3)或(3,5)

15
手动逻辑门
编写一个模拟基本逻辑门的程序。 输入:一个全大写单词,后跟2个1位二进制数字,以空格分隔,例如OR 1 0。门OR,AND,NOR,NAND,XOR,和XNOR需要。 输出:输入的逻辑门的输出将被赋予两个数字:1或0。 例子: AND 1 0成为0 XOR 0 1变得1 OR 1 1成为1 NAND 1 1成为0 这是codegolf,所以最短的代码获胜。
13 code-golf  logic-gates  hashing  code-golf  code-golf  number  array-manipulation  integer  code-golf  string  unicode  text-processing  cops-and-robbers  boggle  cops-and-robbers  boggle  code-golf  ascii-art  code-golf  word-puzzle  king-of-the-hill  python  code-golf  sequence  kolmogorov-complexity  code-golf  source-layout  code-golf  string  kolmogorov-complexity  math  number  code-golf  date  code-golf  combinatorics  recursion  game  king-of-the-hill  javascript  code-golf  array-manipulation  code-golf  radiation-hardening  self-referential  code-golf  integer  code-golf  number  code-golf  set-theory  code-golf  sequence  code-golf  string  sorting  natural-language  code-golf  decision-problem  number-theory  primes  code-golf  code-golf  ascii-art  code-challenge  array-manipulation  sorting  rubiks-cube  regular-expression  code-golf  counting  file-system  recursion  code-golf  string  kolmogorov-complexity  color  code-golf  game  code-challenge  permutations  encode  restricted-time  decode  code-golf  math  decision-problem  matrix  integer  palindrome  code-golf  matrix  statistics  king-of-the-hill  king-of-the-hill  python  card-games  code-golf  string  natural-language  code-golf  sequence  number-theory 

20
计算最佳平方矩阵
的最佳矩阵(对于这一挑战的相当窄的范围)是通过获得“拉上”从正方形矩阵和获得最大的每一对中的所述对应的行和列中的元素。 例如,给定以下矩阵: 4 5 6 1 7 2 7 3 0 您可以将其与其转置组合以得到:[[[4,5,6],[4,1,7]],[[1,7,2],[5,7,3]],[[7,3,0],[6,2,0]]]。如果压缩每对列表,则会获得以下信息:[[(4,4),(5,1),(6,7)],[(1,5),(7,7),(2,3)],[(7,6),(3,2),(0,0)]]。最后一步是获取每对中的最大值以获取最佳矩阵: 4 5 7 5 7 3 7 3 0 您的任务是输出作为输入给出的方阵的最佳矩阵。矩阵将仅包含整数。I / O可以采用任何合理的格式进行。以字节为单位的最短代码(采用UTF-8或该语言的自定义编码)获胜! 测验 [[172,29],[29,0]]-> [[172,29],[29,0]] [[4,5,6],[1,7,2],[7,3,0]]-> [[4,5,7],[5,7,3],[7,3,0 ]] [[1,2,3],[1,2,3],[1,2,3]]-> [[1,2,3],[2,2,3],[3,3,3 ]] [[4,5,-6],[0,8,-12],[-2,2,4]]-> [[4,5,-2],[5,8,2],[- 2,2,4]]

9
特征多项式
方阵A的特征多项式定义为多项式p A(x)= det(I x- A),其中I是单位矩阵,而det是行列式。请注意,此定义始终为我们提供单项多项式,以使解决方案唯一。 解决此难题的任务是为整数矩阵计算特征多项式的系数,为此,您可以使用内置函数,但是不建议使用。 规则 输入是任何方便格式的NxN(N≥1)个整数矩阵 您的程序/函数将以升序或降序输出/返回系数(请指定哪个) 对系数进行归一化,使得x N的系数为1(请参见测试用例) 您不需要处理无效的输入 测试用例 系数以降序给出(即x N,x N-1,...,x 2,x,1): [0] -> [1 0] [1] -> [1 -1] [1 1; 0 1] -> [1 -2 1] [80 80; 57 71] -> [1 -151 1120] [1 2 0; 2 -3 5; 0 1 1] …

5
折叠矩阵!
给定一个矩阵,向上/向下或向左/向右累加其值以形成一个X,向上折叠,然后返回列表。我在这里描述算法: 算法 您的输入将是您语言的合理数值范围内的整数的奇数方阵。 让我们以下面的矩阵为例: 1 2 3 2 1 0 3 2 3 0 4 2 5 6 3 7 4 7 9 4 0 6 7 2 5 首先,将每个数字加到主对角线或反对角线上最接近的数字。也就是说,将矩阵沿主对角线和反对角线分为四个部分,然后将每个部分中朝向中心的所有数字相加,如下所示: 1 2 3 2 1 ↓ ↓ ↓ 0 → 3 2 3 ← 0 ↓ 4 → 2 → …
13 code-golf  matrix 

8
最小出租车距离图
挑战说明 在出租车度量中,两点之间的距离定义为: 考虑一个只有零和一的矩阵: 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 1 0 0 1 0 1 0 0 0 0 让我们每个映射1到到最接近的距离不同 1的矩阵(当然,假设相邻两行/列之间的距离等于1): 0 0 0 3 0 2 0 0 0 0 0 0 0 0 0 1 0 0 3 0 …

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.