出几个烧脑的智力/算法题,顺便聊聊它们背后的数学

2018-11-06 09:42:02 +08:00
 mathzhaoliang

问题之一:有 12 枚外表一模一样的硬币,其中一枚是假币,其余都是真币。假币的重量与真币不同,但是更重还是更轻不知道。给你一个没有砝码和刻度的天平,最少称几次才能找出假币?

问题之二:有 100 瓶药水和若干只小白鼠,其中一瓶药水是有毒的。正常的药水对小白鼠是无害的,但是有毒的药水则会杀死小白鼠。问最少需要几只小白鼠才能找出有毒的是哪一瓶?

欢迎 v 友们讨论。

12169 次点击
所在节点    算法
121 条回复
jin5354
2018-11-06 16:27:07 +08:00
思维方式都不一样,你就直接分享呗,虽然我预料对于绝大多数码农都是屠龙术了。。
wayne1027
2018-11-06 16:28:50 +08:00
最少的话。。。不就是纯看脸了吗。
1.随机取一枚 A,与另一枚 B 对比,一样重,则两枚都是真币;
2.取一枚真币 A 或 B,另随机取一枚 C,这时候不一样重了,则刚好 C 就是假币。
所以,运气爆炸的话,最少只用两次……轻喷…

楼上的三分法,就是完全不看运气了。
Wincer
2018-11-06 16:32:40 +08:00
第二题是 7 只,2 的 7 次幂大于 100
summerluqman
2018-11-06 16:37:28 +08:00
等待李老师视频
keylor
2018-11-06 16:50:18 +08:00
第一题有比三分法更优的解--四分法。下面论证。
三分法:也就是分成 3 等分,第一次分成 4,4,4,取两份称重,根据重量相等还是不同来确定假币所在的堆,最终要称三次。
优化的四分法:分成:3,3,3, 3 四份。称重两份,那么,如果两份不相等,则再需要一次三分法就可确定假币,两次就找出假币。如果相等,则称重剩余两份,再三分法,需要三次。
总结:优化的四分法有二分之一的概率只要两次即可确定假币,二分之一概率三次确定假币。期望值是 2.5 次。

还有谁能给出比我次数期望更低的解不?
Rizio
2018-11-06 16:51:09 +08:00
@wayne1027 其实看脸的话一次就行了,直接拿一枚说这是假的,比真的轻 /重,蒙对了就行 doge。
keylor
2018-11-06 16:51:11 +08:00
@loryyang 看我四分法
keylor
2018-11-06 16:52:10 +08:00
@Exin 有比三分法更好的
Kirscheis
2018-11-06 16:56:59 +08:00
你的问题太简单了,谈不上烧脑,给大家来个难的

有 1000 瓶药水和若干只小白鼠,其中 2 瓶药水是有毒的。正常的药水对小白鼠是无害的,但是有毒的药水则会杀死小白鼠。问最少需要几只小白鼠才能找出有毒的是哪一瓶?允许每次可以将若干瓶药水搭配起来给某一只小白鼠喝下,且每只小白鼠只能被使用一次

我可以给一个信息论的估计,总信息熵是 S = lg C_{1000}^2 = lg 495000,每用一只白鼠,最少可以得到的信息是白鼠死了或者白鼠活着,则得到的信息熵至少为 S = lg 2,故可以估计出最多需要的数量是 ceil( lg 495000 / lg 2 ) = ceil( 18.9 ) = 19。

请只用 19 只白鼠给出一个构造性的办法
mathzhaoliang
2018-11-06 17:08:44 +08:00
@keylor
@Rizio

题目是要求一定能确保找出假币最少需要称几次
hundan
2018-11-06 17:51:41 +08:00
第一题的问题 就是问在最差情况下的最优解 同学们不要抠字眼拿运气说事啊
SNOOPY963
2018-11-06 18:44:13 +08:00
各位,这个上限是用信息论解决的,至于怎么构造是剩下的事情。第一题很小时候就接触过,今年才突然醒明白这是信息量处理的问题。再一看信息论早已有定论了。
Exin
2018-11-06 18:49:52 +08:00
@keylor 要不你再想想...
SNOOPY963
2018-11-06 18:51:38 +08:00
有 12 个硬币,只有一个重量不同(轻重未知),利用一个无刻度天平,通过 3 次平衡,找出那枚硬币。求解法? - Jun LI 的回答 - 知乎
https://www.zhihu.com/question/21677131/answer/323179768

人家已经有回答了,我就不多说了。
frienmo
2018-11-06 20:40:16 +08:00
第一题背后的数学是信息熵,学熵的时候做题都证明过。
mathzhaoliang
2018-11-06 21:19:14 +08:00
@SNOOPY963 不不不,他的表述漏洞太多,似搭不搭边。
murmur
2018-11-06 22:29:40 +08:00
@Kirscheis 让小白鼠互相繁殖可以么
linKnowEasy
2018-11-06 23:24:27 +08:00
对楼主即将完成的文章很感兴趣.
有博客啥的么?
mathzhaoliang
2018-11-06 23:25:24 +08:00
Xs0ul
2018-11-07 00:04:18 +08:00
@mathzhaoliang #78 现在更新了吗?目录只能看到一个旧的 “称硬币问题与编码理论”

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/504875

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX