如何添加在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