欢迎光临散文网 会员登陆 & 注册

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

2021-10-06 09:59 作者:1048576_  | 我要投稿


1000酒2毒,共有20只鼠:

如果有1毒,可用 log2n = 10鼠搞定。

每瓶酒有0-999的编号

要用二进制表示



00:41



如果知道|a-b|的话,只需要知道a+b就可以了。

老鼠:

  1. 喝{i|i&1=1}
  2. 喝{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...等待进一步思考把

2瓶毒酒问题:这可能是你算加法最费劲的一次的评论 (共 条)

分享到微博请遵守国家法律