【Boost】boost库的随机数的例子

void test_mt19937()
{
	// 以时间为种子创建一个随机数发生器
	boost::mt19937 rng(time(0));
	for (int i = 0; i < 100; ++i)
	{
		std::cout << rng() << std::endl;
	}
}

void test_rand48()
{
	boost::rand48 rng;
	for (int i = 0; i < 10; ++i)
	{
		std::cout << rng() * 1.0 / std::numeric_limits<boost::rand48::result_type>::max() << std::endl;
	}
}

// uniform_smallint:在小整数域内的均匀分布
// uniform_int:在整数域上的均匀分布
// uniform_01:在区间[0,1]上的实数连续均匀分布
// uniform_real:在区间[min,max]上的实数连续均匀分布
// bernoulli_distribution:伯努利分布
// binomial_distribution:二项分布
// cauchy_distribution:柯西(洛伦兹)分布
// gamma_distribution:伽马分布
// poisson_distribution:泊松分布
// geometric_distribution:几何分布
// triangle_distribution:三角分布
// exponential_distribution:指数分布
// normal_distribution:正态分布
// lognormal_distribution:对数正态分布
// uniform_on_sphere:球面均匀分布

void test_random_distribute()
{
	boost::mt19937 rng(time(0));
	
	// 1. uniform_int
	boost::uniform_int<> ui(0, 255);
	for (int i = 0; i < 10; ++i)
	{ 
		std::cout<< ui(rng) << std::endl;
	}

	// 2. uniform_01
	boost::uniform_01<boost::mt19937&> u01(rng);
	for (int i = 0; i < 10; ++i)
	{ 
		std::cout<< u01() << std::endl;
	}
}

你可能感兴趣的:(【Boost】boost库的随机数的例子)