自己写的代码如下
k=1
m=48;
n=16;
m_limit=[8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8;8];
n_grade=[31 4 4 12 4 48 12 4 12 4 12 12 4 4 12 48];
while (k<=50)
x=round(rand(m,n));
x([32:48],1)=0;
x([32:48],[2:5])=0;
x([1:31],1)=1;
x([1:48],6)=1;
x([1:48],16)=1;
if sum(x)<=8 & sum(x,2)>=[31 4 4 12 4 48 12 4 12 4 12 12 4 4 12 48]
a=x;
k=k+1;
end
end
a
length(find(a==1))
运行结果如图,仅输出k=1,无其他结果