Начиная со случайно сгенерированного дерева, я хочу рассмотреть каждый узел дерева и потенциально удалить его с некоторой вероятностью 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?
Например, для этого графика G.count_disconnected_components()
должно вернуть 3.