上面这个现象呢,是男生上厕所时的一种微妙状态。两个男生往往会由于尴尬而不愿意站在相邻的坑位上厕所。我将其命名为男厕所的泡利不相容定律。


一、男厕尴尬定律简介

先给大家科普一下男厕所的构造,小便区是一排立式坑位。好的厕所有隔板,阻挡隔壁视线,营造私密空间,但更多的情况是这样的。

所以男生通常会离其他人尽可能远。

这也合理,社会学研究表明,人的社交距离分四级:亲密、熟人、礼貌、一般。亲密距离是0-45cm,情侣之间才会离这么近。

两个男生萍水相逢,却在亲密距离内做亲密之事,难免有些哈兹卡西。

如果不说点什么,尿声无法掩盖;如果旁边人盯着你,你会很不自在;如果互相攀比尿液动力学,又有一点变态。有同感的话请在评论里打尴尬。

但这时你会发现一个问题!男生的尴尬心态导致了男厕所坑位利用率显著降低!

考察一个4坑位厕所,第1个人进来占据1号坑,第2个人占据最远的4号坑,第3个人进来就无坑可占了,因为两边都有人。

考察7坑位厕所,第1个人进来占据1号坑,第2个人占据7号坑,第3个人占据4号坑,第4个人进来又没法上了!7个坑位只能容纳3个人!

同理易得,13个坑位的厕所其实只能容纳5个人!男生的一点面子竟然造成了社会资源极大的浪费!

顺带一说,后来在SCP基金会官网上我竟然看到了类似的记录,据说是一种超自然现象,目前仍无法进行完全收容。

因此不一定是广大男同胞面子薄,可能是你受到了超自然的影响。

想到这里我不禁陷入沉思。一个厕所的坑位数量和它能容纳的男生人数满足什么关系呢?最优秀的厕所应该设置多少个坑位,才能避免客人尴尬呢?

作为SNP大一统理论创始人,今天我就来和大家计算一下,男厕尴尬定理。


二、简单计算

基本模型如下:

试求该厕所可同时容纳的男生数量m与n的关系,记为m=f(n)。下面我们来给出一些合理的假设。

男厕第一定律,又称就近定律:第1个男生为了图方便,总是进入1号坑位。

男厕第二定律,又称尴尬定律:与女生不同,男生从不结伴,总是独立进入厕所,后来的男生总会选择离左右男生尽可能远的坑位。

男厕第三定律,又称泡利不相容定律:男生永远不挨着上厕所。

下面计算f(n)。做对的同学请在评论里打简单。我来提供一个求解思路。

如果n是奇数,第1个人进入1号坑,第2个人进入n号坑,第3个人进入正中间的(n+1)/2号坑。这时左边这(n+1)/2个坑能容纳多少人呢?

不知道,但总之就是f((n+1)/2)个人。右边这(n+1)/2个坑能容纳多少人呢?也是f((n+1)/2)个人。现在我们虽然求不出f(n),但我们知道了,

减1是因为要扣掉中间这个重复的人

如果n是偶数,则第1个人进入1号坑,第2个人进入n号坑,第3个人进入正中间的n/2号坑。这时左边这n/2个坑能容纳多少人呢?

不知道,但总之是f(n/2)个人。右边这(n/2+1)个坑能容纳多少人呢?f(n/2+1)个人。所以这时

到此为止,我们虽然不会正面求f(n),但我们得到了这样上面这组公式。

然后简单编个程就可以计算了,画出男厕所坑位函数图像长这样。

结果非常amazing啊!随着厕所坑位数量增长,能同时容纳的男生数量阶梯式上升,坑位利用率振荡式下降,最后在1/2和1/3上下反复横跳。

厕所坑位函数有一个独特的性质:当坑位从2^k+1增加到1.5*2^k+1时,能容纳的男生数量是不变的!都等于2^(k-1)+1。

比如9、10、11、12、13个坑位的厕所,都只能容纳5个人。

这告诉我们,不要盲目修太多坑位,有时候你修了也白修,男生根本就不进去。

稍加计算就会发现,一个拥有1亿个坑位的宇宙级宏伟厕所至多同时容纳33554433个男生,剩下66445567个坑位都会因为尴尬而被浪费掉!浪费率高达66%!

从利用率曲线来看,对于日常的厕所而言,修3、5、9、17个坑位会比较科学,利用率是最高的。修4、 7、13个坑位是最坑的。

如果我的观众里有厕所设计师的话,希望这个结论能引起你的重视。

三、进阶:男厕里的伟大思想

刚才我们解决的虽然只是厕所里一个微不足道的问题,但你仔细思考就会发现这个男厕所中,竟然蕴含着一种伟大的思想!

要求n个坑位能容纳多少人,如果你排列组合分类讨论,是很头疼的。

但我们把这个问题转化为了n/2个坑位的厕所能容纳多少人的问题,然后又能转化为n/4的问题,一直分下去,最后一定能转化为3个坑位以内的简单问题。这个一眼就能看出答案了。再一通合并,就能推出n个坑位的情况。

这种做法,就是我们小学二年级就学过的分而治之算法

