查看: 3535|回复: 14

[逻辑推理] 大盗越狱案 难度★★★★

转载  简洁模式
发表于 2010-1-20 22:45:08
引用
摘自《对脑筋急转弯说不—中学卷》 杜云著 版权归作者所有 转载时请务必附上此句

神探道尔(尊重原书,其实想打柯南道尔的......)抓住了一个作案屡屡得手的大盗,把他交给了监狱长。
  监狱长将大盗关在了监狱中看守最最坚固的牢房中,从未有人从这个牢房逃脱过。牢房是一条笔直长廊最里端的全封闭部分,外面有五道铁门,它们以不同的频率自动重复开启和关闭:第一道门每隔1分45秒自动开启和关闭一次;第二道门每隔1分10秒、第三道门每隔2分55秒、第四道门每隔2分20秒、第五道门每隔35秒自动开启和关闭(柠檬注:即原来是开启就关闭,关闭就开启)。在某个时刻,五道铁门会同时打开,也只有在这时警卫会出现在第五道铁门外,他将通过长廊查看大盗是否在牢房内。在确定死囚仍在牢房里后,警卫即离开,直到下一次五道门同时打开时才又重新出现。在警卫不在的期间,如果大盗离开牢房在长廊里呆的时间超过2分半钟,警报器就会报警。
  尽管这样,这个精于计算的大盗还是逃脱了。他究竟是如何逃脱的呢?
引用
摘自《对脑筋急转弯说不—中学卷》 杜云著 版权归作者所有 转载时请务必附上此句
发表于 2010-1-21 09:38:23
5道门同时打开后先关上的是第5道门。第5道门关上后迅速冲到第5道门前,等35秒钟,逃脱。
或者先开启的是第4道门,等2分20秒逃跑``````以此类推``````
  
                        ((蒙的,没计算))
发表于 2010-1-21 11:26:26
五道门同时关上的时候 算上跑道长度 快到140秒的时候向外跑 到第三道门等60秒 直接就能出去了
登录帐号可查看完整回帖内容
发表于 2010-1-21 12:55:57
好难啊,我觉得大概得向后退……

xcy95 于 2010-1-21 20:17 对帖子补充以下内容

经过计算,我认为是1050s,穿过三道门,再过70s,过后面两道……
应该不对吧,没这么简单吧……
登录帐号可查看完整回帖内容
发表于 2010-1-21 22:04:46
在等14分钟后
如果第一次是关上的话  在第8次 第一扇门 开的时候 第二扇门也会开 第12次
  第三杉门 会在14.10 也就是第一第二扇门开 后10秒 的 第三扇门打开第6次
第4扇门也会开 6次   第7扇门第28次
所以在所有门一起开后的第14分钟10秒 所有的门 都会打开 又因为第三扇 门的10秒所以警察不回来
所以在2分 20 秒之内逃走 是很有希望的  
这个机关虽说很人性 进的去出不来  但是百密一疏 所以这个故事告诉警察应用隔离式 的监狱

zrrave 于 2010-1-21 22:05 对帖子补充以下内容

斑竹 你一定要看呀

zrrave 于 2010-1-21 22:05 对帖子补充以下内容

我算的很辛苦
登录帐号可查看完整回帖内容
1人评分
+5
  • 3843: 答对了第一步
发表于 2010-1-22 02:29:17
楼上的算的辛苦了,我只是好奇,为什么关犯人的大门还总是要打开呢?呵呵
登录帐号可查看完整回帖内容
发表于 2010-1-22 20:25:47
谁说不是现实  
这是为了防止劫狱 与减少挖墙脚的机会
如果有警察回这么不这么做 那大盗早就可 高科技走了
登录帐号可查看完整回帖内容
发表于 2010-1-22 22:24:07
柠檬啊、、我自从上次NOIP完就再没摸过pascal、、编了个、、一直、no answer、、、、、
帮我看下了、、
program dadao;
const
a:array[1..5] of integer=(3,2,5,4,1);
var
goout:boolean;
men:array[1..5] of boolean;
i,j,m,n:integer;
jilu:array[1..5] of integer;

begin
m:=1;
fillchar(men,sizeof(men),false);
fillchar(jilu,sizeof(jilu),0);

for i:=1 to 60 do
begin
  if i*35>=255 then begin
                     m:=1;
                     fillchar(men,sizeof(men),false);
                     fillchar(jilu,sizeof(jilu),0);
                     continue;
                    end;

  goout:=true;
  for j:=1 to 5 do
    if men[j]=false then goout:=false;
  if goout then begin
                 for j:=1 to 5 do write(jilu[j]*35,'  ');
                 halt;
                end;
  if i mod a[m]=0 then begin
                        men[m]:=true;
                        jilu[m]:=i;
                        inc(m);
                       end;
end;

writeln('no answer');
end.

老了老了、、怎么会这样、、
登录帐号可查看完整回帖内容
尚未登录
您需要登录后才可以回帖 登录 | 加入学院