NxN大小的Hadamard矩阵的存在性

时间:2015-09-10 21:56:29

标签: algorithm math matrix

给定整数N,其中N <= 100。是否存在大小为NxN的Hadamard矩阵,例如:

  • 矩阵的每个元素都是1或-1。
  • 任意两行的相应元素的乘积之和为零,即对于任何a&lt; = N且b <= NM [a] [1] * M [b] [1] + M [a] [ 2] * M [b] [2] ... M [a] [n] * M [b] [n] = 0(考虑基于1的索引)。

我做了什么:

我尝试过蛮力解决方案。每个元素可以是1或-1。因此,最多可以有2个(n 2 矩阵。我试过检查所有这些矩阵,但算法太慢了。 O(n 2 *(2 (n 2 )实际上。我的电脑没有显示n = 5的任何输出,我不得不终止程序。

有人能建议更好的方法来解决这个问题吗?

编辑:您不仅要回答是或否,还要枚举一个这样的矩阵。显然,当N为奇数时,答案是不可能的。 N = 1是一个简单的案例,答案为1或-1。

1 个答案:

答案 0 :(得分:1)

正如评论所指出的那样,具有所述属性的矩阵称为 Haramard矩阵。在这些Wikipedia writes上:

  

Hadamard矩阵的阶数必须是1,2或4的倍数。

     

[...]

     

Hadamard猜想提出对于每个正整数 k

存在4阶 k 的Hadamard矩阵

     

[...]

     

截至2008年,有13个倍数小于或等于2000,其中没有该序列的Hadamard矩阵。 [8] 它们是:668,716 ,892,1004,1132,1244,1388,1436,1676,1772,1916,1948和1964。

由于您的问题显示 N ≤100,因此判断此类矩阵是否存在的算法很简单:测试N==1 || N==2 || (N%4)==0

当然,这并没有告诉你如何生成这样的矩阵。阅读更多维基百科建议您可以将Sylvester's construction N = 2 k Payley's construction合并为 N = q + 1其中 q = p k prime p q ≡3(mod 4)(确保 N 是4的倍数。)

N ≤100的范围内,这些算法都不起作用的唯一 N N = 92.所以你要么还为此特定情况添加Williamson's construction或硬编码矩阵。

Searching我发现Eric Tressler's Survey of the Hardamard Conjecture的构造方法的名称描述了构造算法,并且还包含一个表格,用于分析Sylvester或Payley的构造中的数字到目前为止尽可能。评论还提到Sloane's Library of Hadamard Matrices,其中包含通过不同方法获得的实际矩阵的链接。如果要对其进行硬编码,可以将其用作 N = 92案例的来源。