gpt4 book ai didi

python - 如何从未连接的图中随机选择两个节点(节点对),Python,networkx

转载 作者:太空狗 更新时间:2023-10-30 01:46:59 24 4
gpt4 key购买 nike

我想从图中提取两个节点,问题是它们不应该连接,即它们之间不存在直接边。我知道我可以使用“random.choice(g.edges())”获得随机边,但这会给我连接的随机节点。我想要一对未连接的节点(一对未连接的边)。帮帮我……谢谢

最佳答案

简单! :)

抓取一个随机节点 - 然后从不包括邻居和自身的节点列表中选择一个随机节点。用于说明的代码如下。 :)

import networkx as nx
from random import choice

# Consider this graph
#
# 3
# |
# 2 - 1 - 5 - 6
# |
# 4

g = nx.Graph()
g.add_edge(1,2)
g.add_edge(1,3)
g.add_edge(1,4)
g.add_edge(1,5)
g.add_edge(5,6)

first_node = choice(g.nodes()) # pick a random node
possible_nodes = set(g.nodes())
neighbours = g.neighbors(first_node) + [first_node]
possible_nodes.difference_update(neighbours) # remove the first node and all its neighbours from the candidates
second_node = choice(list(possible_nodes)) # pick second node

print first_node, second_node

关于python - 如何从未连接的图中随机选择两个节点(节点对),Python,networkx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10929269/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com