如何添加在C++ 100和-100之间的随机整数为int变量?添加随机整数在C++
回答
int rnd = 0;
rnd += ((rand() * 200)/RAND_MAX) - 100;
编辑:显然这将有问题,其中RAND_MAX等于INT_MAX。在这种情况下,答案如下:Adding random integer number in c++可能更合适。
编辑:在Windows平台上RAND_MAX定义0x7FFF的,因此该计算将会成功。在其他平台上,情况可能并非如此。
'RAND_MAX'不能保证小于'INT_MAX'。事实上,在大多数系统中,事实并非如此。 – aaz 2011-03-15 13:45:34
继续@aaz评论:在我的gcc/linux上,“RAND_MAX == INT_MAX”。由于'rand()'返回一个'int',表达式'rand()* 200'的类型为'int'。所以,上面的表达式中有界限:'([0.INT_MAX] * 200)/ INT_MAX - 100)'或'([INT_MIN.INT_MAX]/INT_MAX - 100)',或'(0 - 100)'。这个解决方案,在我的机器上,无论rand()的返回值如何,都会产生值“-100”。 – 2011-03-15 15:02:25
当OP接受这样严重错误的答案时,我的心就会酸痛。 – TonyK 2011-03-15 21:59:40
你可以这样做:
生成0之间的随机数为100,与0之间的随机数中减去100。
#include <cstdlib>
#include <ctime>
#include <iostream>
using namespace std;
int main()
{
srand((unsigned)time(0));
int random_integer;
random_integer = (rand()%101) - (rand()%101);
cout << random_integer << endl;
return 0;
}
这将起作用,但应该指出的是,结果不会从统一分布中得出。看看P(n = 100)= P(a = 100)* P(b = 0)= 1/101 * 1/101 = 1/10201,其中n是结果数,a和b是两个数字绘制。另一方面,'P(n = 99)= P(a = 99)* P(b = 0)+ P(a = 100)* P(b = 1)= 2/10201'。这种趋势一直持续到'P(n = 0)= 1/101',然后对称'P(n = -99)= 2/10201'和'P(n = -100)= 1/10201'。 – DrBards 2012-12-19 03:43:06
value += (rand() % 201) - 100; // it's 201 becouse with 200 the value would be in [-100, 99]
不要忘了初始化随机值的种子(调用srand()),否则它将生成相同的值。初始化种子的好办法是与时间:
srand(time(NULL));
在C++ 11:
#include <random>
int main()
{
typedef std::mt19937_64 G;
G g;
typedef std::uniform_int_distribution<> D;
D d(-100, 100);
int x = 0;
x += d(g);
}
随机性的其它来源也是可用的,例如:
minstd_rand0
minstd_rand
mt19937
ranlux24_base
ranlux48_base
ranlux24
ranlux48
knuth_b
刚更改typedef G
以适应您的口味。如果你喜欢,你可以在施工时播种g
。
- 1. 添加随机数
- 2. 如何将随机整数数组添加到gridview android
- 3. 伪随机整数
- 4. 随机整数:Android
- 5. 随机整数号
- 6. 随机整数/事件(C++)问题
- 7. 如何将随机整数添加到ArrayList而不会重复
- 8. 为文件中的每个单词添加随机整数
- 9. 试图添加随机整数的总和,VBA
- 10. C#随机数
- 11. 随机数(0,1)在C
- 12. 随机函数在C#
- 13. C#:添加整数输出
- 14. JQuery UI拖放 - 添加随机数
- 15. 在数组中存储随机整数
- 16. C#随机数是不是“随机”
- 17. 随机整数列表
- 18. 随机整数行为
- 19. Java中的随机整数
- 20. MIPS 32位随机整数
- 21. C++的随机数
- 22. Objective C随机数
- 23. 随机添加-1,0或1到C中的数字
- 24. C++数组值随机增加一个
- 25. 加权随机数生成C#
- 26. 在C中添加指针的整数
- 27. C中的随机加权#
- 28. 添加随机数在PHP代码来创建和显示随机图片
- 29. VBA:添加随机号码,在网格
- 30. 在C#中随机“整理”(整理)整数列表的最有效方法
1.生成随机intereger 2.添加整数 3. ???? 4.利润 – sharptooth 2011-03-15 13:18:28
使用'+'运算符。 – aib 2011-03-15 13:19:31
我该如何做第1步,即生成一个随机整数?明显地添加它很容易。 – 2011-03-15 13:23:18