Ich bin ziemlich neu in Python, ich möchte zwei zufällige Knoten im Netzwerk finden, die keine Kanten zwischen ihnen hat, aber mein Programm manchmal leere Liste oder mehr als zwei Knoten zurückgeben. kann mir jemand helfen, auf diesem, Mein Programm ist:Wie finden Sie zwei Randoms Knoten ohne Kanten zwischen ihnen in Grafik?
import networkx as nx
import random
n=6
m=10
G=nx.gnm_random_graph(n, m, seed=None, directed=True)
result = []
nodes = random.sample(G.nodes(), 2)
for u in nodes:
for v in nodes:
if u != v and G.has_edge(u,v) is False and G.has_edge(v,u) is False:
result.append((u,v))
else:
nodes = random.sample(G.nodes(), 2)
print(result)
Eine Warnung: Es kann sich lohnen zu überprüfen, dass das Diagramm nicht vollständig ist. – Joel
Wenn der Graph nicht gerichtet ist, müssen Sie auch nicht überprüfen, ob '(v, u)' eine Kante ist, nachdem Sie '(u, v)' überprüft haben. – Joel