能够进行所有转换的状态机
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]
我正在尝试设计一个状态机,它将遍历状态之间所有可能的转换。但是,状态机不能从给定状态返回到自身。从下图中,我计算出给定状态数 (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]