Skip to content
Kasugaccho edited this page Mar 8, 2019 · 2 revisions

乱数生成

乱数を生成する(32bit)

std::uint_fast32_t dtl::random::mersenne_twister_32bit();

#include <iostream>
#include "DTL.hpp"

int main() {

	for (int i{}; i < 10; ++i)
		std::cout << dtl::random::mersenne_twister_32bit() << std::endl;

	return 0;
}

出力例

875639570
3539211287
688681168
3806140501
157396773
729477269
2014359681
306063025
4211512868
3067440185

0から(n-1)までの範囲の乱数を生成する(32bit)

std::int_fast32_t dtl::random::mersenne_twister_32bit(std::int_fast32_t n);

#include <iostream>
#include "DTL.hpp"

int main() {

	for (int i{}; i < 10; ++i)
		std::cout << dtl::random::mersenne_twister_32bit(6) << std::endl;

	return 0;
}

出力例

2
3
0
4
1
5
1
5
3
4

startからendまでの範囲の乱数を生成する(32bit)

std::int_fast32_t dtl::random::mersenne_twister_32bit(std::int_fast32_t start, std::int_fast32_t end);

#include <iostream>
#include "DTL.hpp"

int main() {

	for (int i{}; i < 10; ++i)
		std::cout << dtl::random::mersenne_twister_32bit(0, 4) << std::endl;

	return 0;
}

出力例

3
4
2
0
0
1
4
2
4
3

0.5(50%)の確率でtrueが出る乱数

bool dtl::random::mersenne_twister_32bit.probability();

#include <iostream>
#include "DTL.hpp"

int main() {

	for (int i{}; i < 10; ++i)
		std::cout << dtl::random::mersenne_twister_32bit.probability() << std::endl;

	return 0;
}

出力例

1
0
1
0
0
1
1
1
0
0

nの確率でtrueが出る乱数

bool dtl::random::mersenne_twister_32bit.probability(double n);

#include <iostream>
#include "DTL.hpp"

int main() {

	for (int i{}; i < 10; ++i)
		std::cout << dtl::random::mersenne_twister_32bit.probability(0.7) << std::endl;

	return 0;
}

出力例

1
0
1
1
0
0
1
1
1
1

SEEDの変更(自動)

void dtl::random::mersenne_twister_32bit.seed();

SEEDの変更(手動)

void dtl::random::mersenne_twister_32bit.seed(std::uint_fast32_t seed);

当記事のライセンス

CC0

Clone this wiki locally