LAL: Linear Arrangement Library 24.10.00
A library focused on algorithms on linear arrangements of graphs.
|
Uniformly random selection 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 (const uint64_t n, const uint64_t seed=0) noexcept | |
Constructor with size of tree and seed for the random number generator. | |
_rand_lab_free_trees (const _rand_lab_free_trees &Gen) noexcept=default | |
Copy constructor. | |
_rand_lab_free_trees (_rand_lab_free_trees &&Gen) noexcept=default | |
Move constructor. | |
~_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 (const uint64_t n, const uint64_t seed=0) noexcept |
Initializes the generator with the number of nodes and a seed. | |
void | clear () noexcept |
Clears the memory used. | |
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::array< uint64_t > | m_Prufer_seq |
Prüfer sequence. | |
Uniformly random selection 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 [41]). 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. |
|
defaultnoexcept |
Copy constructor.
Gen | Random labelled free tree generator. |
|
defaultnoexcept |
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. |