码迷,mamicode.com
首页 > 其他好文 > 详细

《灯亮or灯灭》 --有个有趣的数论问题

时间:2017-07-29 11:32:10      阅读:115      评论:0      收藏:0      [点我收藏+]

标签:数论   关系   范围   htm   分享   qos   解析   传送门   nbsp   

这个问题是在网易公开课上看到的,传送门:http://open.163.com/movie/2016/7/4/U/MBQOS0ID9_MBQOSMH4U.html

问题描述:

  有100个灯泡,编号为1~n,开始都是灭的off状态,在第i回合按下所有编号为i倍数的的开关,灯泡转换一次状态,100回合,问最后有多少灯泡是on亮着的?

技术分享

 

问题解析:

  提示:每一轮我们按了什么编号呢?

  回合和编号有什么关系?

  结果:

  如果当前回合是该灯泡编号的因数,该灯泡一定会被按。回合数范围是0~100,那么问题也就转换成了:

技术分享

 

  例如:

技术分享

编号8号等,它的因数有1,2,4,8,那么它将在1,2,4,8回合会被按一次,结果最后还是off状态,因为因数的个数为偶数次。

 

结论:

  所以最终也就变成了找灯泡编号的因数有奇数个的个数,因数都是成对出现的,只有完全平方数,最后一个对是相同的,那么就找1~n,i^2小于100即可。

那么就有 1 4 9 16........81 100.

  观察这些数的分布:

  技术分享

  相差成奇数递增间隔的分布,1到4,4到9,9到16,分别隔3,5,7.

 

Over..............

《灯亮or灯灭》 --有个有趣的数论问题

标签:数论   关系   范围   htm   分享   qos   解析   传送门   nbsp   

原文地址:http://www.cnblogs.com/zhangmingzhao/p/7253947.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!