密室找小偷

问题:

十三间密室排成一排,小偷躲在其中一间,每过一天必转移到相邻的密室,转移方向随机。每天只能搜一间,问如何保证找到密室里的小偷?修改

十三间密室排成一排:1,2,3,4,5,6,7,8,9,10,11,12,13
小偷躲在其中一间
每天只能搜一间(如果小偷在里面,一定可找到)
每过一天,小偷必转移到相邻的密室. 转移方向随机。
请问如何能保证找到密室里的小偷?
解答:
首先从1号房间开始一次查看每个房间 到13号时如果没有见到小偷 因为小偷每轮必定会移动 则此时小偷只有可能在 2,4,6,8,10,12 这6个偶数编号的房间里 否则在遍历过程中已经被发现
然后再搜索一次13号房 若没有找到小偷 则此时必在 1,3,5,7,9,11 这6个房间中 与当前搜索的房间编号差为偶数
此时依此往回搜索 因为不论小偷怎么移动 所在房间与当前搜索房间的编号差必定是偶数 所以往回搜索的过程中一定会发现小偷

此解也是 N 个有限房间情形的通解:首先从一端遍历所有房间 如果找不到 则此时小偷所处房间与当前搜索房间的编号差为奇数 停留一轮 编号差变为偶数并且确定在当前搜索房间的一侧 此时反向遍历 必能找到小偷

接下来再看如何找最优解
简单想了一下 第一次遍历可以是从 2 号房间开始到 N-1 号房间 然后在 N-1 处停留一轮 再反向遍历
共需 2(N-2) 步
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值