二分法应用
题目:考虑一个放置魔法石的小游戏,把1000个魔法石分放到10个袋子里,任取其中一个或几个,袋子里的魔法石总数可以凑成1–1000中任意一个数目的魔法石数量。
解析:利用二分法的基本思想,假设任意一个数目为n,每次都取当前数目的一半(如果不能整除则取较小的一半)m,并且总数-m。如果m大于n,则不要m,否则加上m。反复这个过程,直到m1+m2+m3。。。为所要凑的数即可。显然,2^10=1024>1000,所以分装为十袋就可以凑出1–1000中的任意一个数目了。
顺便给出十个袋子里面石头的个数:500,125,62,31,16,8,4,2,1,1。