对称思维的妙用之从解题到本质(四)——用三个套路秒杀一众问题

2023-07-12 14:43:59 浏览数 (1)

在前面的文章中,我们从题目入手介绍了对称思想解题的三个根本套路,相关文章请戳:

对称思维的妙用之从解题到本质(三)——三个套路总结

对称思维的妙用之从解题到本质(二)——斗地主中有人抓到王炸的概率是多少?

对称思维的妙用之从解题到本质(一)——巴格拉斯效果发生的概率

写作过程中,我对这些问题也是日思夜想,过程中还收集到一些类似思路的题目,发现应用我们的套路可以轻松秒杀,这里与大家分享:

1. 5红5白球,放回抽样,取到2红2白的概率?(源于知乎)

因为是放回抽样,所以每次都是独立事件地以1 / 2的概率拿红或者白球,题意暗含了拿4次球的意思,那总事件空间就是2 ^ 4 = 16;2红2白的组合条件的排列结果一共有C(4, 2)种(看到没,这用的组合数公式,实际上也不符合排列的一一对应性,而是在笛卡尔集合范围内计数!),于是根据对称对立分类的简化相乘和古典概型,答案为

C(4, 2) / 2 ^ 4 = 3 / 8

2. 4人,两人一个队伍,有几种组队方式?(某天打台球时想到的)

可以是C(4, 2) / A(2, 2),这是对称对立分类的简化相乘的逆运算用法,原题意应该理解为组队组合的方式,而乘法原理求得一定是排列性质的路径,故需要把重复的数量除掉,这和组合数公式的取得有异曲同工之妙;

还可以是换单个人的角度,C(3, 1)即为所求,这用的就是构造对解决问题有利的对称过程,由此可以放心大胆地剔除对求解无用的对称变量。

另外,这种思想还可以直接秒杀IMO:

3. IMO 2018 C3

一条河上有一行(n 1)片莲叶,一开始最左边的荷叶上有n只青蛙想跳到最右边,每秒只允许一只青蛙起跳,如果这只青蛙从一片有k个(包括自身)青蛙的荷叶上起跳那么它最多只能往右跳k格。证明:完成这一目标的最短时间不低于 sum(i in 1:n)(ceil(n / i))。

这题原始的思路要想到,应该还源于对ceil(n / i)的理解,对称只是保证这个思路正确并且能快速直觉化理解的保障。ceil(n / i)的一种物理意义就是每次往前走i步,前进完至少n步所需要的步数了。那这里n个项的求和,如果刚好能对应n只青蛙的话,那就只需要证明每只青蛙每次能跳的步数都不能超过其编号i即可了。

骚操作来了,我们直接假定,每次在同一片莲叶上的所有青蛙,都是编号最大的那一只起跳,显然,其编号就是其能够跳步数的最大值,当且仅当比之小的所有青蛙都在这篇荷叶上。于是原命题得证。

什么,这就完了?完了,因为青蛙和青蛙之间是对称的,在整个跳跃过程的状态机描述中,也只需要记录每个荷叶位置上的青蛙数目,跳转过程即为确定减少荷叶的索引,数量减一,后续不超过其数量位置的荷叶索引,数量加一即可。整个过程不受到任何假定的哪一只具体编号的青蛙跳过去的影响。换句话讲,问题的发展过程关于跳跃青蛙的选择是对称的!本来就可以随便选!因此才有了对结论的观察,尝试,最后发现可行的灵感乍现的解数学题的感觉。

唉,只可惜这只是一场奢侈的数学游戏,实际生活中有本质,但可能没有这么干净和充满技巧的数学解存在,正常求解的思路也是走动态规划,然后再找各种放缩,虽然也能求解,但是数学解题之美不在此讨论之列。

最后一个问题:

4. 二维蚂蚁问题

