【发布时间】:2021-04-17 17:04:50
【问题描述】:
板子是这样的:
1 2 3 4
5 6 7 0
0 0 0 0
0 0 0 0
'0' 表示为空,我们可以将非零数移到'0'。 那么如何使用 BFS 获取板子的所有状态呢?
例如,板子有两种状态:
1 2 3 4
0 0 0 0
5 6 7 0
0 0 0 0
1 2 3 0
4 0 0 0
5 0 0 0
6 7 0 0
我问这个问题的原因是我需要使用不相交模式数据库处理所有 15 拼图状态,以在 1 分钟内解决几乎最困难的 15 拼图状态。
15 14 13 12
11 10 9 8
7 6 5 4
3 1 2 0
【问题讨论】:
-
你知道有 10461394944000 (=16!/2) 种可能的状态吗?每个状态仅存储 1 个字节意味着大约 10 TB。
-
@Henry,有 7 个点,是 C(16, 7) * A(7, 7)
-
对,我正在计算完整的谜题。
标签: java breadth-first-search sliding-tile-puzzle