function P = matchproc(N0) global m n N N = N0; m = 2; n = N^2; P = zeros(m^n,1); for xi=1:m^n x = i2c(xi); b = goodmatch(x); P(xi) = b; end P = P/sum(P); return function b = goodmatch(x) global m n N U = []; V = []; b = 1; for i=1:n if x(i) uv = ind2coord(i,[N N]); u = uv(1); v = uv(2); if (ismember(u,U) | ismember(v,V)) b = 0; return end U(end+1) = u; V(end+1) = v; end end b = (length(U)==N)*(length(V)==N); return