Skip to content

Commit 69eec33

Browse files
committed
乱数のサンプルコード : より説明的なコードにするために乱数のシードを一旦変数にもつようにした
1 parent d707563 commit 69eec33

File tree

102 files changed

+308
-104
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

102 files changed

+308
-104
lines changed

GLOBAL_QUALIFY_LIST.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -251,7 +251,6 @@
251251
* std::mt19937[link /reference/random/mt19937.md]
252252
* std::random_device[link /reference/random/random_device.md]
253253
* std::uniform_int_distribution[link /reference/random/uniform_int_distribution.md]
254-
* seed_gen()[link /reference/random/random_device/op_call.md]
255254
* <ranges>[link /reference/ranges.md]
256255
* std::ranges::owning_view[link /reference/ranges/owning_view.md]
257256
* std::ranges::ref_view[link /reference/ranges/ref_view.md]

lang/cpp11/thread_local_storage.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,15 @@ t2.join();
5151
#include <iostream>
5252
#include <thread>
5353
#include <random>
54+
#include <cstdint>
5455
5556
// 範囲[min_inclusive, max_inclusive]でランダム一様分布する整数を生成する。
5657
// スレッドごとに乱数の状態を持つ。
5758
int random_range(int min_inclusive, int max_inclusive)
5859
{
5960
std::random_device seed_gen;
60-
thread_local std::mt19937 engine(seed_gen());
61+
std::uint32_t seed = seed_gen();
62+
thread_local std::mt19937 engine(seed);
6163
std::uniform_int_distribution<int> dist(min_inclusive, max_inclusive);
6264
return dist(engine);
6365
}

reference/algorithm/ranges_shuffle.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ namespace std::ranges {
5858
#include <numeric>
5959
#include <iterator>
6060
#include <random>
61+
#include <cstdint>
6162
6263
int main() {
6364
std::vector<int> v(10);
@@ -69,7 +70,8 @@ int main() {
6970
7071
// シャッフル
7172
std::random_device seed_gen;
72-
std::mt19937 engine(seed_gen());
73+
std::uint32_t seed = seed_gen();
74+
std::mt19937 engine(seed);
7375
std::ranges::shuffle(v, engine);
7476
7577
std::cout << " after: ";
@@ -92,6 +94,7 @@ before: 0123456789
9294
#include <iostream>
9395
#include <string>
9496
#include <random>
97+
#include <cstdint>
9598

9699
int main() {
97100
std::string input = "0123456789abcdef";
@@ -100,7 +103,8 @@ int main() {
100103

101104
// シャッフル
102105
std::random_device seed_gen;
103-
std::mt19937 engine(seed_gen());
106+
std::uint32_t seed = seed_gen();
107+
std::mt19937 engine(seed);
104108
std::ranges::shuffle(input, engine);
105109

106110
std::cout << " after: " << input << std::endl;

reference/algorithm/shuffle.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ namespace std {
4343
#include <numeric>
4444
#include <iterator>
4545
#include <random>
46+
#include <cstdint>
4647
4748
int main() {
4849
std::vector<int> v(10);
@@ -54,7 +55,8 @@ int main() {
5455
5556
// シャッフル
5657
std::random_device seed_gen;
57-
std::mt19937 engine(seed_gen());
58+
std::uint32_t seed = seed_gen();
59+
std::mt19937 engine(seed);
5860
std::shuffle(v.begin(), v.end(), engine);
5961
6062
std::cout << " after: ";
@@ -76,6 +78,7 @@ before: 0123456789
7678
#include <iostream>
7779
#include <string>
7880
#include <random>
81+
#include <cstdint>
7982

8083
int main() {
8184
std::string input = "0123456789abcdef";
@@ -84,7 +87,8 @@ int main() {
8487

8588
// シャッフル
8689
std::random_device seed_gen;
87-
std::mt19937 engine(seed_gen());
90+
std::uint32_t seed = seed_gen();
91+
std::mt19937 engine(seed);
8892
std::shuffle(input.begin(), input.end(), engine);
8993

9094
std::cout << " after: " << input << std::endl;

reference/random.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,13 +155,15 @@
155155
```cpp example
156156
#include <fstream>
157157
#include <random>
158+
#include <cstdint>
158159

159160
int main()
160161
{
161162
// メルセンヌ・ツイスター法による擬似乱数生成器を、
162163
// ハードウェア乱数をシードにして初期化
163164
std::random_device seed_gen;
164-
std::mt19937 engine(seed_gen());
165+
std::uint32_t seed = seed_gen();
166+
std::mt19937 engine(seed);
165167

166168
// 一様実数分布
167169
// [-1.0f, 1.0f)の値の範囲で、等確率に実数を生成する

reference/random/bernoulli_distribution.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,11 +72,13 @@ namespace std {
7272
```cpp example
7373
#include <random>
7474
#include <fstream>
75+
#include <cstdint>
7576
7677
int main()
7778
{
7879
std::random_device seed_gen;
79-
std::default_random_engine engine(seed_gen());
80+
std::uint32_t seed = seed_gen();
81+
std::default_random_engine engine(seed);
8082
8183
// 確率0.7でtrueを生成し、確率0.3(1.0 - 0.7)でfalseを生成する
8284
std::bernoulli_distribution dist(0.7);

reference/random/bernoulli_distribution/op_call.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ result_type operator()(URBG& g, const param_type& parm); // (2)
3131
```cpp example
3232
#include <iostream>
3333
#include <random>
34+
#include <cstdint>
3435
3536
int main()
3637
{
3738
std::random_device seed_gen;
38-
std::mt19937 engine(seed_gen());
39+
std::uint32_t seed = seed_gen();
40+
std::mt19937 engine(seed);
3941
4042
std::cout << std::boolalpha;
4143

reference/random/bernoulli_distribution/op_constructor.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,13 @@ explicit bernoulli_distribution(const param_type& parm); // (3)
3131
```cpp example
3232
#include <iostream>
3333
#include <random>
34+
#include <cstdint>
3435
3536
int main()
3637
{
3738
std::random_device seed_gen;
38-
std::default_random_engine engine(seed_gen());
39+
std::uint32_t seed = seed_gen();
40+
std::default_random_engine engine(seed);
3941
4042
std::cout << std::boolalpha;
4143

reference/random/bernoulli_distribution/reset.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,13 @@ void reset();
3030
```cpp example
3131
#include <iostream>
3232
#include <random>
33+
#include <cstdint>
3334

3435
int main()
3536
{
3637
std::random_device seed_gen;
37-
std::default_random_engine engine(seed_gen());
38+
std::uint32_t seed = seed_gen();
39+
std::default_random_engine engine(seed);
3840

3941
std::bernoulli_distribution dist(0.5);
4042

reference/random/binomial_distribution.md

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,11 +76,13 @@ namespace std {
7676
```cpp example
7777
#include <iostream>
7878
#include <random>
79+
#include <cstdint>
7980
8081
int main()
8182
{
8283
std::random_device seed_gen;
83-
std::default_random_engine engine(seed_gen());
84+
std::uint32_t seed = seed_gen();
85+
std::default_random_engine engine(seed);
8486
8587
// 成功確率0.5の事象を5回試行する
8688
std::binomial_distribution<> dist(5, 0.5);

0 commit comments

Comments
 (0)