注册 登录
编程论坛 VB6论坛

已知最初和最终排列,求最佳移动顺序

wochuang08 发布于 2019-03-12 15:15, 2250 次点击
只有本站会员才能查看附件,请 登录

大写字母是固定不动的,小写字母是可移动的。你可以想象大写字母是一口锅,小写字母是锅盖,每个锅和锅盖都有编号,现在是要把锅盖从他原来的那口锅上移动到指定的另一口锅上,锅和锅盖都有若干个,要求给出所有锅盖移动的最少移动顺序。

[此贴子已经被作者于2019-3-12 15:53编辑过]

6 回复
#2
wochuang082019-03-12 15:17
这个显示可能稍显麻烦,需要求解的是整个移动的步骤,并且步骤是最佳的。
#3
wp2319572019-03-12 15:30
不知道你的移动是啥意思,那个单元格是一个整体 拆分 合并 移动  你觉得你说清楚了吗
#4
wochuang082019-03-12 15:51
大写字母是固定不动的,小写字母是可移动的。你可以想象大写字母是一口锅,小写字母是锅盖,每个锅和锅盖都有编号,现在是要把锅盖从他原来的那口锅上移动到指定的另一口锅上,锅和锅盖都有若干个,要求给出所有锅盖移动的移动顺序。
#5
wochuang082019-03-13 09:37
回复 3楼 wp231957
大写字母是固定不动的,小写字母是可移动的。你可以想象大写字母是一口锅,小写字母是锅盖,每个锅和锅盖都有编号,现在是要把锅盖从他原来的那口锅上移动到指定的另一口锅上,锅和锅盖都有若干个,要求给出所有锅盖移动的移动顺序。
#6
wmf20142019-03-13 17:26
由于最终结果是第一列只有锅,所以只需要做3*5=15的全排列,只需要对bcd三列共15个格子做合理编号,最快2步移到位,最慢需要15!=1307674368000步移到位。
#7
wochuang082019-03-14 14:41
我只是给了个示例,锅盖的位置虽然最终是给定的,但是给定的位置不一定不是第一列,实际问题比这个要复杂很多。
希望大神能够帮助编写一个小程序来实现。
1