上面的图是自己画的,每个点之间的费用已经写明。每天练习编程,自己给自己出题,快速解决以上从Y点到G点的最便宜路径问题。
承接国内外留学生Python Homework ,assignment,代写Python家庭作业。Python留学生教学辅导。Python留学生作业辅导。
""" 使用动态规划求Y到G的最短路径解决方案, 以下程序设计了一个Node类。它表示一个节点,每个节点有前置节点及到前置节点的权值。 即一个节点到另一个节点的费用。 """ class Node: def __init__(self,name,prenodes): # prenodes = {a:10,b:20,c:30},a,b,c也是节点 """prenodes是它的前趋节点字典""" self.name = name # 节点的名字 self.prenodes = prenodes def f(node): """node:一个节点""" if node.prenodes: # 如果它有前置节点 dist = [] for n in node.prenodes: # 遍历它的所有前置节点 dist.append( f(n)+node.prenodes[n] ) # return min(dist) else: return 0 y = Node('y',{}) # 第一个节点,没有前置节点 d = Node('d',{y:5}) # 这个节点有一个前置节点 e = Node('e',{y:8}) x = Node('x',{y:2}) a = Node('a',{d:9,e:3}) b = Node('a',{e:2}) c = Node('c',{x:1}) g = Node('g',{a:3,b:2,c:8}) print(f(g))
承接国内外留学生Python Homework ,assignment,代写Python家庭作业。Python留学生教学辅导。Python留学生作业辅导。