趣味算法两则~

今天在SL群里和别人扯淡,说到了算法,讨论了几道小题,现总结如下:

1、秤糖问题

有十包糖,每包里有10粒糖果,每包重1克,其中有一包糖很特别,每包重2克,现有一个电子秤,请只量一次找出哪包糖特别?

首先把所有糖包编号,从1-10。然后从1号拿1粒,2号拿2粒,3号拿3粒……10号拿10粒。然后秤得重量X。我们知道如果正常的话,重量应该是10!=55,结果肯定不是,因为有一包重了,所以X-10!就是结果。

2、小老鼠试验问题

有1000瓶药,有10只小老鼠,药可以混合,如果让这些小老鼠们只吃一次药就测试出哪瓶有毒?

首先将1000瓶药编号1-1000,把10只小老鼠也编上号1-10,然后将1-1000号转成二进制,让这些小老鼠按自己的编号试指定位的药,就是1号小老鼠试第一位为1的药,N号小老鼠试第N位为1的药,如果指定位小老鼠挂了,则1号有毒,如果没挂,则0号为有毒。这样就可以测试出有毒药的位编号,再转成10进制,就知道哪个药有毒了。

posted on 2010-04-27 21:00  寻雨  阅读(344)  评论(0编辑  收藏  举报

导航