《灯亮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..............



  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值