怎么样判断一个八数码问题有解还是无解啊?不会连一个知道的人也没有吧.满意的会追加分数.谢谢.

来源:学生作业帮助网 编辑:作业帮 时间:2024/07/04 15:09:49
怎么样判断一个八数码问题有解还是无解啊?不会连一个知道的人也没有吧.满意的会追加分数.谢谢.
xSnA4&"D9KC"}8f1;8 3])i@f)Htի^UFkb(TҦe -ڔMBId+2ePL=K5{ 0챳 X-JLWa﹩դ%TPXmZs{/ ÁVz ߴgvׇNB3*U`Pf)öAy%N&Zfu +Jt%2k5+J {NqbXذ}6Ӈ{6@'"Gѧ<GAh5b$@OY ܷ0ʉGg،AfZ0IҲFՄ ]py |+qg j"Y=3:mF"1ؾ:,*A7L]A>8;G)rl{D/X7vIR=-G (#Y/zb耛or .O@nXJ-S s>+an[7> 9.G=`ZN)nC󉰩 =- 2|iu0-y$;i,{|}w^D

怎么样判断一个八数码问题有解还是无解啊?不会连一个知道的人也没有吧.满意的会追加分数.谢谢.
怎么样判断一个八数码问题有解还是无解啊?
不会连一个知道的人也没有吧.
满意的会追加分数.谢谢.

怎么样判断一个八数码问题有解还是无解啊?不会连一个知道的人也没有吧.满意的会追加分数.谢谢.
利用奇偶性判断所给出的初始状态有无解.
判别方法是:
以数组为一维的举例子.
将八数码的一个结点表示成一个数组a[9],空格用0表示,设临时函数p(x)定义为:x数所在位置前面的数比x小的数的个数,
其中0空格不算在之内,那设目标状态为b[9],那r=sigma(p(x)) sigma()表示取所有的x:1-8并求和,
那对于初始状态a[9],t=sigma(p(x)),如果r和t同为奇数或者同为偶数,那么该状态有解,否则无解.
考虑到四种移动方法对sigma(p(x))的影响,左移和右移是不会影响它的值的,
更不会影响奇偶性,如果是上移或者下移就会影响:
上移:一次上移会使一个元素向前跳两个数字的位置,设这两个数字为a1,a2,
不妨设a1