华容道3x3的技巧_数字华容道怎样才能有解
数字华容道,是在4x4的格子中,依次从左到右,从上到下放置1-15这15个数字。经过一定的随机,必须将这15个数字复原。每个数字只能向相邻的唯一空格移动。难度更高的,格子和数字会更多,比如5x5。
我在开发一个类数字华容道游戏时,发现自己3x3的格子,居然怎么都解不出来。比如:一排1、2、3,二排4、5、6,三排8,7。经过网上查询,才知道完全随机位置的数值华容道仅有50%的概率是有解的。而我就是用的完全随机方式去打乱次序。
网上有两篇文章说的很好,以下是根据这两篇文章的总结。
数字华容道必然有解的前提
首先,要弄清楚一个概念:逆序数。逆序数,即一个数字序列,将其中所有数字依次两两对比,若大数在前,小数在后,那么这就是一对逆序数。这里说到的逆序数,指的是数字序列中逆序数的数量。比如:上文提到的1、2、3、4、5、6、8、7,逆序数只有1个,即8和7。
另外,还有一点要提出来。一般来讲,复原状态(初始状态)的数字华容道,会有一个空格,一般会设置在最末行的右下角。但也可以根据实际的需求,设置在其他行。请留意,初始空格所在的行数,是决定是否有解的一个重要因素。
数字华容道,必然有解,只存在于如下3个细分情形:
若格子列数为奇数,则逆序数必须为偶数;
若格子列数为偶数,且逆序数为偶数,则当前空格所在行数与初始空格所在行数的差为偶数;
若格子列数为偶数,且逆序数为奇数,则当前空格所在行数与初始空格所在行数的差为奇数。
实际的推演涉及到我一时难以彻底理解的数学推算,我只能用浅显的方式来理解这个问题。
为什么?
首先,有解的前提在于:当前空格回到初始空格所在行数时,逆序数一定得是偶数!为什么,我不清楚。
要想把空格移动到初始空格所在行,必须进行若干次上下移动和若干次左右移动。
左右移动,不会改变逆序数;上下移动,若格子列数为奇数,则每次增减偶数个逆序数,若格子列数为偶数,则每次增减奇数个逆序数。
也就是说:
格子列数为奇数,怎么移动,都不会改变原始的逆序数。因为奇数加减偶数还是奇数,偶数加减偶数还是偶数。所以,只要保证逆序数是偶数即可,不必关心空格的位置。
格子列数为偶数,那么进行奇数次上下移动,会改变其逆序数的奇偶性。所以,如果当前逆序数是偶数,要想有解,就要保证实际上下移动会进行偶数次,也就是说空格所在行与初始空格所在行的差为偶数。
同理,若当前逆序数是奇数,要想有解,要进行奇数次的移动,才能保证最终逆序数是偶数。
如何转换逆序数奇偶性
具体实现应该很简单,不多说了,就说一点。如果想更改一个数字序列的逆序数的奇偶性,只需要调换一对逆序数的位置即可。
最后
可能是CS106A课程上的一句话,并不是原文:
程序员要在不理解内在实现逻辑的情况下,也能顺畅地使用别人的成果。
不理解没关系,会用就行。
参考文档:
华容道3x3的技巧_数字华容道怎样才能有解相关推荐
- 华容道3x3的技巧_数字华容道——无上限解题技巧
之前就听过数字华容道,但是一直没有上手,今天发现室友再玩,我就下了一个,试了一下3X3 26秒,挺简单的 有玩了下5X5 说实话,前面3行很顺利,但是最后2行就比较"碰运气" 以及 ...
- 华容道3x3的技巧_我发现总结的关于数字华容道的技巧规律
数字华容道,一个很有趣的游戏,就是在一个n阶数字阵里,只有一个空格,位置打乱,让重新按顺序排好.自己做着做着,发现可以有方法规律,并且百用百顺,就总结并拿出来和大家共同分享探讨:一行一行的弄顺, 拿四 ...
- 华容道3x3的技巧_华容道游戏秘决技巧
玩法:就是通过这两个小空格移动棋子,曹操移出华容道(也就是把最大的那个滑块移到最下方中央位置).滑块游戏华容道,又名捉放曹,古老的中国游戏,以其变化多端.百玩不厌的特点与魔方.独立钻石棋一起被国外智力 ...
- 华容道6×6图解_数字华容道玩法图解介绍 世界纪录是多少秒
数字华容道怎么玩?怎么摆都有解吗?今天第六手游网小编将给大家带来详细资料,接下来让我们一起来看看吧! 数字华容道技巧规律 数字华容道,一个很有趣的游戏,就是在一个n阶数字阵里,只有一个空格,位置打乱, ...
- 15数字华容道解法 图解_数字华容道最后一行技巧数字华容道教学步骤
数字华容道最后一行技巧是先把上一排的按顺序往下转,上一排不要打乱,当把最后一排的数字转上一部分去时,找准顺序插下来,一直转到最后一排的顺序也是正确的,再复原就可以了.数字华容道就是将1-15这15个数 ...
- 15数字华容道解法 图解_数字华容道最后一行技巧 数字华容道教学步骤
数字华容道最后一行技巧是先把上一排的按顺序往下转,上一排不要打乱,当把最后一排的数字转上一部分去时,找准顺序插下来,一直转到最后一排的顺序也是正确的,再复原就可以了.数字华容道就是将1-15这15个数 ...
- 15数字华容道解法 图解_数字华容道攻略(数字华容道最快解法图)
数字华容道有何解法? 4*4基本在一分钟左右,最快一次32秒.5*5.6*6还没测.4*4太简单,我就简单说一下了,后面5*5和6*6比较详细.4*4: 首先还原前两行.然后把9到12按下图...下面 ...
- 15数字华容道解法 图解_数字华容道解法图解 数字华容道玩法介绍
数字华容道,一款全新的经典的益智类型数字APP.目的是用最少的步数,*短时间将棋盘上的数字方块,按照从左到右,从上到下的顺序重新排列整齐.以往华容道游戏基于三国背景,需将棋子移动到出口.现在以数字为形 ...
- C语言开发数字华容道实现,从技术角度实现实现数字华容道
目的 上周新一期的最强大脑出来了,虽然上季被称为最强黑幕,不过呢.我决定还是看看= =.它里面第一关是叫做数字华容道.说白了,就是和拼图差不多.一开始我准备下一个玩玩的.结果没搜到.所以决定写了一个. ...
最新文章
- hdu 6034 B - Balala Power! 贪心
- Py之demjson:Python库之demjson的简介、安装、使用方法详细攻略
- 要闻君说:5G手机真的来了?TCL转型科技企业!鹅厂云部门发布态势报告, DDoS攻击正式进入Tb时代!天上“跑”起出租车?...
- 安卓案例:闪烁满天星
- java8-Optional
- MongoDB 表结构分析工具介绍 -- Variety
- IP地址是如何分配的
- LintCode 交叉字符串
- 51单片机数码管闪烁c语言,AT89C51单片机数码管闪烁问题怎么解决
- 计算机找不到家庭网络连接,电脑找不到家里的wifi无线网络怎么办?
- tortoise-orm 分页码(python)
- 为Android购买多个改装微信,安卓版微信带来超级重磅更新 微信终于开放账号ID修改功能喽(就是限制略多)...
- 码率、帧率和I B P帧
- 宝藏又小众的灯罩VRay材质球素材网站分享
- Android Wi-Fi Regulatory domain controlle the channel(以QCOM平台为例)
- 【转载】微信公众平台发展趋势猜想
- Failed to introspect Class FeignClientFactoryBean 异常排查
- 交换机SNMP V3版本配置
- pip更换源,换成国内镜像
- ajax:php数组数据类型