一个20×20的棋盘上有若干只蚂蚁,一开始所有蚂蚁都在某个方格的中心,并且有一个朝向(上下左右)。每秒,所有蚂蚁都会向其朝向移动一格,如果两只蚂蚁在某一格正面相撞,那么它们会改变朝向从左面离开,反之亦然。证明:有限时间内所有蚂蚁都会走出棋盘掉下去。

如果我们用常规的状态机模型去建模和求解这个题目,那就是用一个20 * 20的矩阵来建模,每个位置有存储蚂蚁集合的排列,存着蚂蚁的前进方向的变量,如果为空则无蚂蚁。每走一步,每个有蚂蚁的地方按照前进方向前进一步,原处置零,新位置置1。如果存在相撞情况,仅有上下和左右的垂直相撞需要特殊处理,把其前进方向分别改为各自向其左即可。

但计算机的执行的无数次结束,也证明不了结论。我们必须从数学机理上分析之才能证明。这个状态机是一个蚁群的状态变化,但是输出的可观测内容是各位置上蚂蚁的数量和各自朝向。因此,所有的蚂蚁在任何时候进行任何排列上的改变,只要带着其朝向和位置性质,状态结果都不会导致本次和接着所有观测结果的改变。于是我们看其中任何一只蚂蚁,从它的初始位置开始,如果经历碰撞,相当于逆时针调转90车头,这样似乎有可能形成一个打转的局面,要正名所有的蚂蚁在有限步数内走出棋盘就不行了。

产生这种困境的原因是我们在观察一只蚂蚁的时候,应用原始条件的方法虽然没有什么错误,但是放大了可能的范围。比如,一只蚂蚁其实是不太可能一直能够在给定范围内一直碰到别的蚂蚁而有打转机会的,只是从这个小的视角无法说明罢了。

回到全体蚂蚁视角,刚才说了,棋盘上蚂蚁的情况,关于所有的蚂蚁对称,即更改任意两只蚂蚁之间的编号不影响整个局面的变动(因为只统计数量,每只蚂蚁等同,和顺序也无关)。于是我们尝试构造一种蚂蚁对换的方法,使得它能够一直朝着一侧的方向前进,即在所有的维度内,并不会发生转向(如果是原来的逆时针旋转180度,那转两次就把原方向倒转了)。

这种事显然只发生在碰撞发生时,按绝对方位来算,上下左右分别为1234的话,左右向会变成上下向,具体的是朝左的会朝下,朝右的会朝上,反之亦然。即(3, 4) -> (2, 1)和(1, 2) -> (3, 4),分别表示两种碰撞时,两只蚂蚁改变方向的直接对应关系。如果把这两个对应关系一起取并集,还刚好是(1 3 2 4)的一个轮换排列,真走不出去了。而我们如果在其中添加一组对换,改(3, 4) -> (2, 1)为(3, 4) -> (1, 2),那蚂蚁可能的方向变换群就成了(1 3)(2 4)。而无论是在13还是24的范围内,都是不改变任一方向朝向的行动,自然会沿着所有的朝向都走向终点,证毕。

Bonus

后来我发现很多博弈问题,如果用上对称的逻辑,就会轻易化简。比如石头剪刀布的游戏,因为3个出的手势并无真正的强弱,胜负关系在一个彼此对称的环中,因此均衡策略只能是均匀分布,否则任何一种关于排列后不对称的分布都应该同样是纳什均衡才对。又比如田忌赛马中,如果双方反复博弈,出每种马的概率应该是多少呢?用GTO公式可以算,但是缓过来一想,你的策略概率经过排列变换以后的结果,如果变得不同,那么对方也轻而易举通过童谣的排列变换可以得到应对策略,因此只有3种马的6种排列随机分配,才是可能的唯一均衡解。当然这里只是理解,不是证明,纳什定理没说仅有1个均衡解,有可能是3个或6个纯策略的石头剪刀布和赛马的解也说不定,但你会发现,那样依然是对称的。

好了,如何应用对称思维来思考问题的案例就说到这里,下期还有一个大招,敬请期待!

0 人点赞