Skip to content

Commit c7e4c78

Browse files
committed
exponential_distribution : 例を追加
1 parent 2819232 commit c7e4c78

File tree

1 file changed

+67
-3
lines changed

1 file changed

+67
-3
lines changed

reference/random/exponential_distribution.md

Lines changed: 67 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ $$ p(x \mid \lambda) = \lambda e^{-\lambda x} $$
7979
8080
8181
## 例
82+
### 基本的な使い方
8283
```cpp example
8384
#include <random>
8485
#include <fstream>
@@ -102,22 +103,85 @@ int main()
102103
* std::ofstream[link /reference/fstream/basic_ofstream.md]
103104
* dist(engine)[link exponential_distribution/op_call.md]
104105

105-
### 出力
106+
#### 出力
106107
```
107108
```
108109

109110
このプログラムによってある時に得られた結果([exponential_distribution.tsv](https://raw.githubusercontent.com/cpprefjp/image/master/reference/random/exponential_distribution/exponential_distribution.tsv))を図示する。
110111

111112
![](https://raw.githubusercontent.com/cpprefjp/image/master/reference/random/exponential_distribution/exponential_distribution.png)
112113

114+
### コールセンターに電話がかかってくる時間間隔をシミュレート
115+
```cpp example
116+
#include <iostream>
117+
#include <random>
118+
119+
int main() {
120+
// 平均的に1時間に30回(1回あたり2分間隔)の電話がかかってくる
121+
double average_calls_per_hour = 30.0;
122+
123+
std::random_device seed_gen;
124+
std::default_random_engine engine{seed_gen()};
125+
126+
// 指数分布を定義 (平均値は1/lambdaで定義されるため逆数をとる)
127+
std::exponential_distribution<double> dist{average_calls_per_hour / 60.0};
128+
129+
// 1時間分の電話の間隔をシミュレート
130+
double time = 0;
131+
while (time < 60) {
132+
double wait_time = dist(engine);
133+
time += wait_time;
134+
if (time < 60) {
135+
std::cout << "Phone call after " << wait_time << " minute wait\n";
136+
}
137+
}
138+
}
139+
```
140+
* std::exponential_distribution[color ff0000]
141+
* dist(engine)[link exponential_distribution/op_call.md]
142+
143+
#### 出力例
144+
```
145+
Phone call after 0.118293 minute wait
146+
Phone call after 2.67793 minute wait
147+
Phone call after 3.46596 minute wait
148+
Phone call after 1.58166 minute wait
149+
Phone call after 0.704957 minute wait
150+
Phone call after 2.09809 minute wait
151+
Phone call after 0.168292 minute wait
152+
Phone call after 1.05299 minute wait
153+
Phone call after 3.4055 minute wait
154+
Phone call after 1.06941 minute wait
155+
Phone call after 4.99887 minute wait
156+
Phone call after 3.4023 minute wait
157+
Phone call after 3.37294 minute wait
158+
Phone call after 1.69335 minute wait
159+
Phone call after 1.21446 minute wait
160+
Phone call after 0.765484 minute wait
161+
Phone call after 0.590176 minute wait
162+
Phone call after 0.0506416 minute wait
163+
Phone call after 1.64168 minute wait
164+
Phone call after 1.93174 minute wait
165+
Phone call after 0.903994 minute wait
166+
Phone call after 3.06768 minute wait
167+
Phone call after 2.37803 minute wait
168+
Phone call after 0.597241 minute wait
169+
Phone call after 1.67885 minute wait
170+
Phone call after 0.756916 minute wait
171+
Phone call after 2.09694 minute wait
172+
Phone call after 1.22043 minute wait
173+
Phone call after 3.05816 minute wait
174+
Phone call after 3.10884 minute wait
175+
Phone call after 2.60918 minute wait
176+
```
177+
113178
## バージョン
114179
### 言語
115180
- C++11
116181

117182
### 処理系
118-
- [Clang](/implementation.md#clang):
183+
- [Clang](/implementation.md#clang): 7.1 [mark verified]
119184
- [GCC](/implementation.md#gcc): 4.7.2 [mark verified]
120-
- [ICC](/implementation.md#icc):
121185
- [Visual C++](/implementation.md#visual_cpp):
122186

123187
### 参考

0 commit comments

Comments
 (0)