赞 | 189 |
VIP | 627 |
好人卡 | 188 |
积分 | 95 |
经验 | 171230 |
最后登录 | 2024-7-3 |
在线时间 | 5073 小时 |
Lv4.逐梦者 (版主)
- 梦石
- 0
- 星屑
- 9532
- 在线时间
- 5073 小时
- 注册时间
- 2013-6-21
- 帖子
- 3580
|
加入我们,或者,欢迎回来。
您需要 登录 才可以下载或查看,没有帐号?注册会员
x
本帖最后由 RyanBern 于 2015-2-10 21:23 编辑
大家好,我又来发题了。
最近几天我没有怎么上RM,原因是在忙米国数学建模大赛的事情,尼玛编了3天程序,看了一天论文。现在出来整个人都不好了。
不过期间发生的一个事情挺有意思的,我和别人讨论模型是不是应该用随机游动模型(RW模型,RW是Random Walk的缩写),当时想说RW,结果顺手就打成了RM模型,可见我还是处处惦记着RM论坛的(什么鬼?)
上次似乎的那个三区撕逼大战博弈题目答案还比较清楚,不过有人总是怀疑它会进行无限循环。那个循环是不会的啊,因为有一个人的出发点是确定的,不存在三个人互相为条件的情况,所以肯定不能有循环啊。出现循环的话,不同人决策之间要相互为条件才行,例如,A的决策取决于B,B的决策取决于C,C的决策取决于A。
言归正传,这次的题目应该会有一个比较明确的答案。
第一个说出答案的同学给100糖,能解释方案原理给10~66糖。
酒柜里面有1000瓶酒,其中有1瓶是毒酒,其余999瓶是没有毒的。现在我知道这1000瓶酒中有1瓶是有毒的,但是不知道是哪一瓶,于是我要想办法给它找出来。
这种毒酒是致命,所以我不可能自己把毒酒找出来,因为等我发现毒酒的那一刻就是我死亡的时刻。而且这种毒是一种慢性毒,虽然喝下毒酒必死无疑,但是毒性发作要等到1天之后。于是我找来10只老鼠,只好让它们来替我找毒酒了。其实我本来想找更多的老鼠,但是老鼠也是生命,我不忍心残害更多无辜的生灵了。之前有人也拿老鼠做过实验,只要老鼠喝下有毒的酒,不管酒的剂量如何,它都会在1天之后毒发身亡。
更糟糕的是,留给我找出毒酒的时间并不多,因为我的酒店明天要来很多客人,他们到时候肯定要喝不少酒。我不是什么土豪,所以实在不舍得扔掉这1000瓶酒,所以我还是在1天之内把这个毒酒找出来的好。可是我要如何去做呢?
下面明确一下条件:
1.能够鉴别酒的毒性的方法只有一种,就是让老鼠去喝,然后在观察一天之后老鼠的情况。此外没有其他任何物品可以直接用来检验酒中是否有毒。
2.如果觉得道具不够,可以自行添加,不过添加的道具不允许有检测毒酒功能(例如再加10只老鼠,或者直接弄个什么毒性检测仪啥的)。这个条件大家理解一下就好,大概意思就是你只能用其他道具来辅助你的方案执行,加的道具坑爹与否一看便知。
3.老鼠只要喝了毒酒,就一定会死,不管剂量如何。死亡时间是在一天之后,也就是我的最后期限。这点一定要注意。
答案:
发这个帖子的时候,就感觉XD会抢答,VIP会撞车
答案已在VIP的帖子中说明,XD的帖子只用一行就说出了原理,果然是经常写脚本的人。
首先,酒有1000瓶,其中有1瓶有毒,所以可能的情况有1000种,而一共有10只老鼠,每只老鼠喝完酒之后,情况只有两种,死亡或生存。对10只老鼠加以区别的话,老鼠的情况一共有2^10=1024种,显然1000<1024,所以只要用老鼠死亡的组合来表示所有毒酒存在的情况即可,此题一定有答案。
首先,准备10个盘子,然后对1000瓶酒进行编号为1~1000,然后将酒的编号换算为2进制数,并用10个0/1表示,位数不够的前面拿0补上。例如,第7号酒的就为0000000111。然后,按照酒的二进制编号给10个盘子里面倒酒,相应位数为1的,就往对应位置的盘子上倒酒,位置为0的就跳过。将所有酒倒完后,将盘子里面的酒摇匀,然后分别给10只老鼠喝下去,第二天观察老鼠死亡情况。如果某老鼠死亡,则将相应位置置为1,如果存活记为0。这样第二天就得到了一个二进制数,这个二进制数代表的编号就是有毒的酒的编号。扔掉那瓶酒即可。
|
|