random_unlabeled_rooted_forest#
- random_unlabeled_rooted_forest(n, *, q=None, number_of_forests=None, seed=None)[source]#
返回一个随机选择的森林或森林列表。
返回一个或多个(取决于
number_of_forests
) 具有n
个节点的无标签有根森林,且每个树的节点数不超过q
,均匀随机抽取。图属性 “roots” 标识森林的根节点。- Parameters:
- nint
节点数量
- qint 或 None(默认)
每个树的最大节点数。
- number_of_forestsint 或 None(默认)
如果不为 None,则生成并返回此数量的森林。
- seed整数, random_state, 或 None(默认)
随机数生成状态的指示器。 参见 Randomness 。
- Returns:
networkx.Graph
或networkx.Graph
列表一个单独的
networkx.Graph
(或列表,如果指定了number_of_forests
) 节点集合为 {0, …, n - 1}。 “roots” 图属性是一个集合,包含森林中树的根节点。
- Raises:
- ValueError
如果
n
非零但q
为零。
Notes
此函数实现了 [1] 中的 “Forest” 算法。 该算法需要计算一些相对昂贵的计数函数: 如果需要多个树,建议使用
number_of_forests
可选参数 以重用计数函数。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