无意中在某音看到一个主播, 猜姓氏. 他拿出一些卡片, 每个卡片上是一个 9 列 7 行的表格, 里面是姓氏. 他问, "这张有没有你的姓氏"? 如果有放左边, 没有放右边. 全问一遍, 猜出你的姓氏.
有个人连线, 所有卡片全没有他的姓氏, 就最后一张有. 这个主播也猜到了. 每张卡片 63 个姓, 怎么能猜到?
1
geelaw 278 天前 via iPhone 1
n 张卡片问答可以提取 n 位的信息,因此利用 n 张卡片问答可以准确识别 2^n 个可能的姓氏中的某个。
简单的设计是这样的:选定 64 个姓氏作为可能的答案,编号 0 到 63 ,然后准备 6 张卡片,每张 63 个位置,第 k 张卡片包含且仅包含第 k 位是 1 的姓氏。注意 0 号姓氏不会出现在任意一张卡片里,所以 63 个位置足够了。每张卡片的空白位置填入一些不在原定 64 个姓氏里面的字/双字充门面。最后根据答案查表即可知道是 64 个姓氏中的哪一个。 这 64 个姓氏可以选人数最多的,最大化能够覆盖的人口。 |
2
Mutoo 278 天前
以前 Flash 有个读心术游戏,猜是是图案,原理一样,正如一楼所述。
|
3
loading 278 天前
就算是基础算法:二分法
1-1000 ,用二分法,也只要问你 7 次。 |