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

这个问题是在网易公开课上看到的,传送门: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..............

时间: 07-29

《灯亮or灯灭》 --有个有趣的数论问题的相关文章

四、按键控制LED灯亮灭

材料: 1.SAGOO UNO 1块: 2.按键模块 1块: 3.杜邦线若干. 步骤: 1.按照下图连接按键模块和UNO: SAGOO UNO引脚                                      按键模块引脚 3V3  <------------------------------------>    V(电源) GND <------------------------------------>    G(电源) Pin2  <----------

通过linux命令来控制板上GP_LED灯亮灭

通过linux命令来控制板上GP_LED灯亮灭 下图是在某网站找到的,这里我们可以看到GP_LED 是跟GPIO3相连.至于GPIO13,在此图上看,跟GP_LED没有啥关系,但为什么在blink草案中,却能控制GP_LED,这个留在下一帖.这里主要是通过对GPIO3的控制来实现GP_LED的亮灭. 下图是从开机到控制GP_LED亮灭的过程. 1.进入gpio的目录 2.通过ls指令可以看到在gpio目录下各个gpio口,这里找到gpio3 3.进入gpio3的目录 4.cat directio

TQ2440按键点亮LED灯的裸机程序

一,说到做ARM的裸机程序,很多人马上就会联想到一个名为ADS的开发工具,但是我们在linux下同样也可以做ARM的裸机程序,下面来说说其具体实施过程: 步骤一:编辑代码,这个没什么好说的. 步骤二:编译代码,编译代码分为三个方面的内容:1.链接脚本 2.用命令行确定链接时的文件顺序 3.用命令行编译.这三部分的内容可以全部写成一个Makefile文件,编译的时候执行make命令就可以了. 步骤三:把编译后的".bin"文件烧写进开发板,重新上电观察效果. 二,TQ2440按键点亮LE

阅读笔记之《你的灯亮着吗》第三、四章

三.什么是真正的问题? 一家计算机生产商开发的新型打印机打印速度快,但精准度却非常不理想.这个工作组里最年轻的工程师丹研制出一种方法:改变下面显示的铝条,上面嵌着小针,可以很精确地在指定的点上扎出小洞来.丹的老板非常高兴,却在无意间被小针扎到了.也就是说,丹解决了一个问题,但这个解决方法又带来了新的问题.我们永远都不能消灭问题,但我们可以通过将产生的问题的影响变小来优化这个解决方法.即把问题放在“别人家的后院儿里”.这种技巧叫做转嫁问题.无疑是一种比较有效的方式.而后,作者又接连举出了几个实例来

你的灯亮着吗--随笔1

<你的灯亮着吗>是著名思想家温伯格的一本定义分析和解决问题的书籍.问题解决的第一步应该是描述问题.问题是你期望和和你体验间的差别,要分析和解决问题时候首先需要搞清楚什么是真正的问题,问题从哪里来是谁的问题等内容.在工作和生活中常犯的毛病是扭曲问题定义,自己人为的去解释和翻译问题从而导致把问题的解决方法做为问题的定义. 从而导致后续一连串的错误. 我认为本书的一个重要的点就是告诉大家如何去正确的认识问题,去定义一个问题.

《你的灯亮着吗》第五篇、第六篇总结

第五篇讲的是问题是从哪儿来的?由一个叫珍妮特去波兰拜访她的祖母在旅途中遇到的麻烦引出主题.一开始她把问题推到“官僚主义”上,她感觉这似乎是最恰当的.但是最后她发现她十分倾向于把整件事归咎于“官僚主义”,之后她提出了一个至关重要的问题:问题是从哪儿来的?从这点出发,她成功找到乐各种备选答案.后来,珍妮特想这个问题的根源也许是她自己.她开始以正常的心态面对曾被她称作灰脸先生的人,他们顺利的交谈,最后事情的到了解决.一切都正常的进行着,一旦你确定问题真正从哪来,尤其是因为问题的根源常常在你自己身上.

你的灯亮着么阅读笔记1

你的灯亮着么事这并不是一本关于程序员如何编程的书,而是教我们在面对问题时如何思考.解决问题,让我们在生活中变得聪明,智慧的处理问题. 第一章问题是什么.这章通过电梯的问题,告诉我们分析和解决问题时,首先要明确的定义问题.书中说到:“问题其实就是你期望的东西跟你体验的东西之间的差别”.这句话我十分赞同,这也正是软件开发中客户的需求与程序员做出软件之间的差别. 第二章这个问题什么.比利的故事告诉我们,不要把解决方案当成问题的定义..“你永远也不能肯定你有了个正确定义,但是永远不要放弃寻求它的努力“,

《你的灯亮着吗》读者笔记(三)

解决问题是最后一步,建立在分析问题基础上,解决问题有多条途径,如果通过各种约束条件选择最佳的途径来解决问题是需要考虑的重要因素.问题解决后要及时进行归纳和总结,形成自己的知识库. 当你在寻找问题定义的道路上疲倦地游荡时,不要忘记随时都回头看看,看看你是不是已经迷路了. 一旦你用文字来表达一个问题,请仔细推敲这些文字以使这种表述在每个人的头脑中都是一个意识. 如果这是他们的麻烦,就让它成为他们的麻烦. 当别人能够很好地解决自己问题的时候,千万不要越俎代庖. 如果某人能够解决这个问题,但是他本人却并

《你的灯亮着吗?》阅读笔记1

<你的灯亮着吗?> 目前才看了这本书的三分之一,不过对我来说很有针对性,感觉有达到那种一针见血的目的,也就是主旨大意很明确吧,让我真切能读进东西. 这两章的标题是“问题是什么”和“这个问题是什么?”它从不同的深度和层次上通过故事向我们阐述了当我们面对一些问题时的心理路程,我们不难从中得到体会. 当面对产生的问题时,在提出解决问题的方案之前,我们必须了解谁有问题,或者说这是谁的问题,其次再针对这些人给出对用问题的解释或定义,认识到问题的本质核心.在我们认识问题的过程中你会发现问题其实就是期望的东

《你的灯亮着吗》——读后总结

今天竟然一口气看完了这本书,晚上11点整,刚刚好写点总结. 这本书并不是一下子就能学会的,而是在生活中慢慢去习惯这种思考方式. 还是老样子,先看看这本书都讲了什么? 这本书是一种教别人遇到问题的解决思路的一本书.本书讲了如下的问题: 1 人们遇到问题如何思考? 2 遇到棘手的问题如何思考并解决? 3 对于某个问题何种角度来思考! 针对以上的问题,书中按照下面的章节进行介绍: 1 问题是什么? 2 什么是真正的问题? 3 这是谁的问题? 4 问题是从哪来的? 5 我们真的想解决问题吗? 如何解释“