@@ -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