最近在备战学校的拔尖班考试,学习了一些智力题的解法,写点自己的理解
致谢:https://blog.csdn.net/weixin_46822367/article/details/121407965?ops_request_misc=%257B%2522request%255Fid%2522%253A%25228343925E-94ED-4489-91C1-
二进制:
1.问题:有1000个一模一样的瓶子,其中有999瓶是普通的水,有1瓶是毒药。任何喝下毒药的生命都会在一星期之后死亡。现在你只有10只小白鼠和1个星期的时间,如何检验出哪个瓶子有毒药?
非常经典的问题了,先将所有瓶子用二进制编号,10只小白鼠正好覆盖2^10(从00000000001111111111)>1000,返回编号即可找到瓶子
2.问题:工人为老板打工,工作七天可以获得一块金子,工人每天可以分得一点金子,老板必须每天发相同大小的金子,不能多给,也不能少给,把这个金子切两刀,就可以每天给工人发工资,请问怎么切?
上面问题的变式,将一块金子看作7“点”,问题等价于如何用3bit覆盖1-7,显然由于0b111=7,只需1,2,4三个数即可,即切成1/7,2/7,4/7
今天先这样~