coy*_*508 14
使用c ++ 11,使用c ++ 11的标准随机库,您可以这样做:
#include <iostream>
#include <random>
int main()
{
/* Seed */
std::random_device rd;
/* Random number generator */
std::default_random_engine generator(rd());
/* Distribution on which to apply the generator */
std::uniform_int_distribution<long long unsigned> distribution(0,0xFFFFFFFFFFFFFFFF);
for (int i = 0; i < 10; i++) {
std::cout << distribution(generator) << std::endl;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
由于该范围内的均匀随机数[0, 2^64)只有64个随机位,您可以直接使用返回值std::mt19937_64:
#include <random>
int main () {
std::mt19937_64 gen (std::random_device{}());
std::uint64_t randomNumber = gen();
}
Run Code Online (Sandbox Code Playgroud)
需要注意的是播种梅森倍捻机引擎与一个32位的种子是不是最佳的,更好的方式,看看这个.
另请注意,rand这些天通常不鼓励使用.以下是Stephan T. Lavavej关于该主题的演讲.
| 归档时间: |
|
| 查看次数: |
6696 次 |
| 最近记录: |