老师打电话通知学生事情,假如通知一个学生需要1分钟,一共60个学生,问至少需要多长时间才能通知完?
这是一道典型的会者不难,难者不会的思维题。
第一种,最笨的方式,老师逐个通知,需要60分钟
第二种,分成6个小组,先6分钟通知6个小组长,然后他们通知小组其余9人
6+9=15分钟
等等,老师你说的不对,第一个小组长早就可以开始干活了,他通知完可以帮助其它人通知,这样可以再节约时间
恭喜你,你已经开始独立思考了。你的想法是对的,的确可以让所有的人都忙碌起来,最大效率地解决问题
第三种,我们考虑用2的n次方解决,具体方案如下
第0分钟 1人(老师) 2的0次方
第1分钟 1个学生得到通知 共2人(包括老师) 2的1次方
接下来老师和这个学生一起打电话
第2分钟 又2个学生得到通知 共4人(包括老师) 2的2次方
第3分钟 又4个学生得到通知 共8人(包括老师) 2的3次方
第4分钟 又8个学生得到通知 共16人(包括老师) 2的4次方
第5分钟 又16个学生得到通知 共32人(包括老师) 2的5次方
第6分钟 又32个学生得到通知 共64人(包括老师) 2的6次方
也就是说6分钟除了老师最多能通知到64-1=63人
总结
对于这类题,我们把握的要点就是看通知的人数在不在2的n次方之内,几次方之内就是几分钟,同类题也可以做到秒杀。比如说
因红色暴雨警报,单位要停工,经理打电话通知员工,假如通知一个员工需要1分钟,一共1000名员工,问至少需要多长时间才能通知完?
我们开始数吧,1,2,4,8,16,32,64,128,256,512,1024
1024是2的十次方,1000在2的10次方以内,所以至少需要10分钟才能通知完.
2的n次方的应用——找次品
2的n次方的应用——二进制
2的n次方的应用——汉诺塔