首个小程序第三方插件平台开放!免费制作小程序功能再次升级!
788
2022-08-27
Latin方及Hadamard矩阵
Latin方:N个元素在N*N的矩阵中每一行每一列仅仅出现一次。
普通Latin方的构造:
int g[105][105];void paint(int n){ for(int i=1;i<=n;i++){ g[1][i]=i; } for(int i=2;i<=n;i++){ for(int j=n;j>1;j--){ g[i][j]=g[i-1][j-1]; } g[i][1]=g[i-1][n]; }}
正交拉丁方:
设
,
是两个N阶拉丁方。同一位置上的数字配对后,有序数对全部互异。那么AB正交。
1,2,6阶的拉丁方是没有正交的。
4阶正交阵:
(4.1)(3.3)(2.4)(1.2)
(2.2)(1.4)(4.3)(3.1)
(1.3)(2.1)(3.2)(4.4)
(3.4)(4.2)(1.1)(2.3)
如果,n>=3,n=pa,p是一个素数,a是一个正整数,那么有n-1个正交的拉丁方。
构造:
第i个矩阵:
void paint(int n){ for(int i=1;i<=n-1;i++){ cout<<"matrix: "<n) first-=n; // 避免n变成0 for(int j=first;j<=n;j++) cout< ,且所有的元素是1或者-1,那么H即是hadamard矩阵。 它的性质(我暂时听说有这三条): Hn为正交方阵,所谓正交矩阵指它的任意两行(或两列)都是正交的; 任意一行(列)的所有元素的平方和等于方阵的阶数; Hadamard矩阵的阶数都是2或者是4的倍数。 递归方法构造(2阶H原始矩阵在1区): 3区 | 4区 ------------ 1区 | 2区 (我表示这种构造方法我看的似懂非懂~) #include
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~