本帖最后由 天马行空 于 2015-8-17 20:45 编辑
第三题..
首先吐槽下引用 常识告诉我们依次从第一框第二框取1,2……个,最后看差值,就可以计算出来了。 事实上常识告诉我的应该是0,1,2,...个.
然后回到原题..
嗯,必须先澄清一点,多次操作的话,是必须事先决定每一次操作,还是后边的操作步骤可以取决于前边的操作步骤得到的结果?好像并没有明说,那我就猜是后者吧..正常问的都是后者的意思吧..
然后再回到原题....引用 如果有10筐,每筐100个呢,最少需要称几次就一定能找出0.99斤的苹果? 没不同.还是一次.引用 如果有a筐,每筐b个呢,最少需要称几次就一定能找出0.99斤的苹果? 这次不同在哪里呢..显然是上述方法并不能用,因为不能从某框取出"11个"之类的.
那么,切一切,"半个"之类的可以吗?可以的话就没啥好玩的了怎么改都是1次了所以我猜lz肯定不接受..
所以,每次取都只能取自然数个.
等等,称的操作具体是什么?"从所有框中分别取出自然数个称其总重量"?有比这更强大的功能吗?我反正想不到,所以就当是这样吧..(毕竟要是有别的更强大的操作,连"次数"这个概念可能都模糊了甚至都不存在了,所以我就假定lz也规定一次操作就是这样吧..)
那么这样的操作能得到什么信息呢?显然从总重量可以得到重的和轻了的各有几个,于是取的个数和轻了的个数一样的筐就是嫌疑筐,不一样的就是无辜筐;反之,这显然也是等价的,嫌疑筐每一个是犯筐都满足条件和称量结果,同时无辜筐是犯筐也会与结果不符合.
所以,每次操作的所有选择,为选择每筐取的个数,且只能在{0,1,2,...,b}中选择.
假如我给a个筐选的个数是t[0]个0,t[1]个1,t[2]个2,...,t[[/b]b]个b,那么显然此次操作的结果就是我得到了一些无辜筐,而犯筐的个数可能是{t[0],t[1],...,t[[b]b]}中的任何一个(当然,正确的题设和结果不会让我得到某个0).而结果是要确定其中唯一一个犯筐..
不多说了,二分推广N分都得说的话就别看了..我也不证明N分的结论了..总之就是..
次数为ceil(log[b+1](a)).引用 如果有100筐,每筐10个呢,最少需要称几次就一定能找出0.99斤的苹果? 由上述结论,次数为ceil(log[10+1](100))=ceil(1.920505135...)=2.
ps.怎么这结论写着看起来这么眼熟..乃该不会前两次就出过结论是N分的东西吧.. |