Markopy
Utilizing Markov Models for brute forcing attacks
Markov::Random::Mersenne Class Reference

Implementation of Mersenne Twister Engine. More...

#include <random.h>

Inheritance diagram for Markov::Random::Mersenne:
Collaboration diagram for Markov::Random::Mersenne:

Public Member Functions

unsigned long random ()
 Generate Random Number. More...
 

Protected Member Functions

std::random_device & rd ()
 Default random device for seeding. More...
 
std::default_random_engine & generator ()
 Default random engine for seeding. More...
 
std::uniform_int_distribution< long long unsigned > & distribution ()
 Distribution schema for seeding. More...
 

Detailed Description

Implementation of Mersenne Twister Engine.

This is an implementation of Mersenne Twister Engine, which is slow but is a good implementation for high entropy pseudorandom.

Example Use: Using Mersenne Engine with RandomWalk

Model.import("model.mdl");
char* res = new char[11];
Markov::Random::Mersenne MersenneTwisterEngine;
for (int i = 0; i < 10; i++) {
this->RandomWalk(&MersenneTwisterEngine, 5, 10, res);
std::cout << res << "\n";
}
Implementation of Mersenne Twister Engine.
Definition: random.h:185

Example Use: Generating a random number with Marsaglia Engine

std::cout << me.random();
unsigned long random()
Generate Random Number.
Definition: random.h:66

Definition at line 185 of file random.h.

Member Function Documentation

◆ distribution()

std::uniform_int_distribution<long long unsigned>& Markov::Random::DefaultRandomEngine::distribution ( )
inlineprotectedinherited

Distribution schema for seeding.

Definition at line 90 of file random.h.

90  {
91  static std::uniform_int_distribution<long long unsigned> _distribution(0, 0xffffFFFF);
92  return _distribution;
93  }

Referenced by Markov::Random::Marsaglia::Marsaglia(), and Markov::Random::DefaultRandomEngine::random().

Here is the caller graph for this function:

◆ generator()

std::default_random_engine& Markov::Random::DefaultRandomEngine::generator ( )
inlineprotectedinherited

Default random engine for seeding.

Definition at line 82 of file random.h.

82  {
83  static std::default_random_engine _generator(rd()());
84  return _generator;
85  }
std::random_device & rd()
Default random device for seeding.
Definition: random.h:74

References Markov::Random::DefaultRandomEngine::rd().

Referenced by Markov::Random::Marsaglia::Marsaglia(), and Markov::Random::DefaultRandomEngine::random().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ random()

unsigned long Markov::Random::DefaultRandomEngine::random ( )
inlinevirtualinherited

Generate Random Number.

Returns
random number in long range.

Implements Markov::Random::RandomEngine.

Reimplemented in Markov::Random::Marsaglia.

Definition at line 66 of file random.h.

66  {
67  return this->distribution()(this->generator());
68  }
std::uniform_int_distribution< long long unsigned > & distribution()
Distribution schema for seeding.
Definition: random.h:90
std::default_random_engine & generator()
Default random engine for seeding.
Definition: random.h:82

References Markov::Random::DefaultRandomEngine::distribution(), and Markov::Random::DefaultRandomEngine::generator().

Here is the call graph for this function:

◆ rd()

std::random_device& Markov::Random::DefaultRandomEngine::rd ( )
inlineprotectedinherited

Default random device for seeding.

Definition at line 74 of file random.h.

74  {
75  static std::random_device _rd;
76  return _rd;
77  }

Referenced by Markov::Random::DefaultRandomEngine::generator().

Here is the caller graph for this function:

The documentation for this class was generated from the following file: