生成大于32767的随机数
Generate random number bigger than 32767
我正试图为变量分配一个精确地介于0和65535之间的数字,但我不能,因为RAND_MAX
设置为32767。如何生成一个大于32767的随机数,同时生成的数字可能在0到65535之间?
如果您的编译器支持C++11,您可以执行以下操作:
#include <iostream>
#include <random>
int main()
{
std::random_device rd;
std::default_random_engine eng {rd()};
std::uniform_int_distribution<> dist(0, 65535);
for(unsigned i = 0; i < 10; ++i)
std::cout << dist(eng) << 'n';
}
样本输出:
38198
49494
41521
10688
1262
51014
36094
16740
1212
59184
我会尝试这样的东西:
int msb = (rand() % 2) << 15;
int random = msb | rand();
也就是说,我生成两个随机数。第一个(msb)将设置第二个(随机)的最高有效位。
相关文章:
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 整数不会重复超过随机数
- if数组上的随机数
- 在将数字随机生成为数组期间从内存输出随机数的数组
- 半随机数生成C++
- 程序在尝试猜测它选择的随机数时进入无限循环?
- 有没有办法在 c++ 中同时生成随机数?如果没有,是否有解决方法?
- 具有随机数的二维数组不会更改
- 随机数未达到限制
- 我想生成许多矩阵并用随机数填充它
- <random>在实践中应该实际使用哪个随机数引擎? std::mt19937?
- 制作具有平均值的随机数生成器
- 为什么 rand 不在我的代码中生成随机数?
- C++ 随机数生成器:尝试将结果作为向量获取,但通过制作 void 函数来执行此操作而出现错误
- 从给定种子生成相同的随机数序列C++
- 随机数生成函数说明
- C++ 尝试生成随机数时弹出警告帮助?
- 尝试在 c++ 中创建随机数生成器并收到错误
- 从给定的随机数组值生成随机数 Arduino程序C++
- 生成大于32767的随机数