有趣的两军问题——同情蓝军一秒钟

    今天看到计算机导论书📖上的两军问题🤓:   🏳一支白军被围因在一个山谷中,山谷的两侧是🔷蓝军,若一支蓝军对白军单独发起进攻,则必败无疑;但若两支蓝车同时发起进攻,则可取胜。😀

32738da517394badbdc81d68fe1fe8da.png 

两支蓝军希望同时发起进攻,这样他们就要传递信息,以确定发起攻击的具体时间。假设他们只能派遺士兵穿越白军所在的山谷(唯一的通信信道)来传递信息,那么在穿越山谷时,士兵有可能被俘,从而造成消息的丢失。🙊

现在的问题是:如何通信,以便蓝军必胜。🤔

下面我们进行设计:
假设一支蓝军指挥官发出消息:“我建议在明天拂晓发起进攻,请确认。”如果消息到达
了另一支蓝车,其指挥官同意这一建议,并且他的回信也安全送到,那么能否进攻呢?不能。
这是一个两步握手协议,因为该指挥官无法知道他的回信是否安全送到了,所以,他不能发起
进攻。🫠

改进协议:将两步握手协议改为三步握手协议,这样,最初提出建议的指挥官必须确认对
该建议的应答信息。假如信息没有丢失,并收到确认消息,则他领将收到的确认信息告诉对
方,从而完成三步握手协议。但是,这样他就无法知道消息是否被对方收到,因此,他不能发起进攻。🫠

总而言之,蓝军指挥官最后发出一条信息总是无法确定是否安全到达,然后需要一直重复发送以上步骤,到不了尽头(死循环),蓝军永远没法开打🙃(同情蓝军1秒钟🙂)

这让其实和大家在生活发信息给对方是一样的,🤓我们发送一条信息出去,但是无法确定对方是否收到,知道对方回了一条信息过来,我们才确认他接受了并回复了,但对于对方来说,并不知道他的信息是否发送到(传递到),也就是总需要多一次的信息传递才能确定上一次的接受完成✅

哈哈哈哈感觉好像说了什么又好像什么都没说🫠但感觉想出这个问题的人很厉害👍🏻

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值