我正在解决 8 谜题。这是一个看起来像这样的问题:
图片由:https ://ece.uwaterloo.ca/~dwharder/aads/Algorithms/N_puzzles/ 提供(您还可以在此处查看 8 拼图的更详细描述)。用户可以将与空白相邻的正方形移动到空白中。任务是恢复如图所示的排列,从一些任意排列开始。
现在,当然可以将状态描述为 9 位的排列。在显示的图片的情况下,排列是:
1 2 3 4 5 6 7 8 0
但是,并非所有排列都可以从所示配置中获得。因此,我有以下问题。
通过将瓷砖滑入空白中,从所示的初始配置中可以获得多少排列?
调用上述 N 的答案。现在,我想要一个从 1 到 N 的整数到排列的 1-1 映射。也就是说,我想要一个接受排列并返回适当整数的函数,以及一个接受整数并返回排列的函数。映射必须是双射(即不完美的散列是不够的)。