阿拉丁神灯?——对博友问题的思考
《灯背后的奥秘》是校讯通博友“崔丽君”在2009年5月23日发表的一篇文章,(http://blog.xxt.cn/showSingleArticle.action?artId=1160146)文中提到这样一个问题:
那是一个晚上,是爸爸来接我的。回家后,由于天色已晚,爸爸像往常一样把灯打开,突然说道:“你们不是刚学了‘因数与倍数’吗?那就让我来给你出道题吧。”说着,爸爸就开始出题啦。“在一个山洞里,有一万盏灯分别为一到一万号,都是熄着的。这时,有一万个人分别是一到一万号,这些人依次过山洞,他们如果遇到自己整数倍编号数的灯,就要拉一下开关。请问,如果所有人都走过去后,那么会有多少盏灯亮着,会有多少盏灯熄着呢?”
素材来源:河南省济源市东园学校 李姝萌
这道题对于计算机专业的同学来说,应该不难,几句程序即可在电脑上算出:结果是有100盏灯亮着,9900盏灯灭着。
原文作者在文中也给出了这个答案,并给出了思路,但是描述的不是很清楚,对于绝大多数博友来说,还是无法理解的,甚至是一些大学生朋友!现在我就这道题说一些自己的想法,思想还是跟原来的作者一样,只是阐述的清楚一些,希望大家能理解这道问题,爱上数学!
首先,对于数学学得不错的人,可以这样考虑:每盏灯的编号有偶数个因子时,它最后是关着的,有奇数个因子时,它最后是亮着的。而只有平方数才会有奇数个因子,100×100=10000,故只有100个平方数,有100盏灯亮着。
其次,详细解释:初看这道题,感觉无从下手,而且共有一万盏灯和一万个人,穷举法是没办法做了!但是我们可以找一些特殊值来了解一下整个题目描述的过程:
我们从灯的角度来考虑:(为什么从灯考虑,而不是从人来考虑呢?)
第一盏:第一个人拉一下开关——亮了,以后的人均不是1的因子,不会有人再来拉第一盏灯了,故第一盏最后亮着。
第二盏:第一个人拉一下开关——亮了,第二个人也拉了一下,灭了!以后的人均不是2的因子,故第二盏灯最后是灭的!
第三盏:第一个人拉一下开关——亮了,第二个人不是3的因子,故不拉,第三个人拉了一下,又灭了!以后的人均不是3的因子,故第三盏灯最后是灭的!
第四盏:第一个人拉一下开关——亮了,第二个人也拉了一下,灭了!第三个人不是4的因子,故不拉,第四个人拉了一下,又亮了!以后的人均不是4的因子,故第四盏灯最后是亮的!
。。。。。。
总结一下规律:每盏灯有偶数个人来拉时,最后是灭的,有奇数个人来拉时,最后是亮着的;转换成数学语言:每盏灯的编号有偶数个因子时,它最后是关着的,有奇数个因子时,它最后是亮着的。
下面我们就来看一下什么样的数才有奇数个因子。
1=1×1 一个因子 1
2=1×2 两个因子 1,2
3=1×3 两个因子 1,3
4=1×4,2×2 三个因子 1,2,4
5=1×5 两个因子 1,5
6=1×6,2×3 四个因子 1,2,3,6
7=1×7 两个因子 1,7
8=1×8,2×4 四个因子 1,2,4,8
9=1×9,3×3 三个因子 1,3,9
。。。。。。
你看出其中的规律了吗?由于因子总是成对出现的(A=B×C,若B、C不相等),除了平方数之外(如1,4,9,16,25......)。也就是说只有平方数才会有奇数个因子。我们只要找到1000以内有多少个平方数就可以了!
而100×100=10000,即1-100的平方均在10000以内,共有100个平方数,就是共有100盏灯的标号有奇数个因子,也就是最后共有100盏灯是亮着的!
亮着的灯的序号分别是1,4,9,16,25,36,49......,8811,10000.