它的字面意思很朴素,但揭示了一种哲学思想:

把一个复杂的大问题分解为几个相似的小问题,不断分解,直到它变成一个个足够小的容易解决的问题,就能治住它们,再合并解决开始的复杂问题。本质上就是个套娃思想。

举个通俗的例子,大老板要写论文,把论文前一半给1号小老板写,后一半给2号小老板写,自己合并润色。

每个小老板又把他的部分交给两个博士生写,自己合并。分而治之,十分合理。结果有个博士生PS了数据,小老板没发现,就把大老板坑了。

分而治之在数学和算法中有广泛的应用,典型的像排序。我们大家学的第一个排序算法都是冒泡排序。依次比较相邻元素,如果顺序不对就交换。这种算法非常慢,时间复杂度是O(n2)。

但用分而治之就可以提出什么排序啊?哎对!归并排序和快速排序

比如你家套娃洒了一地,我们用快速排序。首先任选一个娃,将其他娃与之比较,比它大的扔它右边,比它小的扔左边。

现在这个娃已经找到了它最终的位置,整堆套娃被分成了左右两个部分。在这两部分中分别再取一个娃,比它大的放右边,小的放左边。

不断套娃式重复,套娃的排序就快速完成了。快排和归并的时间复杂度都是O(nlogn)。所以要想治住套娃,还是得用套娃。

这个视频就直观地演示了三种排序算法的原理和效率。

为什么分而治之会比直接刚之更加优秀呢?

这是因为,大规模问题的复杂度往往要远远高于小规模问题。

因此把大问题拆成容易的小问题,再递归地解决它们是划算的。分治在大整数乘法、矩阵乘法、求特征值、快速傅里叶变换当中都有应用。

比如两个8位数相乘,直接乘就要做64次个位数乘法。但我们可以分而治之,用小学二年级就学过的Karatsuba算法,把8位数分成高位和低位两部分,一通变换猛如虎,就只要做6次加法和3次4位数乘法,相当于只有48次个位数乘法。

对电脑而言,加法比乘法好算,对人好像也是吼……把4位数乘法再次分治,乘法次数大大减少,计算效率显著提升。

理论上讲,2个1024位整数相乘,本来要做105万次乘法,但分而治之后就只要6万次,按现在的神童标准,口算都能算出来了。

这就是分而治之算法的威力。如今计算机的突飞猛进,既来自算力的提升,也来自算法的进步。一个巧妙的变换,就能让解决问题的时间缩短百倍,这便是算法之美,是人类强于计算机的智慧啊!

分而治之,不光是一个算法思维,还是一种交朋友的方式。今后当你在男厕所里提着裤子等位的时候,不妨试探地抛一句

如果前面的人惊喜地回你一句

那这期视频就让你们突然有话题了!你们可以聊一聊这家厕所的坑位利用率是多少,玩一个套娃排序,算一个大整数乘法。

分而治之让厕所里原本无言的尴尬化为亲密的会心一笑!正道之光从此照在厕所之上。

感谢大家管看本期文章,希望给我点赞、在看,支持一下!我们下期再见!

参考文献

1、Jon Kleinberg, Éva Tardos. Algorithm Design[J]. Prentice Hall, 2005.

2、Cormen T H , Leiserson C E , Rivest R L , et al. Introduction to algorithms, third edition Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest, Clifford Stein[J]. Journal of the Operational Research Society, 2001, 42(9).

3、Cuppen J J. A divide and conquer method for the symmetric tridiagonal eigenproblem[J]. Numerische Mathematik, 1980, 36(2): 177-195.

4、 Karatsuba, Anatolii A.; Yuri P. Ofman (1962). "Умножение многозначных чисел на автоматах". Doklady Akademii Nauk SSSR. 146: 293–294.

5、Strassen, Volker, Gaussian Elimination is not Optimal, Numer. Math. 13, p. 354-356, 1969

6、Huang, Jianyu; Smith, Tyler; Henry, Greg; van de Geijn, Robert (2016). Strassen's Algorithm Reloaded. International Conference for High Performance Computing, Networking, Storage and Analysis (SC'16)

7、Richard Tolimieri, Chao Lu, Myoung An. Cooley-Tukey FFT Algorithms[J]. 1997

