SDXFrameWork 0.13 SDXFrameWork

- Main Page
- Related Pages
- Classes

All Classes Namespaces Functions Variables Enumerations Enumerator Pages
Rand.h
1 //Copyright © 2014 SDXFramework
2 //[License]GNU Affero General Public License, version 3
3 //[Contact]http://sourceforge.jp/projects/dxframework/
4 #pragma once
5 #include <random>
6
7 namespace SDX
8 {
11 class Rand
12 {
13 private:
14 MONO_STATE(Rand)
15
16 static std::mt19937& Engine()
17 {
18 static std::mt19937 engine;
19 return engine;
20 }
21 public:
23 static void Reset(int 初期化子)
24 {
25 Engine().seed(初期化子);
26 }
27
29 static double Get(double 最大値)
30 {
31 std::uniform_real_distribution<double> range(0.0, 最大値);
32 return range(Engine());
33 }
36 static int Get(int 最大値)
37 {
38 std::uniform_int_distribution<int> range(0, 最大値);
39 return range(Engine());
40 }
41
43 static double Get(double 最小値, double 最大値)
44 {
45 std::uniform_real_distribution<double> range(最小値, 最大値);
46 return range(Engine());
47 }
49 static int Get(int 最小値, int 最大値)
50 {
51 std::uniform_int_distribution<int> range(最小値, 最大値);
52 return range(Engine());
53 }
54
57 static bool Coin(double trueになる確率)
58 {
59 if (trueになる確率 >= 1.0) return true;
60
61 std::bernoulli_distribution coin(std::min(trueになる確率, 1.0));
62
63 return coin(Engine());
64 }
65 };
66 }
SDX::Rand::Reset
static void Reset(int 初期化子)
乱数を初期化する.
Definition: Rand.h:23
SDX::Rand::Get
static int Get(int 最小値, int 最大値)
範囲を指定して乱数を取得.
Definition: Rand.h:49
SDX::Rand::Get
static int Get(int 最大値)
0～最大値の乱数を取得.
Definition: Rand.h:36
SDX::Rand::Coin
static bool Coin(double trueになる確率)
範囲を指定して乱数を取得.
Definition: Rand.h:57
SDX::Rand
乱数生成関数群.
Definition: Rand.h:11
SDX::Rand::Get
static double Get(double 最大値)
0～最大値の乱数を取得.
Definition: Rand.h:29
SDX::Rand::Get
static double Get(double 最小値, double 最大値)
範囲を指定して乱数を取得.
Definition: Rand.h:43