Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <ctime>
- #include <random>
- static std::random_device rd;
- std::mt19937 gen_eng(rd.entropy() ? rd() : (unsigned long)(std::time(nullptr)));
- //Or just "std::mt19937 generator(SOME_CONST);" for repeated sequence. Try it!
- double genAlpha() {
- static std::uniform_real_distribution<double> unif_real_01(0.0, 1.0);
- return unif_real_01(gen_eng);
- }
- int main() {
- printf("%lf\n", genAlpha());
- printf("%lf\n", genAlpha());
- printf("%lf\n", genAlpha());
- printf("%lf\n", genAlpha());
- printf("\nMmm... Dice throwing:\n");
- int dice_result = 6 * genAlpha() + 1;
- printf("%d\n", dice_result);
- printf("\nADVANCED\nWe can get another distributions:\n");
- printf("1) Dice (\"right\" way):\n");
- std::uniform_int_distribution<int> unif_int_16(1, 6);
- printf("%d\n", unif_int_16(gen_eng));
- printf("%d\n", unif_int_16(gen_eng) + unif_int_16(gen_eng) + unif_int_16(gen_eng));
- printf("2) Normal:\n");
- static std::normal_distribution<double> std_norm_dist(0, 1);
- printf("%lf\n", std_norm_dist(gen_eng));
- printf("%lf\n", std_norm_dist(gen_eng));
- printf("%lf\n", std_norm_dist(gen_eng));
- printf("%lf\n", std_norm_dist(gen_eng));
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement