您的位置:首页 > 其它

趣味数学--安全过河

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

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

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

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

状态:

(商人个数,随从个数,有船)对此岸而言:

开始 末

(4,4,1) (0,0,0)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: