我正在尝试解决这个类似于狼、山羊和卷心菜问题的谜语,并尝试以图形格式表示它(节点和边表示所有潜在路径)。
这就是问题:
2 个马戏团家庭有一个行为,其中一个家庭,由母亲、父亲和女儿组成,位于空中飞人的左侧,而另一个家庭,有两个兄弟和一个姐妹,位于空中飞人的右侧。空中飞人。每个人都从各自的秋千上吊起来,两个家庭之间有一个空荡荡的秋千,如下所示:
母亲,父亲,女儿,空,妹妹,弟弟,哥哥
一个人只能从他们的秋千摆动到一个空荡荡的秋千上,该空荡荡的秋千要么与他们当前的秋千相邻,要么被来自任一家庭的单个人与他们的位置隔开。诀窍的目的是让两个家庭交换双方。任何家庭成员都不得在任何阶段向后摆动。将导致成功执行该技巧的动作顺序是什么?
我将左侧的族标记为“A”族,将右侧的族标记为“B”,将空族标记为“É”,并从第一个位置开始,尝试绘制所有可能存在的排列。
现在我试着只做第一个可能的移动(移动到相邻的空荡荡),但我似乎遇到了一些技术问题,我不知道为什么会这样。
我正在尝试在每个步骤中列出可能的步骤。
这就是我所拥有的。
iC=['A','A','A','E','B','B','B']
newC=[]
for x in range(0,7):
if iC[x]=='E':
if iC[x-1]=='A' and iC[x+1]=='B':
iC[x-1]='E'
iC[x]='A'
newC.append(iC)
iC[x-1]='A'
iC[x]='B'
iC[x+1]='E'
newC.append(iC)
elif iC[x-1]=='A':
iC[x-1]='E'
iC[x]='A'
newC.append(iC)
elif iC[x+1]=='B':
iC[x+1]=='E'
iC[x]=='B'
newC.append(iC)
break
print(newC)
我正在尝试将新项目附加到新列表中,但它会更改项目。可能是因为 append 在 if 语句中两次并且只是更改了附加的项目吗?有没有更有效的方法来做到这一点?感谢任何帮助将不胜感激:)