给定两个状态 A 和 B,找出从 A 最优移动到 B 的可能性。其中每个状态表示磁盘在各自挂钩中的当前位置。这里的钉子数是 3。
例子
对于 N=3 个磁盘和 3 个 peg,任务是使用 peg 3 将所有磁盘从 peg 1 移动到 2
peg(disk number)
状态 A - 1(4), 2(3,2,1), 3(blank) 解释 - 挂钩 1 的磁盘编号为 4,挂钩 2 的磁盘编号为。3,2,1 和 peg 3 有磁盘号。3
状态 B - 1(2,1), 2(空白), 3(4,3)
对于上述情况,答案是正确的,它可以移动。
我目前的做法
对于给定的 N(磁盘数量),生成所有集合并将其放入 map 中,并带有生成时间。对于给定的状态,比较生成时间和答案。
问题
对于较大的 N=10^4 或更大,生成所有集合 bcz 集合的总数为 2^N 是不可行的。我希望这里存在线性或对数解决方案。