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

来源:互联网 发布:淘宝卖家给买家发短信 编辑:程序博客网 时间:2024/05/17 04:26
[cpp] view plain copy print?
  1. void test_mt19937()  
  2. {  
  3.     // 以时间为种子创建一个随机数发生器  
  4.     boost::mt19937 rng(time(0));  
  5.     for (int i = 0; i < 100; ++i)  
  6.     {  
  7.         std::cout << rng() << std::endl;  
  8.     }  
  9. }  
  10.   
  11. void test_rand48()  
  12. {  
  13.     boost::rand48 rng;  
  14.     for (int i = 0; i < 10; ++i)  
  15.     {  
  16.         std::cout << rng() * 1.0 / std::numeric_limits<boost::rand48::result_type>::max() << std::endl;  
  17.     }  
  18. }  
  19.   
  20. // uniform_smallint:在小整数域内的均匀分布  
  21. // uniform_int:在整数域上的均匀分布  
  22. // uniform_01:在区间[0,1]上的实数连续均匀分布  
  23. // uniform_real:在区间[min,max]上的实数连续均匀分布  
  24. // bernoulli_distribution:伯努利分布  
  25. // binomial_distribution:二项分布  
  26. // cauchy_distribution:柯西(洛伦兹)分布  
  27. // gamma_distribution:伽马分布  
  28. // poisson_distribution:泊松分布  
  29. // geometric_distribution:几何分布  
  30. // triangle_distribution:三角分布  
  31. // exponential_distribution:指数分布  
  32. // normal_distribution:正态分布  
  33. // lognormal_distribution:对数正态分布  
  34. // uniform_on_sphere:球面均匀分布  
  35.   
  36. void test_random_distribute()  
  37. {  
  38.     boost::mt19937 rng(time(0));  
  39.       
  40.     // 1. uniform_int  
  41.     boost::uniform_int<> ui(0, 255);  
  42.     for (int i = 0; i < 10; ++i)  
  43.     {   
  44.         std::cout<< ui(rng) << std::endl;  
  45.     }  
  46.   
  47.     // 2. uniform_01  
  48.     boost::uniform_01<boost::mt19937&> u01(rng);  
  49.     for (int i = 0; i < 10; ++i)  
  50.     {   
  51.         std::cout<< u01() << std::endl;  
  52.     }  
  53. }  


0 0
原创粉丝点击