从随机生成的树开始,我想考虑树的每个节点,并可能以p
的概率将其删除。由于树没有循环,并且任何一对节点之间都存在唯一的路径,因此删除一个节点应该使d
断开连接的树处于唤醒状态,其中d
是该节点的度数。>
我的问题是,在对整个图形进行此操作后,如何检查这些未连接的段中有多少?
import networkx as nx
import random as rand
n = 20
p = 0.1
G = nx.random_tree(n)
for i in range(0, n):
if rand.random() < p:
G.remove_node(i)
x = G.count_disconnected_components() # is there anything that accomplishes this?
答案 0 :(得分:2)
在我看来,您实际上实际上是想计算连接零件的数量。尝试number_connected_components
:
print(list(nx.connected_components(G)))
print(nx.number_connected_components(G))