锁定老帖子 主题:关于万人开关门
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-05
原题: @数学文化:#周末数学题# (转载在美国的一个朋友的电邮)我小孩上初中的第一次数学作业:有1万 个人和1万个关着的门, 第一人把所有的门打开,第二个人把所有的偶数门关上,第三个人把所有三的倍数门打开,第四个人把所有四的倍数门关上,依此类推,1万人都折腾一遍后,哪些门开着?那些门关着? 思考过程: 如果,是按顺序进行,前一人全部做完之后,后一个人才开始做,要做多久啊。 所以,先算出结果,然后,一万人同时做,瞬间解决问题,并且省了无数的无用功。 等等,题目中没说按人的顺序进行的,也就是说,这一万个人,有可能同时开始执行任务的。也有可能,随机开始的。 如果是随机开始,那根本无解。 如果是同时开始的话,全开着。任务同时开始,别人都做完了,第一个人还在做。。。最后,他把所有的门全打开了。 嗯,这就是一道扯蛋的题,所以,只要能解释得通,就算正确吧 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-05
最后修改:2011-06-05
我觉得原题应该是每个人遍历和自己的号码整倍数的门,碰到被关上的门就打开,碰到被打开的门就关上⋯⋯
一个数有多少个因子,就被开关多少次。 被开关偶数次的门最后是关着的,开关奇数次的最后是开着的。(和谁先上没关系哦) 只有平方数的因子数个数为奇数。 所以最后开着的门,号码都是平方数。 代码: (1..10000).filter{|x| Math.sqrt(x).integer?} 结果: 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 9801, 10000 |
|
返回顶楼 | |
发表时间:2011-06-05
那就太复杂了。这不是程序题,是数学题,初一的。所以原题应该没错。我呢,只是觉得数据量太大,发个牢骚而已。
night_stalker 写道 我觉得原题应该是每个人遍历和自己的号码整倍数的门,碰到被关上的门就打开,碰到被打开的门就关上⋯⋯
一个数有多少个因子,就被开关多少次。 被开关偶数次的门最后是关着的,开关奇数次的最后是开着的。(和谁先上没关系哦) 只有平方数的因子数个数为奇数。 所以最后开着的门,号码都是平方数。 代码: (1..10000).filter{|x| Math.sqrt(x).integer?} 结果: 1, 4, 9, 16, 25, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225, 256, 289, 324, 361, 400, 441, 484, 529, 576, 625, 676, 729, 784, 841, 900, 961, 1024, 1089, 1156, 1225, 1296, 1369, 1444, 1521, 1600, 1681, 1764, 1849, 1936, 2025, 2116, 2209, 2304, 2401, 2500, 2601, 2704, 2809, 2916, 3025, 3136, 3249, 3364, 3481, 3600, 3721, 3844, 3969, 4096, 4225, 4356, 4489, 4624, 4761, 4900, 5041, 5184, 5329, 5476, 5625, 5776, 5929, 6084, 6241, 6400, 6561, 6724, 6889, 7056, 7225, 7396, 7569, 7744, 7921, 8100, 8281, 8464, 8649, 8836, 9025, 9216, 9409, 9604, 9801, 10000 |
|
返回顶楼 | |
发表时间:2011-06-05
哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯ 所以结果就是奇数门开,偶数门关 ⋯⋯ |
|
返回顶楼 | |
发表时间:2011-06-06
最后修改:2011-06-06
初一的因式分解题啊,求一个数因子的个数。
给门从1编号,编号因子个数(包括1)为偶则为开,奇则为关。 M=q1^n1*q2^n2*q3^n3......... 判断(n1+1)*(n2+1)*(n3+1)........的奇偶性即可 |
|
返回顶楼 | |
发表时间:2011-06-14
1号门有1个人碰过
2号门有2个人碰过 3号门有3个人碰过 4号门有4个人碰过 .... 答案很明显 啦 |
|
返回顶楼 | |
发表时间:2011-06-14
最后修改:2011-06-14
zhanghh321 写道 1号门有1个人碰过
2号门有2个人碰过 3号门有3个人碰过 4号门有4个人碰过 .... 答案很明显 啦 -1 |
|
返回顶楼 | |
发表时间:2011-06-14
fivestarwy 写道 初一的因式分解题啊,求一个数因子的个数。
给门从1编号,编号因子个数(包括1)为偶则为开,奇则为关。 M=q1^n1*q2^n2*q3^n3......... 判断(n1+1)*(n2+1)*(n3+1)........的奇偶性即可 +1 |
|
返回顶楼 | |
发表时间:2011-06-14
Crusader 写道 zhanghh321 写道 1号门有1个人碰过
2号门有2个人碰过 3号门有3个人碰过 4号门有4个人碰过 .... 答案很明显 啦 -1 -2 |
|
返回顶楼 | |
发表时间:2011-06-14
Crusader 写道 fivestarwy 写道 初一的因式分解题啊,求一个数因子的个数。
给门从1编号,编号因子个数(包括1)为偶则为开,奇则为关。 M=q1^n1*q2^n2*q3^n3......... 判断(n1+1)*(n2+1)*(n3+1)........的奇偶性即可 +1 +1 |
|
返回顶楼 | |