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