将感染者视为小球,分组视为盒子,当感染人数相对于盒子数极少时,大概率小球相对分散在不同的盒子中,所以盒子越小,盒子数量越多,被重新测试的次数就越少(当一个人就是一组时,则冗余测试为零)。但是相对而言,医护工作人员的工作量就成倍增加。
苦了百姓,医护人员省些力气;方便百姓,苦了医护人员。所以真正需要考虑的是两者综合的时间成本。
covidtest <-function(n,N,m) #以n人为一组测试, 共N人接受测试, m人呈阳性; 输出结果为测试次数 { x = 1:N P = sample(x=x, size=m) x[P] = 0 G = floor(N/n) T = N for(i in 1:G) { if(any(x[c((i-1)*n+1, i*n)]==0)) T = T+n } T } covidtest(10,10000000,100000)
写了一个R语言代码模拟次数,其实总的来说分组多少差距不太大,读者可以自己试着运行一下。
我直接艾特红驴 @红护来学数学,本答案参考了 @Fiddie老哥,从比较直观但不严谨的角度来说明一下分组的好处——兼顾了效率和公平。
问题描述:受检人数为n,感染人数为m,其中m远小于n,感染率为p=m/n,数值很小接近于0,假设有多啦A梦的四次元试管,能同时测量无穷多的人,假设每次做检测消耗1个试管。
(1)假设m=1,即只有1个人感染,做一次彻底的筛查在最坏情况下需要多少个试管?
(2)m>=1呢?
(3)假设m>=1,不考虑最坏情况,而是考虑试管的期望消耗呢?
(1)假设m=1,即只有1个人感染,做一次彻底的筛查在最坏情况下需要多少个试管?
一人一管,全部检测!
很明显,有n个人,那就需要消耗n个试管,做 n次检测。这样做保证可以把感染的人给揪出来,但是没有效率,检测时间长,试管消耗大。
那么有没有非常效率的方法呢?
有的,那就是二分法。
什么是二分法呢?
我们想象有这样一个数列,从1排到n,其中隐藏着一个红护,为了方便起见我们把他放在1号位,事实上他在任何一个位置都一样,如图1所示。
我们从中间用拼多多刀法砍一刀,发现上半区有反应,下半区没反应,于是我们丢弃下半区,继续在上半区中间开砍,如图2所示。
通过这样不断地重复逼近,最终一定能够把红护给找出来,最坏的情况是砍到这里才把红护找出来,如图3所示。
假设我们砍了x次,只要保证 ,我们就可以在x刀内把红护砍出来。
求解得 。
回归问题,这种方法能最有效率消耗最少的试管来找到感染者。
但是有一个大问题,那就是——不公平。
因为红护最多要被捅x次,其他人最少只要1次就够。
有没有兼顾效率和公平的方法呢?
有的,这就是我们实际应用中的混检。
假设我们k个人一组进行检测。严谨过程可以参考这个老哥的答案,写的真的很好。
如何用数学知识解答「在进行社区大规模核酸检测时,分成几人一组进行混检效率最高」? - Fiddie的回答 - 知乎 https://www.zhihu.com/question/524417189/answer/2411517075
只需要n/k+k次就足够了。
利用基本不等式,我们知道它的最小值为2n^0.5,k=n^0.5次时取得该值。
为什么说它兼顾了公平与效率呢,请看图4。
x是人数,y是检验的次数/消耗的试管数。
我们可以很直观看出,第三种方法所对应的中间的函数曲线,消耗不多不少,次数也是刚刚好,抱守中庸之道。
关键还挺公平,一个人最多被捅两次。
(2)m>=1呢?
(3)假设m>=1,不考虑最坏情况,而是考虑试管的期望消耗呢?
正如Fiddie老哥所讲,这个最后可以化为优化问题进行求解,通过约束感染率和混检人数,使得混检方法兼顾效率和公平,大幅提升了核酸检测能力,降低了个人检测费用负担,也不影响出具检测报告的时间,这在疫情小范围爆发时很有效果。
我有绝佳的思路过程,但是这里太小我写不下了!
问题:如何用数学知识解答「在进行社区大规模核酸检测时,分成几人一组进行混检效率最高」?
解答: 下面我们记表示不小于的最小整数, 即的向上取整.
假设采取人一组的混合检测, 如果有一个试管出现阳性, 那么就对这个试管单独测试.
(1)当时, 这样一共需要管核酸试剂. 利用基本不等式,
第二个不等号中的等号成立的条件是. 所以我们采取人混检的策略可以使得策略最优(考虑到取整问题, 可能与相差一个很小的常数, 但这无关紧要).
(2)对于, 最坏的情况是每一组都有一个确诊的, 这样一共需要管核酸试剂. 根据基本不等式,
第二个不等号中的等号成立的条件是. 所以我们采取人混检的策略可以使得策略最优.
(3)记感染率, 每组人中, 都没有感染的概率是, 此时只需要检验1次; 而至少有1人感染的概率是, 此时需要检验次. 所以这个人的检验次数的期望值是
接下来为了方便起见, 我们不妨设可以整除, 那么个人一共分成了组, 利用期望的加法性质, 总检验次数的期望为
下面确定使得上式等号右边最小. 设函数
这个函数的最小值不太好求, 但是由于这个函数形式简单, 我们可以把它放进matlab求解, 如下图, 感染率分别为时, 最佳取值分别为. 可以大致发现, 随着减小, 混检人数的最佳取值变大.
更一般地, 我们可以用梯度下降法或者Newton迭代(求导数的最小值)等经典的数值算法, 很快就能求出最佳取值.
不过我们可以顺便算一下什么情况下混检比单独检测更好. 显然, 单独检测一共需要检次. 令, 解得
可知当感染率和混检人数满足上面不等式的情况下, 混检比单独检测更优.
最近以新冠疫情作为背景的数学题或者模型非常多, 例如2021北京高考题、2021南京大学经济学拔尖计划考试题(见文末), 都是用核酸检测来作为出题背景, 这些题把数学融入了我们生活中的各个角落, 让大家觉得数学不再是那么高不可攀.
阿里巴巴全球数学竞赛的预选赛部分其实一直都聚焦于实际, 比如去年的预赛题目就以注射疫苗后留观室的人数来作为背景, 其翻译成数学语言就是在一个有界区域里面的满足一定条件的点可以有多少个.
除了上面与疫情有关的题之外, 还有一些题也是比较有意思的. 我曾经参加过第一届和第二届的竞赛(虽然第二届只答了第一轮的题, 到第二轮的时候跑出去玩了TAT), 印象比较深刻的是第二届的那道用拓扑学来描述张师傅拧面条的题; 而到了第三届还有“后续”, 变成了一道优化题, 用优化的方法来调节古董收音机的收音效果.
而这一届阿里巴巴全球数学竞赛邀请了许多社会人士来出题, 把生活中我们习以为常的细节变成一道道数学题. 利用数学的工具, 激发我们用一个更理性的角度去看待与我们生活息息相关的事情, 也让这次数学竞赛更加大众化.
【2021北京, 18】 为加快新冠肺炎检测效率, 某检测机构采取“合1检测法”, 即将个人的拭子样本合并检测. 若为阴性, 则可确定所有样本都是阴性的. 若为阳性, 则还需要对本组的每个人再做检测. 现有100人, 已知其中2人感染病毒.
(1) 若采用“10合1检测法”, 每10人分成一组, 共10组.
(i)若两名患者在同一组, 求总检测次数;
(ii)若两名患者在同一组的概率为.
记随机变量为总检测次数, 求此时随机变量的分布列和数学期望;
(2) 若采用“5合1检测法”, 检测次数的数学期望为, 试比较(1)中的和的大小关系(直接写出结论).
【2021NJU经济学拔尖考】 假设某城市全体居民人数为. 该城市因防治传染病的要求, 需要对全体居民进行核酸检测. 有两种办法进行全体居民的核酸检测:
(1)每个人的样本分别检验, 这时需要检验次;
(2)把个人的样本混在一起进行检验, 如果结果是阳性的, 那么对这个人再逐个检验, 这时对这个人的检验共需要做次. 假设对所有的人来说, 检验结果呈阳性反应的概率都是, 而且这些人的检验反应是独立的. 试分析满足什么条件时, 办法(2)能够产生比办法(1)更少的检验次数.
数学苦手刷到了一个实用价值很高的数学题,这到底苦手的悲剧还是数学的扭曲?数学已经不是苦手印象中一边抽水一边放水,一边吃草一边长草的时候了吗?记得以前的题目都是一人一狗往前跑,狗子回头把人找,要问啥时候能相遇,疯狗阴影有多少?
现在用核酸人数算,我觉得是跟阳性概率有关的吧,效率的主要问题出在如果出现了阳性重新检测的工作上,所以概率越低,人数越多,反之则越少。
好了,我的数学水平只支持我废话到这里,回答这个的问题是为了贡献一点热度,想看真的大手子科学的解答。
实践出真知。
人在东南亚,核算检测都是自己上,每次都做到手发麻。
开始也是想搞个数学模型,求个最优化啥的,但是奈何比例太高,俩人混检都不一定划算。
所以大部分情况下,还都是一人份的老老实实每个人单独检测。
尤其是现在,奥密克戎,威风的很,速度也快,本地大部分躺平的都不怎么检了,谁不舒服了就自检就可以了。
当然,现在国内的情况还是有搞搞优化的余地的,但是最好还是根据当时当地的实际状况来做,不易太复杂化。
毕竟核酸试剂现在也很便宜了,产能也跟得上,应该不是个大问题了。