能够进行所有转换的状态机

State Machine Capable of All Transitions

我正在尝试设计一个状态机,它将遍历状态之间所有可能的转换。但是,状态机不能从给定状态返回到自身。从下图中,我计算出给定状态数 (N),转换数等于 N^2 - N.

关于如何处理这个问题有什么想法吗?

第一次理解错误后,再次尝试。

所以我们要一次性横穿图,不能使用同一个transition两次。诀窍可能是让轨道自由回到起始状态。

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]