ランダウ分布で乱数生成したい(TRandomMixMax::Landau)
1#include <TRandomMixMax.h>
2// 乱数生成器を初期化
3TRandomMixMax rng;
4// 平均0、スケール1のランドウ分布に従う乱数を生成
5double randomValue = rng.Landau(0, 1);
TRandomMixMax::Landauでランダウ分布にしたがう乱数を生成できます。
引数に平均値とスケールを指定することで、任意のランダウ分布の乱数を取得できます。
ランダウ分布のヒストグラムを作りたい
1#include <TCanvas.h>
2#include <TH1D.h>
3#include <TRandomMixMax.h>
4
5TCanvas *c = new TCanvas("c", "Landau Distribution", 800, 600);
6TH1D *h = new TH1D("h", "Landau Distribution", 100, -5, 5);
7
8TRandomMixMax rng;
9for (int i = 0; i < 10000; i++) {
10 h->Fill(rng.Landau(0, 1));
11}
12h->Draw();
このサンプルでは、平均0、スケール1のランドウ分布にしたがう乱数を10000個生成し、その分布をヒストグラムで可視化しています。