function P=customproc(m0,n0) global m n m = m0; n = n0; %k = floor(sqrt(n)) %global k %k=1 %global tha %v = 1/(n-k); %pk = v/2 + 1/2; P = ones(m^n,1); for xi=1:m^n x = i2c(xi); P(xi) = (x(1)==x(end)); % good %P(xi) = 1-tha +tha*(x(1)==x(end)); if 0 b = (x(k)==x(n)); p = (1/2)^(n-1)*(pk*b + (1-pk)*(1-b)); P(xi) = p; end if 0 p = 1; for i=1:n-1 pi = 1/(i+1); %pi = (2)^(-i); if (x(i)==x(n)) p = p * pi; else p = p * (1-pi); end end P(xi) = p; end %P(xi) = (x(1)==x(2)); %p = (x(1)==mod(sum(x(2:end)),2)); %p2 = (x(2)==mod(sum(x(3:end)),2)); %z = x(1:3:n); %p = all(z==z(1)); %P(xi) = (x(1)==x(2))*p2; %val = binval(x(1:k)); %p = (val==mod(sum(x(k+1:end)),2^k)); %ii = find(x); %if ~isempty(ii) % ii = ii(1); % suff = x(ii:end); % P(xi) = all(suff); %end %z1 = x(1:k); %z2 = z1(end:-1:1); %P(xi) = all(z1==z2); %P(xi) = genP(x); end P = P+eps; %sp = sum(P); P=P/sum(P); return function p = genP(z) global m n p = 1; for i=0:n-1 y = z(1:i); x = z(i+1); p = p * condP(i,x,y); end return function p = condP(i,x,y) % an explicit cond prob of X(i+1) = x % given X(1:i) = y if i==0 p = 1/2; return end if all(y(1:i-1)==0) p = (y(i)==x); else p = 1/2; end % trying to get diagonal band structure! return function d = binval(x) xstr = num2str(x); xstr = strrep(xstr,' ',''); d = bin2dec(xstr); return