SDXFrameWork 0.12 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 }
35 static int Get(int 最大値)
36 {
37 std::uniform_int_distribution<int> range(0, 最大値);
38 return range(Engine());
39 }
40
42 static double Get(double 最小値, double 最大値)
43 {
44 std::uniform_real_distribution<double> range(最小値, 最大値);
45 return range(Engine());
46 }
48 static int Get(int 最小値, int 最大値)
49 {
50 std::uniform_int_distribution<int> range(最小値, 最大値);
51 return range(Engine());
52 }
53
56 static bool Coin(double trueになる確率)
57 {
58 if (trueになる確率 >= 1.0) return true;
59
60 std::bernoulli_distribution coin(std::min(trueになる確率, 1.0));
61
62 return coin(Engine());
63 }
64 };
65 }
SDX::Rand::Reset
static void Reset(int 初期化子)
乱数を初期化する.
Definition: Rand.h:23
SDX::Rand::Get
static int Get(int 最小値, int 最大値)
範囲を指定して乱数を取得.
Definition: Rand.h:48
SDX::Rand::Get
static int Get(int 最大値)
0～最大値の乱数を取得.
Definition: Rand.h:35
SDX::Rand::Coin
static bool Coin(double trueになる確率)
範囲を指定して乱数を取得.
Definition: Rand.h:56
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:42