我正在尝试设计一个状态机,它将遍历状态之间的所有可能的转换。但是,状态机无法从给定状态移回自身。从下图中,我得出了在给定状态数(N)的情况下,转换次数等于N ^ 2 - N.
有关如何处理此事的任何想法吗?
答案 0 :(得分:1)
在第一次误解了这个问题之后,这是另一次尝试。
所以我们想一次性横向图,我们不允许两次使用相同的过渡。诀窍可能是让赛道自由回到起跑状态。
states = 4 # Select number of states
path = [0] # Start in state 0 (must be zero)
def walk(path):
home_state = path[-1]
for i in range(home_state + 2, states):
# We leave a state out that we go to next
path.append(i)
path.append(home_state)
if home_state + 1 < states:
path.append(home_state + 1)
walk(path)
path.append(home_state)
walk(path)
print path
应该给出
[0, 2, 0, 3, 0, 1, 3, 1, 2, 3, 2, 1, 0]