中心極限定理使って標準正規分布に従う乱数を作る
「同一の分布に従う独立な乱数の和は正規分布に従う」という中心極限定理の教えを使って標準正規分布に従う乱数を生成する関数。
何か思いついて即使いたい時に特に何もインクルードしなくてもさっと使えるようにメモ。
double NormalRand() { double result = 0; for(int i = 0; i < 12; i++) { result += static_cast<double>(std::rand()) / RAND_MAX; } return(result - 6.0); }
↓コピペしてコンパイルすれば動くmain関数付きのコード
#include<iostream> double NormalRand() { double result = 0; for(int i = 0; i < 12; i++) { result += static_cast<double>(std::rand()) / RAND_MAX; } return(result - 6.0); } int main() { //シードの指定 std::srand(10); //乱数の生成 std::cout << NormalRand() << std::endl; std::cout << NormalRand() << std::endl; std::cout << NormalRand() << std::endl; std::cout << NormalRand() << std::endl; std::cout << NormalRand() << std::endl; return 0; }