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

Generation of sequences. More...

Classes

struct  tgen::sequence< T >
 Sequence generator. More...
struct  tgen::sequence< T >::instance
 Sequence instance. More...

Detailed Description

Generation of sequences.

Its instances have the properties:

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 generator.
Definition tgen.h:1135
sequence & distinct(std::set< int > indices)
Restricts generator s.t. all values in index set are distinct.
Definition tgen.h:1221
instance gen() const
Generates a random instance from the set of valid sequences.
Definition tgen.h:1367

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:1210

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:1228

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

std::cout <<
.fix(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"
auto gen_until(Pred predicate, int max_tries, Args &&...args) const
Generates a random instance from the valid set until a condition is met.
Definition tgen.h:335
sequence & fix(int idx, T value)
Restricts generator s.t. value at index is fixed.
Definition tgen.h:1172