随机数生成
C++标准库的随机数生成需要两个组件一个是随机数engine,另一个是随机分布。一般使用default_random_engine,一个基本例子如下
default_random_engine e;
normal_distribution<double> n(0, 1);
double r = n(e); //返回一个均值0,方差为1的正态随机数
常用分布如下
uniform_int_distribution<int> u(low, high)
uniformreal_distribution<double> u(low, high)
bernoulli_distribution b(p)
binomial_distribution<int> b(t, p)
geometric_distribution<int> g(p)
negative_binomial_distribution<int> nb(k, p)
possion_distribution<int> p(x)
exponential_distribution<double> e(lambda)
gamma_distribution<double> g(a, b)
weibull_distribution<double> w(a, b)
extreme_value_distribution<double> e(a, b)
normal_distribution<double> n(mean, var)
lognormal_distribution<doule> logn(mean, std)
chi_squared_distribution<double> c(x)
cauchy_distribution<double> c(a,b)
fisher_f_distribution<double> f(m, n)
student_t_distribution<double> s(n)