random_unlabeled_rooted_tree#

random_unlabeled_rooted_tree(n, *, number_of_trees=None, seed=None)[源代码]#

均匀随机返回若干个无标签有根树

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

参数:
nint

节点数量

number_of_treesint 或 None(默认)

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

seedinteger, random_state, 或 None(默认)

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

返回:
networkx.Graphnetworkx.Graph 的列表

一个 networkx.Graph(如果指定了 number_of_trees,则为一个列表),其节点集合为 {0, …, n - 1}。“root”图属性标识树的根节点。

抛出:
NetworkXPointlessConcept

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

注意

这些树是使用 [1] 中的“RANRUT”算法生成的。该算法需要计算一些相对耗费资源的计数函数:如果需要多个树,建议使用可选参数 number_of_trees 来重用计数函数。

参考文献

[1]

Nijenhuis, Albert, and Wilf, Herbert S. “Combinatorial algorithms: for computers and calculators.” Academic Press, 1978. https://doi.org/10.1016/C2013-0-11243-3