1

私は有向グラフを持っており、次のプログラムはランダムな開始点からランダムな終了点までグラフをトラバースします。必要なのは、グラフをx回ランダムにトラバースし、前のノードから毎回ランダムにノードを選択することです。ノードですが、これを達成する方法がわかりません。ノードが複数回アクセスされても問題ありません。

    def find_path(graph, start, end, path=[]):

        path = path + [start]
        print path
        if start == end:
            return path

        for node in graph[start]:
            if node not in path:
                newpath = find_path(graph, node, end, path)
                if newpath: return newpath

        return None
        print path

# main function
def main():



    start = str(random.randint(1,10))


    finish = str(random.randint(1,10))

    print start
    print finish

    graph = {'1': ['9'],
         '2': ['10'],
         '3': ['6', '8'],
         '4': ['1', '6'],
         '5': ['1'],
         '6': ['7'],
         '7': ['1', '3'],
         '8': ['2'],
         '9': ['4'],
         '10': ['3', '5']}          

    find_path(graph, start, finish)       


if __name__ == '__main__':
    main()
4

1 に答える 1