⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 search_queen.m

📁 gen_H:利用随机pi矩阵排列而成的LDPC稀疏校验矩阵产生; girthlenth:计算产生的矩阵H的围长
💻 M
字号:
function Y=search_queen(n)
%皇后算法,n必须为奇数,不然不能用该算法;(对角线约束太强了,很多时候是无解的,所以不要对角线约束)
%这样约束条件为:同一行同一列只能有一个为1;
M=zeros(n,n);M1=ones(n,n); xi=zeros(1,n);
% flag=true;
% while(flag)
 for i=1:n
       count=sum(M1(i,:));     %count the remaining number of places where 1 can be placed;
       xi=randerr(1,count);
       for index=1:count              % find where 1 is (index) in this row vector(Length=count but not n); 
          if xi(index)==1
            break;
          end
       end
       xi=zeros(1,n); count1=0;
       for l=1:n
           if M1(i,l)==1  
               count1=count1+1;
               if count1==index
                 xi(l)=1; break;
               end
           end
       end
       M(i,:)=xi;
       index=l;
       
      M1(i+1:n,index)=zeros(n-i,1);
%       for k=i+1:n
%           if index+k-i<=n & index+k-i>=1 
%               M1(k,index+k-i)=0;
%           end
%           if index-k+i<=n & index-k+i>=1 
%               M1(k,index-k+i)=0;
%           end
%           
%           if (index+k-i<1 | index+k-i>n) & (index-k+i<1 | index-k+i>n)
%               break;
%           end
%       end
 end
 
%  if count==0
%      disp('sorry , not find a suitable random pi matric this time! ');
%  else
%      if i==n
          Y=M;
%          flag=false;
%          disp('Congratulations! You make it!');
%      end
%  end
%  
% end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -