回答編集履歴

1

追記

2019/09/12 12:13

投稿

episteme
episteme

スコア16614

test CHANGED
@@ -7,3 +7,79 @@
7
7
  ベルヌイ分布のコンストラクタには trueを返す確率 を渡せます。
8
8
 
9
9
  こいつを 0.1~0.2 の範囲で揺さぶればいい。
10
+
11
+
12
+
13
+ [追記] やってみた
14
+
15
+ ```C++
16
+
17
+ #include <random>
18
+
19
+ #include <iostream>
20
+
21
+
22
+
23
+ int main() {
24
+
25
+ using namespace std;
26
+
27
+
28
+
29
+ random_device rnd;
30
+
31
+ mt19937 mt(rnd());
32
+
33
+ uniform_real_distribution<> range(0.1, 0.2);
34
+
35
+
36
+
37
+ for(int i = 0; i < 10; i++) {
38
+
39
+ double ratio = range(mt);
40
+
41
+ bernoulli_distribution dist(ratio); // 0.1~0.2でベルヌイ分布の確率を揺さぶる
42
+
43
+ int n = 0;
44
+
45
+ for(int j = 0; j<10000; j++) {
46
+
47
+ if ( dist(mt) ) ++n;
48
+
49
+ }
50
+
51
+ cout << ratio << " : " << n / 10000.0 << endl;
52
+
53
+ }
54
+
55
+ }
56
+
57
+ ```
58
+
59
+
60
+
61
+ ```
62
+
63
+ 実行結果:
64
+
65
+ 0.125947 : 0.1276
66
+
67
+ 0.192855 : 0.1921
68
+
69
+ 0.194169 : 0.1998
70
+
71
+ 0.116583 : 0.1193
72
+
73
+ 0.132853 : 0.1367
74
+
75
+ 0.128399 : 0.1295
76
+
77
+ 0.179123 : 0.1837
78
+
79
+ 0.178027 : 0.1775
80
+
81
+ 0.125145 : 0.1256
82
+
83
+ 0.134784 : 0.1307
84
+
85
+ ```