分享

认真玩游戏,好好学推理 - bdpq

 长沙7喜 2018-06-10

今天带五年级的学生探究了bdpq游戏,觉得很有意思,便留个记录^_^


bdpq游戏是sleeeeepfly睡神飞工作室研发的一款烧脑益智游戏,玩法很简单,却充满了各种变化,是苹果“挑战大脑”专题推荐世界28个烧脑游戏之一。


进入游戏就是下图的界面,游戏玩法也很简单:按住中心点左右或上下滑动翻转,中心点相邻的块会跟着一起翻转,当4个方块字母相同,就成功了。

简单操作几次之后,可能碰巧成功了(诶,我怎么成功的来着),也可能有些抓狂(为了弄下一块儿,一老要破坏掉之前弄好的)。


可能有些夸张了,因为入门的2阶版,其实没那么难~~   不管怎么样,问题还是有难度的,难就难在不同块儿之间的互相联动的,而这种设定在汉诺塔、Guarini谜题、华容道、魔方中都存在。而魔方是与本问题最为相似的...  于是我猜想,这个问题也应该如同魔方一样,存在一些基本操作模式!而且和玩魔方一样,我们内心都有一个愿望:要是我们能随便改变其中一块的状态就好了!


对,我想要把基本模式找出来...   于是开启了我的探索之旅


我们先对问题进行简单分析:

  1. 每个方块存在四种状态(bdpq)、两种操作(左右、上下翻转),b ←左右翻转→ d,b ←上下翻转→ p,但b需经过两次翻转才能得到q

  2. 可尝试对一些操作进行组合,如先以左上角为中心左右翻转一次,再以右上角为中心左右翻转一次,能实现下方两块的左右翻转;该结论同样适用于上下翻转

  3. 如果分别对左上角、右下角进行相同翻转,则能实现左上角、右上角两个方块的翻转

  4. 上面2、3通过组合步骤,实现了同时改变两块的状态,那我们有办法实现只改变一块的状态吗?可以的,只需要再找一个3块的组合(覆盖已改变的2块),进行一次翻转即可,以3的结果为例(最后只有黄的那块发生了变化)

我们可以换个角度思考第4点:如果用相同的翻转方向(如左右翻转),那么经过奇数次操作后会改变状态,而偶数次操作后保持不变。所以,如果我们希望第一块不变,那么就努力让它发生奇数次变化,而其它块发生偶数次变化。尝试后,发现3、2、2、2是个可行的方案:


由于我们此时更关注的是每块翻转了几次,而不是它当前是什么字母,所以将标记改为数字。【数学中最重要的思想是转化与划归,而我们任何时候要转化问题,一定都有原因、目的,一定是另一种形式能让问题更简单、直观或熟悉


有了上述基础,我们就可以为所欲为啦,哪块儿不符合心中所想,我们就用上面的工具解决那一块儿!  但是,这样真的好麻烦、步骤好繁琐


有什么更简便的方法吗?

仔细观察我们会发现,每次操作时都会动3块,保持其中一块不动。这时候我想到了孙老师的“广义对称”,或许我们能从问题的反面来寻求出路

为了祝贺这个想法的产生,我还画了一张示意图:



如上图,没动的同学,却因其它所有同学的后退,而产生了相对移动!没错,本问题也不关心绝对位置,只关心相对移动(并不关心你是哪个字母,只关心你与其它字母同还是不同)

的确,本问题中一次操作移动的3块,它们之间的相对位置不会改变,之前需要什么操作,之后还是需要什么操作。例如,bdp一起左右翻转,得到dbq,之前d、p与①号b之间差一次翻转,之后的b、q与①号d之间还是只差一次翻转,而且连翻转类型都没变。

于是,我们得到一个非常有用的结论:如果你直觉想要翻转某一块,只需用相同的方式翻转其余3块便可。

