基数=3;(*基数3表示矩阵项{-1,0,1},基数2表示{-1,1}*)
解码=哪个[base==2,0->-1,base==3,{0->-1、1->0,2->1}];
M[n_,k_]:=模块[{row0,row},row0=PadLeft[IntegerDigits[k,base],2n-1]/。解码;行[i_]:=向左旋转[row0,i][[1;;n]];数组[行,n]];
a[n_]:=模块[{m0,d0,m,d,kmax},{m0、d0}={{},-无限};kmax=base^(2n-1);打印[“n=”,n,“kmax=”,kmax];Do[m=m[n,k];d=探测[m];如果[d>d0,打印[“k=”,k,“det=”,d];{m0,d0}={m,d}],{k,0,kmax}];打印[“m0=”,m0//矩阵形式,“a(”,n,“)=”,d0];d0];