10
A
回答
25
7
您的代碼返回(0-9和17-9)=(-9和8)之間的數字。
爲了您的信息
rand() % N;
0和回報之間的數N-1 :)
正確的代碼是
rand() % 19 + (-9);
2
你是正確的,有18張數計數-9和9(含)。
但計算機使用整數(Z集),其中包括零,這使得它的19個數字。
您從rand()通過RAND_MAX獲得的最小比例爲0,因此您需要減去9才能得到-9。
此外,manpage for the rand function報價:
「如果你想生成1到10之間的任意整數,你總是應該通過使用高序位做到這一點,因爲在
j = 1 + (int) (10.0 * (rand()/(RAND_MAX + 1.0)));
也不會被任何類似
j = 1 + (rand() % 10);
(它使用較低位)。「
所以你的情況,這將是:
int n= -9+ int((2* 9+ 1)* 1.* rand()/ (RAND_MAX+ 1.));
5
不要忘記新C++11 pseudo-random functionality,如果你的編譯器已經支持它可能是一個選項。
僞代碼:你有疑問
std::mt19937 gen(someSeed);
std::uniform_int_distribution<int> dis(-9, 9);
int myNumber = dis(gen)
0
相關問題
- 1. C++隨機數1-9
- 2. masm32隨機整數0-9
- 3. 轉換 - 2000 11月9日至2000年9月11日
- 4. EXC_BAD_ACCESS隨機位置iOS 9
- 5. 在C++中生成1到9之間的隨機數
- 6. fullcalendar週日期格式:9月23日至29日,而不是2012的:9月23日至29日2012
- 7. 生成隨機數從1到9,並在Android的
- 8. C隨機矩陣,數字介於0和9之間
- 9. 從9箇中選擇四個隨機數而不重複
- 10. iOS 9 ReplayKit隨機殺掉AVAudioPlayer
- 11. 通過`9`通過`9`在C#
- 12. 在Swift中生成9位數的隨機數
- 13. 從Xcode 9隱藏日誌?
- 14. 升級gitlab亞軍從9時至10
- 15. 填充在C#中與0-9之間潮頭隨機數的數組
- 16. IntelliJ 9;在C:\ Users \
- 17. 如何在Java中生成一個隨機的9位數字?
- 18. 隨機4位數字不包括數字8和9
- 19. 用1-9的所有數字生成隨機整數
- 20. 包含前導零的第9代數字隨機數
- 21. Odoo 9和機會
- 22. 將日期文本轉換爲R中的日期值(即1962年9月30日至9/30/1962)?
- 23. 鑽石形狀內爲輸出數1至9 C++
- 24. 如何生成一個隨機數從1到9的矩陣,在PYTHON中有隨機的行和列
- 25. 3個數字相同從1-9之間的隨機數列表
- 26. DirectX 9 - 獲取相機分辨率? (C++)
- 27. Flash:隨機生成0-9重複的數字
- 28. 加入了9張隨機數與tensorflow/Python
- 29. 如何用SQL Server 2008R2中的9位隨機數替換SSN?
- 30. Flash AS3隨機函數,0-9,例外,例外
相關:http://stackoverflow.com/questions/686353/c-random-float/686373#686373 –