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.Graph
或networkx.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