- 注册时间
- 2018-1-1
- 最后登录
- 1970-1-1
- 威望
- 星
- 金币
- 枚
- 贡献
- 分
- 经验
- 点
- 鲜花
- 朵
- 魅力
- 点
- 上传
- 次
- 下载
- 次
- 积分
- 58
- 在线时间
- 小时
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?欢迎注册
×
数字华容道,一个很有趣的游戏,就是在一个n阶数字阵里,只有一个空格,位置打乱,让重新按顺序排好。自己做着做着,发现可以有方法规律,并且百用百顺,就总结并拿出来和大家共同分享探讨:一行一行的弄顺,
拿四阶的举例:
先把1,2,3,4无论是什么顺序的弄到第一行,
第二行无论是什么数,无论是什么顺序的,不予理睬,把第一行弄顺即可,
比如2,4,3,1
先把1弄到2之前,再把3弄到4之前,具体如何摆放,可能还需要和下一行的(2,1)(2,2)(2,3)位置上的数字互换,也可能不需要,这里的(x,y)是指的下一行的x代表的行数和y代表的列数,
以此类推,直到把倒数第二行的数字也都弄好为止,
最后一行的数字在倒数第二行的数字不变位置的情况下,
按数序排好即可。
不知道大家还有什么想法?
还有,在具体每
一行的位置排序时,要注意
如每一个位置的数字只能跳到相隔偶数的位置上面,
拿一个4×4举例,
第一行是2,3, 4,1
第二行是6,5,8, 7
连在一起可以看成一个数字环,首尾相接
就是2, 3,4,1,7,8,5,6,也可以看成78562341
第一步:5跳2个数,就是25341786,
第二步:然后1跳4个数,变成12534786,
第三步:5跳4个数,变成12347856
第四步:7跳2个数变成12348576
第五步:5跳2个数变成12348765
数字环形成顺序正确,形成两行
第一行是1234,第二行是5678
至于为什么每个数都能跳过偶数个数的位置,原因就是因为每个数在通过跳跃别的数字而改变位置时,必须是它的上方或者下方出现空格时,那就是在向它同列的下一行或者上一行移位,那就是相当于跳过了两倍的它旁边的列数的个数,那就是等于跳过偶数个数的数字位置。
由此我还想到当n* n个数字华容道时,在n-1行的数字华容道都排好时,很有可能会出现最后一行却还不好的情况,那就是这个游戏没设计好,它的位置颠倒的个数总和是奇数个,而不是偶数个,拿3*3的数字华容道第三行的87来举例,需要移动的位置个数是1个,就是把8移动到7后面就行。如果在上面2行都排好的情况下,这行如果是87
那么这个数字华容道就是做不了的。
再举例,如果是4×4,假定前面全部排好,如果最后一行是13,16,15,14,那就是需要跳过奇数个位置的数字,首先,14移到16前面,需要跳过2个数,那就是13,14, 16,15,15跳到16前面,跳过1个数,那还是无法实现的。
可以这样证明,一个数列,打乱的那种,如果需要跳过的数字个数和是奇数个,但是如果你每次跳过的数字(就像数字华容道那样),个数只能是偶数个,那么是不可能能达到目标的,因为你跳过的的数字个数的总和只可能是偶数个,不可能是奇数个。 |
|