mfc文字闪烁如何解决_男同胞福音!如何解决尿尿时最尴尬的难题?建议偷偷收藏(文字版)...相关推荐

  1. 网站被挂马怎么解决_网站被黑解决办法

    网站被挂马后,我们打开的页面重则整个页面都被篡改为对方的页面,轻则打开看不出变化实际上在搜索引擎我们的标题和描述都被不法分子修改了,不看源代码我们都不能够轻易的察觉出来.接下来我们来看看这一类网站被黑 ...

  2. 双网卡上网冲突解决_双网卡冲突解决方法——route命令

    为什么我手机连上了wifi,电脑也连上了wifi,但是电脑不能上网?有时候电脑上网一秒就掉线? 你是台式机么?你是有一条网线在机子屁股后头么?你是双网卡吧?一条网线连接的是内网,无线网卡用的是外网wi ...

  3. 电脑反应慢卡怎么解决_电脑键盘失灵怎么解决

    键盘是电脑中重要的输入设备之一,但在使用的过程中有时可能会碰到键盘失灵的问题,该怎么办呢?别着急,接下来,小编我就来给大家详细的介绍一下电脑键盘出现怎么办,并将解决键盘失灵的操作方法来分享给你们. 电 ...

  4. cp210x驱动运行不了怎么解决_【问题】解决Android8.0以上运行不了uiautomatorviewer的办法...

    问题:Android8.0以上,打开uiautomatorviewer.bat,报错,提示:Unexpected error while obtaining UI hierarchy 解决办法: 可以 ...

  5. vba下标越界9怎么解决_铝模气泡怎么解决?看9个常见问题防治

    随着新型模板技术在建筑施工领域的推广应用,铝合金模板应用于发展势头迅猛. 通过对已完成工程的混凝土结构进行调查分析,统计出影响混凝土成型质量的两大主要质量缺陷:气泡麻面和墙角烂根,这我们该如何解决? ...

  6. 小程序引入的echarts过大如何解决_小程序如何解决社区团购的痛点

    首先小猪V5社区团购小程序带我们先来了解一下,什么是社区团购.社区团购是以小区为单位,以微信为载体整合多个社区社群资源,为社区居民提供日常所需商品.生活服务,集中化管理运营的一种商业模式.那么社区团购 ...

  7. csv逗号分割不兼容 解决_关于Excel保存为csv文件时提示 “可能含有与CSV(逗号分隔)不兼容的功能”...

    关于Excel保存为csv文件时提示"可能含有与CSV(逗号分隔)不兼容的功能" 当我们用Excel去保存一个文件为 .csv文件时,会弹出对话框: *.csv 可能含有与CSV( ...

  8. 空间留言软件_四款高质量高性能优质软件,强大还免费,建议偷偷收藏使用

    从软件质量的角度上,小编精心寻找了几款高质量软件,在这里一一与大家分享,希望能为大家所用. WizTree 一款超强的windows磁盘分析软件. 如果磁盘占用空间多,文件凌乱时,我们可以使用它来分析 ...

  9. c#打印乘法口诀_小学数学所有公式和顺口溜都在这里了!建议家长收藏打印!...

    在小学数学的学习过程中,概念和公式是很重要的,当学生在做数学题时,就会想到相关的概念和公式. 数学公式学的好,解题时会很方便,只要把各个条件套到公式里,就可以准确.方便.快捷的求出解. 这就足以说明记 ...

最新文章

  1. 【电路】pmic芯片设计细节
  2. 如何去除使用inline-block之后的间距(二)?
  3. Java_io体系之BufferedWriter、BufferedReader简介、走进源码及示例——16
  4. Map、HashMap、TreeMap、LinkedHashMap
  5. 怎样在 Markdown 中使程序代码带上行号
  6. 日志库EasyLogging++学习系列(10)—— 日志文件滚动
  7. C语言用循环写出新年祝福语图案,非常漂亮的新年祝福!C语言实现漂亮的烟花效果...
  8. 来看看Python炫酷的颜色输出与进度条打印
  9. OpenCV3.4.3+Qt5.9.4(QtCreator)开发环境搭建
  10. Android系统中用C语言来编写服务程序并且开机自启动运行服务
  11. ActiveRecord 复合主键时 实体转换为DataRow
  12. 浏览器在线PDF预览取消下载按钮
  13. 哪个选项是python语言_关于Python语言的描述,错误的选项是______。???????????????????????????????????????...
  14. 第十七届全国大学生智能车竞赛航天智慧物流获奖证书
  15. linux gpu 地址空间,显卡内存和进程的虚拟地址空间
  16. 《机器学习》课后习题 3.4 选择两个 UCI 数据集,比较 10 折交叉验证法和留 法所估计出的对率回归的错误率.
  17. html 截取指定字符串长度,前端js截取指定长度个数字符 v2.0.0
  18. 901.freeswitch常用命令
  19. 中国大学慕课公开课-《视听语言》-学习笔记-4
  20. The environmenthvariable 'Path' seems to ave some paths containing characters (';', '' or ';;').

热门文章

  1. 图像语义分割_图像语义分割(9)-DeepLabV3: 再次思考用于图像语义分割的空洞卷积...
  2. 遥感原理与应用孙家炳_2.2遥感应用模型
  3. pixel和毫米怎么换算_赶紧收藏!小学阶段所有公式、单位换算、数量关系
  4. 无光驱如何修复W7计算机,Win7电脑没有光驱怎么装系统?
  5. 安卓超过两行就加省略号_基础标点符号使用规则详解—8.省略号
  6. 大数据基础学习三:Ubuntu下安装VMware Tools超详细步骤及需要注意的问题(以ubuntu-18.04.3、Mware Workstation 15.1.0 Pro为例)
  7. python模块名限定_python 正则表达式 匹配 ?的使用 限定符 sys.re模块
  8. php源码安装配置,php源码安装时configure配置参数 | 学步园
  9. Normalization 归一化方法 BN LN IN GN
  10. Redis(九):Redis特殊类型之geospatial