趣味数学--安全过河

四名商人和随从需乘船过河,防止随从人数超过商人时发生危险。通过建立三维状态向量,定义允许状态集合,构建连通图并应用Dijkstra算法,找到安全的渡河方案。问题转化为寻找从起始状态(4商人,4随从,1船)到结束状态(0商人,0随从,0船)的最短路径。该方法适用于n名商人和m人容量的小船情况,强调了遇到问题时运用已知方法和思想的重要性。
摘要由CSDN通过智能技术生成

四名商人各带一名随从乘船渡河,一只小船只能容纳二人,由他们自己划行。随从们密约, 在河的任一岸, 一旦随从的人数比商人多, 就杀人抢货. 但是乘船渡河的方案由商人决定,那么商人们怎样才能安全过河?如果可以安全渡河,请找出所有可行方案.如果是n名商人,小船只能容纳m人,情况又将如何?

     分析:采用Dijkstra算法解决了商人和随从渡河问题,根据题意用三维向量表示商人、随从和船的状态,并且定义此岸允许状态集合、彼岸允许状态集合及决策变量集合。然后把此岸允许状态集合和彼岸允许状态集合中的每个元素视为节点,按照状态转移规律连接这些节点构成了一个连通图,寻找安全的渡河方案最终转化为从起始状态(节点)到最终状态(节点)的路径,用图论的Dijkstra算法找出最短路径,每一条路径对应一种渡河方案,整体方案如图1(实心点代表此岸,空心点代表彼岸,人数均为此岸人数)

   思想,见了问题想一下有没有类似的题,若有就用以前的方法,思想,如有一点点区别,找出它们的区别,根据这个区别稍加处理转换一下就可以用,举一反三。

    处理这类题的思路,把目标所处的状态看成一个点,转化为图论处理,用Dijkstra算法找出最短路径即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值