如下图,我们目标锁定在左下方块! 右下的q←左右翻转→p,于是我们不动q,而是动其余3块,进行左右翻转,结束后惊奇地发现q所在的方块与左下方块的字母相同了(我们称为距离为0,即不需要再翻转)。同理,其它块谁和左下方块不同,就用相同方式操作,很快便能解决问题!


喜欢思考的我,决不能止步于此,我得想想问题还有什么值得探究的地方


于是我想,bdpq转化为同一字母,最少的步骤是多少?

上面已经得到一个4步的答案,那最少步骤一定不会大于4.  有没有可能是3呢?值得怀疑,但如果要验证3的每一种情况,需要验证8×8×8-512次(每次可操作4个方块,有上下、左右翻转两种操作方式).  显然,我们得打消这个念头!


那么我们能借用刚才“相对移动”的思考方式吗?答案是肯定的。

我们如果以b方块为目标,初始状态时:

  • d ← 左右 → b

  • p ← 上下 → b

  • q ← 左右 → p ← 上下 → b

即,其余3个字母需要1+1+2=4步,才能都变为b.  次数刚好和前面得到的4次操作相等。而这并不是巧合!!


我们将问题目标转化为:需要几次操作,它们之间的相对位置都变成0.

根据前面的讨论,每一次操作,都有且仅有一个方块,与其它3块发生相对位置变化,而且只变化1. 我们可以将其形象化表示为:



上图的左右两侧表示相差1次左右翻转的距离,上下两侧则表示需要1次上下翻转,所以d和b,p和b的距离都是1。它们3一起行动,不管是左右还是上下翻转,都不会改变相对距离。而q与b的距离是2,如果bdp一起行动,q点与他们的相对位置会改变1,或者说会与b的相对距离减小1.  每一次,都能改变其中一个点与目标的相对距离,所以最少需要上图中1+1+2=4次操作。

原问题得证!简单总结,问题的证明分成了2步:

  1. 选定目标块后(不用管字母是什么,只要最后与它状态一样即可),证明每一次操作,只有没动的块目标块的相对距离发生了变化,要么+1,要么-1

  2. 选定任何块作为目标块,初始状态时其它块与它的距离之和为4,根据上一步的结论,最少需要移动4次,才能实现相对位置变为0.


前面的讨论多次用到了“变而治之”(转化与划归),这是大多数复杂问题解决的核心。“变而治之”不应该体现在某些固定的题型之中,而应该出现在每一次遇到困难的时刻,应用与训练皆是如此


那么这个问题还有什么值得研究的?可能还有很多,至少我们还可以试试3阶的情况。


==== 疲惫的人已经不用看下去了====


受2阶情况的启发,我们可以先探索一下,3阶情况的基本操作及其组合有哪些。我们可根据位置特征,将基本操作分为三类:

  • 第一类,以边角点为中心,一次操作可改变5个方块(可以认为另外相邻4块被改变)

  • 第二类,以边的中点为中心,同样改变5块(或认为改变隔岸相望的4块)

  • 第三类,以中心点为中心,同样改变5块(或认为4个顶点被改变)

有趣的是,我们以上面的基本操作进行组合,产生的绝大多数,仍然是这几种基本操作。唯独多了以下两种模式:

讨论了这些基本模式后,我们看上去还是觉得很乱,一个重要原因是bdpq看上去太相似了,很容易迷糊。这里我们可以再进行一次形式转化,将bdpq变为ABCD或1234,以1234为例:


我们发现4种状态都有,容易判断4和1出现在一个操作模板中,将它们转为2、3:

很好,这时候只剩下2种状态了,而且显然可用我们前面组合出来的新模式解决:



好了,一个3阶的问题终于被解决了!我想,任何一个3阶的问题都可以被解决了!




让我们永远像孩子一样,保持对世界的好奇心!

这个世上,没有什么事情没有“为什么”!


作者:陈硕815(清华,摩数教育科技,孙维刚研究院)

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多