早点关注我,精彩不错过!

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

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

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

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

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

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个纯策略的石头剪刀布和赛马的解也说不定,但你会发现,那样依然是对称的。

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

我们是谁:

MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!

扫描二维码

关注更多精彩

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

文字对称中的数学与魔术(八)——魔术《抓牌奇迹》与系列总结

魔术缘何而给你惊喜?

我的数学学习回忆录——一个数学爱好者的反思(二)

江泽民同志出的五角星五点共圆几何题解

2022卡塔尔世界杯小组赛出线形势分析指南——德国队会被西班牙做掉吗?

纠错码与魔术(四)——汉明纠错码魔术进阶

点击阅读原文,往期精彩不错过!

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

  1. 【LeetCode】妙用位运算解题

    [LeetCode]妙用位运算解题 文章目录 [LeetCode]妙用位运算解题 交替位二进制数★ 插入★ 数字范围按位与★★ 比特位计数★★ 下一个数★★ 消失的两个数字★★★ 修改后的最大二进制字 ...

  2. 宏观经济学思维导图_2019中央财经大学803经济学经验分享|三跨考生

    三跨央财经济学803经验分享 刚开始备考央财时找资料,找经验帖,寥寥无几,虽然我最终还是无缘央财,把备考过程与后面复盘所踩过的坑写下来,供后面学子参考. 一.个人情况 本人大学专业为物流,本科双非,报 ...

  3. CodeForces-1016C Vasya And The Mushrooms(模拟+思维+前缀和的前缀和) 解题报告 Apare_xzc

    CodeForces-1016C Vasya And The Mushrooms(模拟+思维+二重前缀和 ) 解题报告 xzc 2019/4/7 这周周赛的C题:wyt学姐的恶意   这道题周赛的时候 ...

  4. 块语法Block在MVC思维的妙用之多重M层代理传值

    注:以下代码均来自真实项目案例. 在项目开发中,经常避免一些与系统工具交互的功能需求.比如说开启蓝牙,开启相机,通讯录功能,还有数据加密等等. 由于这些功能的实现没有实例化的必要,并且又是许多项目都共 ...

  5. 解题报告(四)生成函数(ACM/ OI)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 繁凡出品的全新系列:解题报告系列 -- 超高质量算法题单,配套我写的超高质量的题解和代码,题目难度不一 ...

  6. 文巾解题 16. 最接近的三数之和

    1 题目描述 2 解题思路:排序+双指针 大体上思路和文巾解题 15. 三数之和_刘文巾的博客-CSDN博客是一样的 我们对整个数组进行升序排序.然后: 1)假设数组的长度为 n,我们先枚举 a,它在 ...

  7. 解题报告 (十四) 数位DP

    文章目录 数位DP 解题报告 HDU 4722 Good Numbers HDU 2089 不要62 HDU 3555 Bomb HDU 3652 B-number PKU 3252 Round Nu ...

  8. leetcode解题思路分析(一百三十四)1131 - 1143 题

    1131.绝对值表达式的最大值 给你两个长度相等的整数数组,返回下面表达式的最大值: |arr1[i] - arr1[j]| + |arr2[i] - arr2[j]| + |i - j| 其中下标 ...

  9. python 重定向 ctf_CTF web题型解题技巧 第四课 web总结

    以下内容大多是我在学习过程中,借鉴前人经验总结而来,部分来源于网络,我只是在前人的基础上,对CET WEB进行一个总结: --------------------------------------- ...

最新文章

  1. 15个Spring的核心注释示例
  2. 【SSH框架】之Hibernate系列一
  3. 【若依(ruoyi)】layui upload
  4. C++关于虚基类、构造函数、析构函数、成员对象的两个程序浅析
  5. WCF安全之ASP.NET兼容模式
  6. java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...
  7. 暴力修改SElinux权限
  8. An Easy Problem(信息学奥赛一本通-T1223)
  9. python拆开tuple为多个值传入函数(tuple拆包)
  10. 依赖反转原理,IoC容器和依赖注入:第5部分
  11. Ubuntu 平滑升级到PHP7
  12. C#winform可视化(当主窗体不能拖动时)
  13. STC8G七彩数字时钟、GPIO设置、DS1302使用、热敏电阻测温、SM5166P和MBI5024控制数码管显示
  14. Excel中排序和筛选
  15. java飞扬的小鸟,三国战纪,网络飞车游戏知识总结
  16. 【Angular】Angular使用HTTP的GET/POST下载流文件
  17. July 16th 模拟赛C T2 奶牛晒衣服 Solution
  18. 数据包设置了不允许分片Don't fragment: Set
  19. 关于B/S模式系统的设计与实现
  20. openvpen最新安卓中文版_Plotagraph安卓中文版下载-Plotagraph安卓手机版下载V3.6.9最新版-西西软件下载...

热门文章

  1. 前端 圆形进度图_js圆形进度的实现,可以自定义进度图标
  2. SO逆向入门实战教程十:SimpleSign
  3. oracle取消表空间自增长,oracle_创建表空间_临时表空间_修改表空间_以及自增长...
  4. OpenCv 入门 -- 对小猪佩琪进行平滑处理
  5. python输入姓名专业班级口号_口号标语之计算机专业班级口号
  6. CODING 助力中手游甩开低效桎梏,尽情奔向游戏王国
  7. 解决在smart lock没有人脸解锁的问题
  8. java stringformatter_Java 字符串格式化 —— java.util.Formatter
  9. iphone html数字键盘,iPhone 11 使用系统自带键盘的 6 个小技巧
  10. Microbiome:野生哺乳动物的皮肤和肠道微生物对核污染的反应