random_unlabeled_tree#
- random_unlabeled_tree(n, *, number_of_trees=None, seed=None)[source]#
返回随机选择的树或树列表。
返回一个或多个(取决于
number_of_trees
参数)具有n
个节点的无标签树,这些树是从所有可能的无标签树中均匀随机抽取的。- 参数:
- nint
节点数量
- number_of_treesint or None (默认)
如果不为 None,则生成并返回指定数量的树。
- seedinteger, random_state, or None (默认)
随机数生成状态的指示器。参见 随机性。
- 返回:
networkx.Graph
或networkx.Graph
的列表一个
networkx.Graph
(如果指定了number_of_trees
,则为一个列表),其节点集合为 {0, …, n - 1}。
- 引发:
- NetworkXPointlessConcept
如果
n
为零(因为空图不是树)。
注释
此函数使用文献 [1] 中的 Wilf 算法“Free”从所有可能的无标签树中均匀随机生成一棵树。该算法需要计算一些相对昂贵的计数函数:如果需要生成多棵树,建议使用可选参数
number_of_trees
以重用这些计数函数。参考文献
[1]Wilf, Herbert S. “无标签树的均匀选择.” Journal of Algorithms 2.2 (1981): 204-207. https://doi.org/10.1016/0196-6774(81)90021-3