生成块中的强对称矩阵

问题描述 投票:0回答:1

关于如何高效地生成固定大小的任意numpy数组(n,m)的想法,其中所有行都是彼此置换,所有列都是彼此置换(即强对称)?

python numpy matrix permutation symmetric
1个回答
0
投票

这是生成某些此类数组的一种方法。令anm的最大公约数。

  1. [通过a块将整个数组分割为a
  2. 在每个块上,生成一个拉丁正方形(请参见this问题以进行讨论)
  3. 随机排列数组的行和列
  4. 如果需要,请执行符号替换。也就是说,如果a为3,则可能会将网格中的所有3都变成2。

我不确定该方法是否可以生成所有可能的网格,但是应该可以生成许多网格。步骤1和步骤2完成后,您将获得一个有效的数组,其余步骤只会增加随机性。

当然,生成这种数组的最简单方法就是将其全部填充为1,但这不是您要的内容。

© www.soinside.com 2019 - 2024. All rights reserved.