2瓶毒酒问题:这可能是你算加法最费劲的一次


1000酒2毒,共有20只鼠:
如果有1毒,可用 log2n = 10鼠搞定。
每瓶酒有0-999的编号
要用二进制表示

00:41
如果知道|a-b|的话,只需要知道a+b就可以了。
老鼠:
- 喝{i|i&1=1}
- 喝{i|i&2=2}
k. 喝{i|i&(1<<(k-1))=(1<<(k-1))}



我们在这里知道了a OR b
02:30

又知道了a AND b

这里其实不需要z,a&b+a|b = a+b

这里尝试证一下
得了懒的证,直接上真值表

可以得到X^Y =Z

UP这里也证了

说实话,我们直接求S都可以了吧


这里:x+y=z+2y,也就是x=z+y,z=x-y,可以这么得。
talk is cheap, show me the 真值表

04:13
这里思考一下怎么求A-B,现在与或抑或都有了。
不借位减法是A^B,借位是(~A&B),Emmm...等待进一步思考把