random_unlabeled_tree#

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

返回一个随机选择的树或树列表。

返回一个或多个(取决于 number_of_trees )具有 n 个节点的无标签树,这些树均匀随机抽取。

Parameters:
nint

节点数量

number_of_treesint 或 None(默认)

如果不是 None,则生成并返回此数量的树。

seed整数, random_state, 或 None(默认)

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

Returns:
networkx.Graphnetworkx.Graph 列表

一个单独的 networkx.Graph (或如果指定了 number_of_trees ,则为列表),节点集合为 {0, …, n - 1}。

Raises:
NetworkXPointlessConcept

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

Notes

此函数使用 Wilf 的算法 “Free” 均匀随机生成无标签树 [1]。该算法需要计算一些相对昂贵的计数函数:如果需要多个树,建议使用 number_of_trees 可选参数以重用计数函数。

References

[1]

Wilf, Herbert S. “The uniform selection of free trees.” Journal of Algorithms 2.2 (1981): 204-207. https://doi.org/10.1016/0196-6774(81)90021-3