求算法,是一个实际问题抽象出来的
算法吧
全部回复
仅看楼主
level 1
outofmage 楼主
现在有26张卡片,每个卡片上分别印有一个大写英文字母。还有N个卡片槽,N<26。
先初始化,随机把的卡片放入卡片槽里,每个卡片槽都有一个字母。
现在需要把卡片槽里的字母变化为另一个随机的样子,在此过程中,不能有任何一个卡片槽为空。
为了避免锁死,允许有一张空白的卡片。
求算法,时间复杂度不限,只要完成就行。
2014年11月28日 04点11分 1
level 1
outofmage 楼主
中括号是卡片槽,“*”表示那张空白卡片。
比如有5个槽初始状态为:
[A] [B] [C] [D] [E]
目标状态是:
[B] [A] [X] [Y] [C]
可以的步骤是
1.[*] [B] [C] [D] [E]
2.[*] [A] [C] [D] [E]
3.[B] [A] [C] [D] [E]
4.[B] [A] [X] [D] [E]
5.[B] [A] [X] [Y] [E]
6.[B] [A] [X] [Y] [C]
2014年11月28日 04点11分 2
1