tgen
Loading...
Searching...
No Matches
Sequences

Generation of sequences. More...

Topics

 Sequence generators
 Defines a set of sequences, subject to restrictions.
 Sequence instances
 Instance of a sequence.
 Sequence operations
 Random operations on sequence instances.

Detailed Description

Generation of sequences.

Examples

Random 20 distinct values from 1 to 100.

std::cout <<
tgen::sequence<int>(20, 1, 100).distinct().gen() << std::endl;
// "67 96 80 11 46 52 42 2 93 1 28 3 48 82 90 99 53 98 94 88"
sequence & distinct(std::set< int > indices)
Restricts generator s.t. all values at index set are distinct.
Definition tgen.h:700
instance gen() const
Generates a random instance from the set of valid sequences.
Definition tgen.h:828
Sequence generator.
Definition tgen.h:615

Random Palindrome of length 7.

auto s = tgen::sequence<int>(7, 0, 9);
for (int i = 0; i <= 2; ++i) s.equal(i, 6-i);
std::cout << s.gen() << std::endl;
// "3 1 9 6 9 1 3"

Random 3 runs of 4 equal numbers. Values between runs are distinct.

std::cout <<
.equal_range(0, 3).equal_range(4, 7).equal_range(8, 11)
.distinct({0, 4, 8}).gen() << std::endl;
// "3 3 3 3 2 2 2 2 9 9 9 9"
sequence & equal_range(int left, int right)
Restricts generator s.t. all values at index range are the same.
Definition tgen.h:689

Random DNA sequence of length 8 with no equal adjacent values.

auto s2 = tgen::sequence(8, {'A','C','G','T'});
for (int i = 1; i < 8; i++) s2.different(i-1, i);
std::cout << s2.gen() << std::endl;
// "T C T G T G A C"
sequence & different(int idx_1, int idx_2)
Restricts generator s.t. values at two indices are different.
Definition tgen.h:707

Random binary sequence of length 10 with 5 1's that start with 1.

std::cout <<
.set(0, 1)
.gen_until([](const auto& inst) {
auto vec = inst.to_std();
return accumulate(vec.begin(), vec.end(), 0) == 5;
}, 100) << std::endl;
// "1 0 0 1 0 1 1 0 1 0"
instance gen_until(Pred predicate, int max_tries) const
Generates a random instance from the set of valid sequences until a condition is met.
sequence & set(int idx, T value)
Restricts generator s.t. value at index is fixed.
Definition tgen.h:651