random_labeled_tree#

random_labeled_tree(n, *, seed=None)[source]#

返回在 n 个节点上均匀随机选择的带标签树。

生成均匀分布的随机 Prüfer 序列并将其转换为相应的树,是生成均匀分布的随机带标签树的直接方法。此函数实现了该方法。

参数:
nint

节点数,必须大于零。

seedrandom_state

随机数生成状态指示器。参见 随机性

返回:
networkx.Graph

一个 networkx.Graph,其节点集合为 {0, …, n - 1}。

抛出异常:
NetworkXPointlessConcept

如果 n 为零(因为空图不是树)。

示例

>>> G = nx.random_labeled_tree(5, seed=42)
>>> nx.is_tree(G)
True
>>> G.edges
EdgeView([(0, 1), (0, 3), (0, 2), (2, 4)])

可以通过将生成的边分配给 DiGraph 来创建具有任意定向边的树

>>> DG = nx.DiGraph()
>>> DG.add_edges_from(G.edges)
>>> nx.is_tree(DG)
True
>>> DG.edges
OutEdgeView([(0, 1), (0, 3), (0, 2), (2, 4)])