|
MAPLE
|
S[2]:= [[0, 0, 0], [0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 0], [1, 1, 1]]:
for i from 3 to 5 do
S[i]:= map(proc(t) [op(t[1..i-1]), t[i-1], op(t[i..-1]), 0], [op(t[1..i-1]), t[i-1], op(t[i..-1]), 1],
[op(t[1..i-1]), 1-t[i-1], op(t[i..-1]), 1] end proc, S[i-1])
od:
states:= S[5]:
T:= Matrix(162, 162, proc(i, j) local k;
if add(states[j, k]-states[i, k], k=1..5) > 0 then return 0 fi;
for k from 6 to 9 do if states[j, k]>states[i, k] then return 0 fi od;
for k from 1 to 4 do if states[i, k]>=states[i, k+1] and states[j, k+5]<>states[i, k+5] then return 0 fi od;
1
end proc):
E:= Vector(162): E[1]:= 1:
U[0]:= Vector[row](162, 1):
for k from 1 to 25 do U[k]:= U[k-1].T od:
|