论坛首页 综合技术论坛

关于万人开关门

浏览 14398 次
精华帖 (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  正解
0 请登录后投票
   发表时间: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){
............
}


如果是顺序操作,反着来会省事一些···
0 请登录后投票
   发表时间:2011-06-16  
suwey 写道
lzyzizi 写道
刚才回头看了下问题,发现有个地方很多人都理解错了,除数的奇偶性无法判断门的开关,因为只有奇除数是关门而偶除数是开门。。。
比如:4的除数 1,2,4。按照质因数分解的思路,他应该是关着的,但是仔细看题会发现2和4都是关门,也就是说1开门以后,2关门,4也关门。。。也就是说4根本不会关心当前门的状态,执行他所应该执行的动作,所以其实门开不开只由最后一个开关人的决定。

night_stalker 写道
哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯
所以结果就是奇数门开,偶数门关 ⋯⋯


原来正解早就出现。。。

我也觉得这个解释已经对了。。不知道为什么还有那么多复杂的讨论

答案不是出来了么?
0 请登录后投票
   发表时间:2011-06-17  
有1万 个人和1万个关着的门, 第一人把所有的门打开,第二个人把所有的偶数门关上,第三个人把所有三的倍数门打开,第四个人把所有四的倍数门关上,依此类推,1万人都折腾一遍后,哪些门开着?那些门关着?

大家考虑的太复杂了。

第N个人只会把N的倍数的门开或者关,开还是关,是和N的奇偶相关的,奇数开,偶数关。
比如2碰到2号门是被1开了,2关上,3碰到3号门被1开了,3不会重复去开,而是维持原样。
同理4号门被2关了,4这个人看到门关了,不会去重复再关一次的,而是直接跳过。
正解就是1到10000里,奇数门开,偶数门关
0 请登录后投票
   发表时间: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、数学上有个很简单的定理,那是因为你记住了。这道题你解错那是因为你死套定理了。
0 请登录后投票
   发表时间: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、数学上有个很简单的定理,那是因为你记住了。这道题你解错那是因为你死套定理了。


哈哈,你再看看题意看看自己是否理解错了。。。
0 请登录后投票
   发表时间:2011-06-20  
night_stalker 写道
哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯
所以结果就是奇数门开,偶数门关 ⋯⋯

正解,我的解释方法是:
不管门的上一次状态是什么,n号人总是保障n号门的应属状态,因为一个数的最小整数倍数就是他自己。
而规则就是:奇数开,偶数关
0 请登录后投票
   发表时间:2011-06-21  
zjriso 写道
lyw985 写道
Crusader 写道
zhanghh321 写道
1号门有1个人碰过
2号门有2个人碰过
3号门有3个人碰过
4号门有4个人碰过
....
答案很明显  啦

-1

-2

-3

-4
0 请登录后投票
   发表时间:2011-06-21  
achun 写道
night_stalker 写道
哦,每个门只受最后一个碰它的人影响,最后一个碰它的人的号码和门相同。
1开2关3开4关5开6关⋯⋯
所以结果就是奇数门开,偶数门关 ⋯⋯

正解,我的解释方法是:
不管门的上一次状态是什么,n号人总是保障n号门的应属状态,因为一个数的最小整数倍数就是他自己。
而规则就是:奇数开,偶数关


正解
0 请登录后投票
   发表时间:2011-06-22  
看不下去咧,说下个人想法:

无论之前的人们怎么动门,2号小孩儿肯定把2号门关闭,3号小孩肯定把3号门打开,4号小孩儿肯定把4号门关闭,5号小孩儿肯定把5号门打开.....,依次类推,9999号小孩儿把9999号门打开,10000号小孩儿把10000号门关闭。

最后:奇数编号门 打开;偶数编号门 关闭。
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics