diff options
| author | HampusM <hampus@hampusmat.com> | 2022-02-13 20:54:02 +0100 | 
|---|---|---|
| committer | HampusM <hampus@hampusmat.com> | 2022-02-13 20:54:02 +0100 | 
| commit | 176d6141c87a180b251bacaee656808bad17498b (patch) | |
| tree | 9d3893014eeb8be293cf8928044925c379739d24 /src/random_generator.hpp | |
| parent | b0c265ee3d94921f55266a679d3801a4d2b4505b (diff) | |
refactor: add random number generation abstraction
Diffstat (limited to 'src/random_generator.hpp')
| -rw-r--r-- | src/random_generator.hpp | 34 | 
1 files changed, 34 insertions, 0 deletions
| diff --git a/src/random_generator.hpp b/src/random_generator.hpp new file mode 100644 index 0000000..a4c1331 --- /dev/null +++ b/src/random_generator.hpp @@ -0,0 +1,34 @@ +#pragma once + +#include <memory> +#include <random> + +/** + * Pseudo-random unsigned integer generator. + */ +class RandomNumberGenerator +{ +public: +	/** +	 * Creates a pseudo-random number generator. +	 * +	 * @param seed A number generation seed +	 */ +	RandomNumberGenerator(unsigned int seed); + +	/** +	 * Creates a pesudo-random number generator. +	 */ +	RandomNumberGenerator(); + +	/** +	 * Generates a number in the range of a to b. +	 * +	 * @param a A number lower than b +	 * @param b A number greater than a +	 */ +	unsigned int in_range(unsigned int a, unsigned int b); + +private: +	std::unique_ptr<std::mt19937> _generator; +}; | 
