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.Graphnetworkx.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