graphscope.nx.generators.trees.random_tree¶
- graphscope.nx.generators.trees.random_tree(n, seed=None, create_using=None)[source]¶
Returns a uniformly random tree on n nodes.
- Parameters:
n (int) – A positive integer representing the number of nodes in the tree.
seed (integer, random_state, or None (default)) – Indicator of random number generation state. See Randomness.
create_using (NetworkX graph constructor, optional (default=nx.Graph)) – Graph type to create. If graph instance, then cleared before populated.
- Returns:
A tree, given as an undirected graph, whose nodes are numbers in the set {0, …, n - 1}.
- Return type:
NetworkX graph
- Raises:
NetworkXPointlessConcept – If n is zero (because the null graph is not a tree).
Notes
The current implementation of this function generates a uniformly random Prüfer sequence then converts that to a tree via the
from_prufer_sequence()
function. Since there is a bijection between Prüfer sequences of length n - 2 and trees on n nodes, the tree is chosen uniformly at random from the set of all trees on n nodes.Examples
>>> tree = nx.random_tree(n=10, seed=0) >>> print(nx.forest_str(tree, sources=[0])) ╙── 0 ├── 3 └── 4 ├── 6 │ ├── 1 │ ├── 2 │ └── 7 │ └── 8 │ └── 5 └── 9
>>> tree = nx.random_tree(n=10, seed=0, create_using=nx.DiGraph) >>> print(nx.forest_str(tree)) ╙── 0 ├─╼ 3 └─╼ 4 ├─╼ 6 │ ├─╼ 1 │ ├─╼ 2 │ └─╼ 7 │ └─╼ 8 │ └─╼ 5 └─╼ 9