请问如何用二进制解答下题?

二十年后的今天,海南民主共和国第一任大总统就职典礼上准备了10000桶酒宴请外宾,但是其中有五桶被反对者偷偷下了毒,请问至少需要多少头前共产党员才可以试出哪五桶有毒?

请给出具体解题过程
白头山伟人金正恩 卓越した領導者、 最高司令官、 革命武力の最高指導者、 不世出の先軍統帥者、 党・軍・人民の最高指導者
支那最優解:五頭
過程如下:
[li]槍斃五頭共產黨員,倒掉五桶酒[/li][li]宴請外賓[/li][li]如果過程2中有外賓被毒死,槍斃報導的記者[/li]
Ganondorf 塞尔达传说玩家
如果用二进制那个思路解,你得先把每五桶酒进行混合,有会得到C(10000,5) = 832,500,291,625,002,000
这个巨大的数字

然后 求 min(log_{2}x) s.t. x > C(10000,5) 。

 注意,x得有10的18次方 也就是要 1 Quintillion

2的60次方是大于 1 Quintillion最小的数,所以按这个算法答案是60. 但60可能不是最小值,因为可能存在其它算法比二进制方法简单。
ollapse"> 请刘仲敬品酒,一次品一小撮酒,如果品到有问题的酒刘仲敬就会拉肚子,但是不会GG,直到全部品完刘仲敬才会因酒精中毒不幸逝世
girl 新注册用户 233
不就是5头就行了嘛。只要喝不死就往死里喝。贪心算法就行。。。。
Jero 演歌界の黒船,日本第一位黑人演歌歌手,2008年日本唱片大奖最优秀新人奖
如果是最少的话,特殊情况下,无需死人:

依次试喝,只要喝不死,就要一直喝,正巧最后武统五桶有毒,喝到还剩五桶的时候,一个人不死就能确认
Nemrac 我们追求善良与智慧
这个问题不能用二进制解决吧,如果有5桶有毒,那就不能只假设“被毒死”和“没事”两种状态,而是C(5N)求和总共32种状态,因此不能用二进制编码,至少是32进制编码,很麻烦。
ollapse"> 共产党员是特殊材料制成的。应该试不出来。
十字军征支大佐 福音派传道人 境外反共势力 亨学家
支國共產黨員太多,就派10000頭好了。
其實題目應該改成1000000桶酒里有999995桶有毒,只有5桶是沒毒的,應該派多少頭共產黨員去把沒毒的酒找出來?
Kerr_Bird 同志,你好,我是跤(蕉)警,请你尻边停车,接受屌插。
前5000桶和后5000桶分别混合成两瓶酒给两个人喝。如果没死就是安全;如果死了,那就分成前2500桶和后2500桶,以此类推。
electric_rain 习近平是傻逼
一万换成二进制是
1001 1100 0100 00
拢共有10位。所以准备二十个杯子。
有一万桶酒,每桶用二进制编号,从0编到上面那个十位的数。
然后那二十个杯子里,就是从第一位到第十位的数,分成A.B两组。比如说给a组的十个杯子编号1~10,凡是桶编号第一位是1的,比如1、11、101和111,都倒到a组一号,桶编号的第二位是1的,倒到a组二号;同理,b组倒进去的是编号0的桶里的酒。
然后给二十个匪谍喝,就能看出来是哪桶酒了。

这种小学数奥题都是脱离实际的。他假设的是毒性巨强,所以不会因为稀释而导致毒不死人。

更新:今天看到了一个类似的题,突然想起来了其实我们有个思维误区。就是,只用五个人就可以试出来了,只要让那五个人一直喝就行,喝不死就接着喝,直到喝死为止🤣🤣🤣🤣🤣
NZRdlClr5 嗆聲完了改回來了
一個黨員也不要
全給外賓喝,領導自己喝別的或者不喝
一群外賓死了,就説是萬惡的美國人毒害的,雖然是在中國的宴會上毒死的但毒是美國人下的
二进制问题
而且你说的不标准,你应该说人喝了立马中毒,而且要一轮就找出5桶毒药
如果是只有一瓶毒药那简单,就是ln10000向上取整
如果是5瓶毒药那就是ln(10000/2)*5*ln(10000/4),不知道对不对
10000 5000 2500 1250 625 313 157 79  40 20 10 5 3 2 1 

15个人

算错了算错了算错了算错了算错了算错了算错了

10000

5000 (2桶) 5000(3桶)

2500 (1桶) 2500  (1桶) 2500 (1桶)   2500(2桶)

1250 625 313 157 79  40 20 10 5 3 2 1 

1250 625 313 157 79  40 20 10 5 3 2 1 

1250 625 313 157 79  40 20 10 5 3 2 1 

1250 625 313 157 79  40 20 10 5 3 2 1 

最多54个
我没太弄明白你的问题,是说10000桶酒,5桶有毒,每个共产党只能试1桶,最后“理论最多”上试了多少次,消耗多少共产党才能彻查毒酒嘛?

那么十进制答案就是9996次啊
然后把9996拆成1024*8=8192
然后
+1024+516+256之后还余下12,我们拆成8+4。

0+0=0
1+0=1
1+1=10

最后得出10011100001100

要发言请先登录注册