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

以前写的这篇,发在了我的博客园上,现在也发到我的csdn上。


这个问题是在网易公开课上看到的,

传送门: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..............



猜你喜欢

转载自blog.csdn.net/major_zhang/article/details/79603513
今日推荐