function A=UTEM35(n) p=1/4; ma=0; safe=0; unsafe=0; SA=0; UN=0; good=0; GO=0; sched=0; SC=0; TSC=0; TUNSC=0; lap=(n+2)*(n+2); el=n+2; loc1=1111; loc2=2222; loc3=3333; loc4=4444; loc5=5555; loc6=6666; for j=0:2^n-1 x=j; for j1=n:-1:1 a(j1)=rem(x,2); x=floor(x/2); end %% forj1 a(n+1)=0; for k=0:2^n-1 y=k; for k1=n:-1:1 b(k1)=rem(y,2); y=floor(y/2); end %% fork1 b(n+1)=0; for l=0:2^n-1 z=l; for l1=n:-1:1 c(l1)=rem(z,2); z=floor(z/2); end %% forl1 c(n+1)=0; ma=ma+1; sum1=0; sum2=0; jelg=0; jels=0; for i=1:n sum1=sum1+a(i)+b(i)+c(i); sum2=a(i)+b(i)+c(i); if sum1>i jels=sum1; end %% ifsum1 if sum2>1 jelg=sum2; end %% ifsum2 end %% fori val=p^(sum1)*(1-p)^(3*n-sum1); if jelg==0 good=good+val; GO=GO+1; disp([loc1,ma,GO]); sched=sched+val; SC=SC+1; safe=safe+val; SA=SA+1; end %% ifjelg0 if jelg>0&jels>0 UN=UN+1; disp([loc2,ma,UN]); unsafe=unsafe+val; end %% ifjelgs if jelg>0&jels==0 safe=safe+val; SA=SA+1; disp([loc3,ma,SA,a(1),a(2),a(3),a(4),b(1),b(2),b(3),b(4),c(1),c(2),c(3),c(4)]); for i=1:(n+2)^3 s(i)=0; end %%fori li1(1)=1; li2(1)=1; li3(1)=1; s(1)=1; in=2; out=1; suc=0; t=0; while suc==0&in>out x=li1(out); y=li2(out); z=li3(out); out=out+1; t=t+1; sum=a(x)+b(y)+c(z); disp([loc5,ma,t,out,in,x,y,z]); if sum>=2 %% nothing to do else if (x>n&y>n)|(x>n&z>n)|(y>n&z>n) suc=2; else if sum==1 if x<=n+1&y<=n+1&z<=n+1 if s(x*lap+y*el+z)==0 s(x*lap+y*el+z)=1; li1(in)=x+1; if li1(in)>n+1 li1(in)=n+1; end %%li1in li2(in)=y+1; if li2(in)>n+1 li2(in)=n+1; end %%li2in li3(in)=z+1; if li3(in)>n+1 li3(in)=n+1; end %%li3in in=in+1; end %% ifsx end %% ifx+ end %% if000 if sum==0 if x<=n+1 if s(x*lap+(y-1)*el+z)==0 s(x*lap+(y-1)*el+z)=1; li1(in)=x+1; if li1(in)>n+1 li1(in)=n+1; end %%li1in li2(in)=y; li3(in)=z; in=in+1; end %% ifsx end %% ifx+ if y<=n+1 if s((x-1)*lap+y*el+z)==0 s((x-1)*lap+y*el+z)=1; li1(in)=x; li2(in)=y+1; if li2(in)>n+1 li2(in)=n+1; end %%li1in li3(in)=z; in=in+1; end %% ifsy end %% ify+ if z<=n+1 if s((x-1)*lap+(y-1)*el+z+1)==0 s((x-1)*lap+(y-1)*el+z+1)=1; li1(in)=x; li2(in)=y; li3(in)=z+1; if li3(in)>n+1 li3(in)=n+1; end %%li1in in=in+1; end %% ifsz end %% ifz+ end %% sum0 end %% elseif01 end %% elseifin end %% while if suc==2 sched=sched+val; SC=SC+1; TSC=TSC+1; disp([loc4,a(1),a(2),a(3),a(4),b(1),b(2),b(3),b(4),c(1),c(2),c(3),c(4)]) end %% ifsuc2 if out>=in&suc<2 unsafe=unsafe+val; TUNSC=TUNSC+1; disp([loc6,a(1),a(2),a(3),a(4),a(5),b(1),b(2),b(3),b(4),b(5),c(1),c(2),c(3),c(4),c(5)]); end %% ifsuc=1 end %% ifjelg end %% forl end %% fork end %% forj disp([ma,good,sched,safe]); disp([ma,GO,SC,SA,UN]); end %% program