锁定老帖子 主题:关于万人开关门
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-16
zhangchang 写道 liaofeng_xiao 写道 zhangchang 写道 tiandp007 写道 zhangchang 写道 tiandp007 写道 【第N个人把所有的N的倍数门关/开】----注意到【所有的】了没?
第1个门 第1个人 最后一次操作 第2个门 第2个人 最后一次操作 第3个门 第3个人 最后一次操作 第N个门 第N个人 最后一次操作 答案非常明显{1开、2关、3开......10000关} 为什么会有质数、素数、因子、平方数、正则表达式等等高深的讨论? 明显没有看懂题意 哥们,别装那么高深了..说说你的理解和解法。 每扇门被开关的次数就是该扇门编号的质因数的个数。 每扇门最初的状态是“关”,如果门编号的质因数个数是偶数的话,最终状态就是“关”,奇数的话就是“开”。 而在数学上有个很简单的定理,完全平方数的质因数个数一定是奇数个。 所以最终结论就是: 1,4,9,16,25,36,49,64,81 ...... 100^2 以上这些门最后是开着的,其余的门都是关闭的。 请问,第三道门怎么是关着的? 第一个人把所有门都打开了,3号门开。 第二个人把所有偶数门都关上了,3号门开。 第三个人把所有3的倍数的门开关一次,3号门关。 之后的人都不会再去碰3号门了,所以最终状态就是关。 题目是:第三个人把所有三的倍数门打开。。。。 chinaagan 写道 第n个人一定会对第n个门操作,如果n为奇数,则打开该门,如果n为偶数,则关闭该门。所以应该是一半打开,一半关闭吧。
+1 正解 |
|
返回顶楼 | |
发表时间:2011-06-16
最后修改:2011-06-16
main() { boolean isClose=true; boolean[] doorStauts=new boolean[10000]; for(doorNumber=10000;doorNumber>0;doorNumber--){ for(pNumber=10000;pNumber>0;pNumber--){ if(isPWillOperation(pNumber,doorNumber)){ doorStauts[doorNumber]=isClose; break; } } isClose=!isClose; } } boolean isPWillOperation(int pNumber, int doorNumber){ ............ } 如果是顺序操作,反着来会省事一些··· |
|
返回顶楼 | |
发表时间:2011-06-16
suwey 写道 lzyzizi 写道 刚才回头看了下问题,发现有个地方很多人都理解错了,除数的奇偶性无法判断门的开关,因为只有奇除数是关门而偶除数是开门。。。
比如:4的除数 1,2,4。按照质因数分解的思路,他应该是关着的,但是仔细看题会发现2和4都是关门,也就是说1开门以后,2关门,4也关门。。。也就是说4根本不会关心当前门的状态,执行他所应该执行的动作,所以其实门开不开只由最后一个开关人的决定。 night_stalker 写道 哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯ 所以结果就是奇数门开,偶数门关 ⋯⋯ 原来正解早就出现。。。 我也觉得这个解释已经对了。。不知道为什么还有那么多复杂的讨论 答案不是出来了么? |
|
返回顶楼 | |
发表时间:2011-06-17
有1万 个人和1万个关着的门, 第一人把所有的门打开,第二个人把所有的偶数门关上,第三个人把所有三的倍数门打开,第四个人把所有四的倍数门关上,依此类推,1万人都折腾一遍后,哪些门开着?那些门关着?
大家考虑的太复杂了。 第N个人只会把N的倍数的门开或者关,开还是关,是和N的奇偶相关的,奇数开,偶数关。 比如2碰到2号门是被1开了,2关上,3碰到3号门被1开了,3不会重复去开,而是维持原样。 同理4号门被2关了,4这个人看到门关了,不会去重复再关一次的,而是直接跳过。 正解就是1到10000里,奇数门开,偶数门关 |
|
返回顶楼 | |
发表时间:2011-06-17
zhangchang 写道 liaofeng_xiao 写道 zhangchang 写道 tiandp007 写道 zhangchang 写道 tiandp007 写道 【第N个人把所有的N的倍数门关/开】----注意到【所有的】了没?
第1个门 第1个人 最后一次操作 第2个门 第2个人 最后一次操作 第3个门 第3个人 最后一次操作 第N个门 第N个人 最后一次操作 答案非常明显{1开、2关、3开......10000关} 为什么会有质数、素数、因子、平方数、正则表达式等等高深的讨论? 明显没有看懂题意 哥们,别装那么高深了..说说你的理解和解法。 每扇门被开关的次数就是该扇门编号的质因数的个数。 每扇门最初的状态是“关”,如果门编号的质因数个数是偶数的话,最终状态就是“关”,奇数的话就是“开”。 而在数学上有个很简单的定理,完全平方数的质因数个数一定是奇数个。 所以最终结论就是: 1,4,9,16,25,36,49,64,81 ...... 100^2 以上这些门最后是开着的,其余的门都是关闭的。 请问,第三道门怎么是关着的? 第一个人把所有门都打开了,3号门开。 第二个人把所有偶数门都关上了,3号门开。 第三个人把所有3的倍数的门开关一次,3号门关。 之后的人都不会再去碰3号门了,所以最终状态就是关。 1、我已经给你讲解过了,门的(开关)状态只与最后一次操作它的人有关,你列举的时候也有这种思路... 你却偏偏没抽象出来。 2、3号门最后一次操作是第三个人(开),你也说了,之后就都不会再去碰3号门了,你却依然得出结论3号门关! 3、数学上有个很简单的定理,那是因为你记住了。这道题你解错那是因为你死套定理了。 |
|
返回顶楼 | |
发表时间:2011-06-20
tiandp007 写道 zhangchang 写道 liaofeng_xiao 写道 zhangchang 写道 tiandp007 写道 zhangchang 写道 tiandp007 写道 【第N个人把所有的N的倍数门关/开】----注意到【所有的】了没?
第1个门 第1个人 最后一次操作 第2个门 第2个人 最后一次操作 第3个门 第3个人 最后一次操作 第N个门 第N个人 最后一次操作 答案非常明显{1开、2关、3开......10000关} 为什么会有质数、素数、因子、平方数、正则表达式等等高深的讨论? 明显没有看懂题意 哥们,别装那么高深了..说说你的理解和解法。 每扇门被开关的次数就是该扇门编号的质因数的个数。 每扇门最初的状态是“关”,如果门编号的质因数个数是偶数的话,最终状态就是“关”,奇数的话就是“开”。 而在数学上有个很简单的定理,完全平方数的质因数个数一定是奇数个。 所以最终结论就是: 1,4,9,16,25,36,49,64,81 ...... 100^2 以上这些门最后是开着的,其余的门都是关闭的。 请问,第三道门怎么是关着的? 第一个人把所有门都打开了,3号门开。 第二个人把所有偶数门都关上了,3号门开。 第三个人把所有3的倍数的门开关一次,3号门关。 之后的人都不会再去碰3号门了,所以最终状态就是关。 1、我已经给你讲解过了,门的(开关)状态只与最后一次操作它的人有关,你列举的时候也有这种思路... 你却偏偏没抽象出来。 2、3号门最后一次操作是第三个人(开),你也说了,之后就都不会再去碰3号门了,你却依然得出结论3号门关! 3、数学上有个很简单的定理,那是因为你记住了。这道题你解错那是因为你死套定理了。 哈哈,你再看看题意看看自己是否理解错了。。。 |
|
返回顶楼 | |
发表时间:2011-06-20
night_stalker 写道 哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯ 所以结果就是奇数门开,偶数门关 ⋯⋯ 正解,我的解释方法是: 不管门的上一次状态是什么,n号人总是保障n号门的应属状态,因为一个数的最小整数倍数就是他自己。 而规则就是:奇数开,偶数关 |
|
返回顶楼 | |
发表时间:2011-06-21
zjriso 写道 lyw985 写道 Crusader 写道 zhanghh321 写道 1号门有1个人碰过
2号门有2个人碰过 3号门有3个人碰过 4号门有4个人碰过 .... 答案很明显 啦 -1 -2 -3 -4 |
|
返回顶楼 | |
发表时间:2011-06-21
achun 写道 night_stalker 写道 哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯ 所以结果就是奇数门开,偶数门关 ⋯⋯ 正解,我的解释方法是: 不管门的上一次状态是什么,n号人总是保障n号门的应属状态,因为一个数的最小整数倍数就是他自己。 而规则就是:奇数开,偶数关 正解 |
|
返回顶楼 | |
发表时间:2011-06-22
看不下去咧,说下个人想法:
无论之前的人们怎么动门,2号小孩儿肯定把2号门关闭,3号小孩肯定把3号门打开,4号小孩儿肯定把4号门关闭,5号小孩儿肯定把5号门打开.....,依次类推,9999号小孩儿把9999号门打开,10000号小孩儿把10000号门关闭。 最后:奇数编号门 打开;偶数编号门 关闭。 |
|
返回顶楼 | |