C里的RAND
#include <stdlib.h>
#include <stdio.h>
int main()
{
srand(time(0));
printf("%d\n", rand());
return 0;
}
使用C++11 里的Mersenne Twister随机数
C++11支持的Mersenne Twister可以非常轻量级的快速生成大量随机数.适合在benchmark的时候使用
#include <iostream>
#include <random>
main() {
std::mt19937_64 rng;
// 使用系统时间生成随机数种子
rng.seed(static_cast<unsigned int>(std::time(0)));
// 生成32-bit的随机整数
std::cout << rng() << std::endl;
// 生成 1到255之间(包括1和255) 的随机数
std::uniform_int_distribution<int> unif(1, 255);
std::cout << unif(rng)<< std::endl;
// 以概率0.3生成true, 0.7生成false
std::bernoulli_distribution bern(0.3);
std::cout << bern(rng) << std::endl;
}
No comments:
Post a Comment