LAL: Linear Arrangement Library 23.01.00
A library focused on algorithms on linear arrangements of graphs.
|
Uniformly random generation of labelled free trees. More...
#include <rand_lab_free_trees.hpp>
Public Member Functions | |
_rand_lab_free_trees () noexcept | |
Default constructor. | |
_rand_lab_free_trees (uint64_t n, uint64_t seed=0) noexcept | |
Constructor with size of tree and seed for the random number generator. More... | |
_rand_lab_free_trees (const _rand_lab_free_trees &Gen)=default | |
Copy constructor. More... | |
_rand_lab_free_trees (_rand_lab_free_trees &&Gen)=default | |
Move constructor. More... | |
~_rand_lab_free_trees ()=default | |
Default destructor. | |
_rand_lab_free_trees & | operator= (const _rand_lab_free_trees &g) noexcept=default |
Copy assignment operator. | |
_rand_lab_free_trees & | operator= (_rand_lab_free_trees &&g) noexcept=default |
Move assignment operator. | |
void | init (uint64_t n, uint64_t seed=0) noexcept |
Initializes the generator with the number of nodes and a seed. More... | |
void | clear () noexcept |
Clears the memory used. More... | |
graphs::free_tree | get_tree () noexcept |
Returns a labelled free tree chosen uniformly at random. | |
Protected Attributes | |
uint64_t | m_n |
Number of nodes of the tree. | |
std::mt19937 | m_gen |
Random number generator. | |
std::uniform_int_distribution< uint64_t > | m_unif |
Distribution of the numbers. | |
detail::data_array< uint64_t > | m_Prufer_seq |
Prüfer sequence. | |
Uniformly random generation of labelled free trees.
Users should refrain from using this class. The generation of random labelled trees should be done using the wrapper class rand_lab_free_trees. This class, however, contains the actual code to generate labelled free trees uniformly at random.
This class implements an algorithm that uses uniformly random Prüfer sequences (see [32]). The construction of the free labelled tree is done in \(O(n)\).
|
inlinenoexcept |
Constructor with size of tree and seed for the random number generator.
In case the seed given is '0', a random seed will be generated.
n | Number of nodes. |
seed | The seed used for the random generator. |
|
default |
Copy constructor.
Gen | Random labelled free tree generator. |
|
default |
Move constructor.
Gen | Random labelled free tree generator. |
|
inlinenoexcept |
|
inlinenoexcept |
Initializes the generator with the number of nodes and a seed.
n | Number of nodes. |
seed | The seed used for the random generator. If the seed is 0 then a random seed is generated and used. |