我发现了很多关于如何在C++中生成1和10之间的随机数的文章,但是我很努力的找到一种方法来处理负数被包含在内。我试图得到一个在[-1,1]范围内生成的随机数字,但我找不到包含底片的好例子。在C++中生成一个随机数,包括一个负范围
2
A
回答
5
如果你谈论的是实数,使用std::uniform_real_distribution
:
std::default_random_engine generator(
std::chrono::system_clock::now().time_since_epoch().count());
std::uniform_real_distribution<double> distribution(-1.0, 1.0);
std::cout << distribution(generator) << std::endl;
一定要包括<random>
。这是一个live example。
如果你只限于rand()
,这是你能做的最好的:
srand(static_cast<unsigned int>(time(NULL)));
double x = -1. + rand()/(RAND_MAX/2.);
std::cout << x << std::endl;
一定要包括<cstdlib>
或<stdlib.h>
。这是另一个live example。但请注意,<random>
标题优于rand()
。有关更多信息,请参阅此演示文稿以了解为什么rand() is considered harmful。
+0
不幸的是我只能使用rand()。有什么办法可以做到这一点? –
相关问题
- 1. 生成一个随机数的范围
- 2. 每天在一个范围内生成一个随机整数
- 3. 在一个范围内生成'n'个唯一随机数
- 4. 使用C#在一个范围内产生一个随机数
- 5. 如何在C范围内生成一个随机数?
- 6. 在一个范围内生成'n'唯一的随机数
- 7. 在excel中生成一个随机数字范围
- 8. 在程序集中生成一个范围内的随机数
- 9. 生成范围之间的随机数,包括在javascript
- 10. 生成一个随机数落入多个范围
- 11. 在范围内生成一个随机偶数?
- 12. 在一个范围内生成不同的随机数
- 13. 在权重/偏差范围内生成一个随机数?
- 14. 需要在指定范围内生成一个随机整数
- 15. Java在特定范围内生成一个随机数?
- 16. 如何在Rust的范围内生成一个随机数?
- 17. 如何在一个范围内生成一个随机数,但排除一些?
- 18. 在一个范围内生成一个随机数。没有Overlflow。在Java
- 19. 从列表生成一个随机数,不包括其中一个数
- 20. 如何在c中生成一个范围内的随机数字#
- 21. 生成一个随机的负NSInteger的
- 22. 如何在由C++中的负值和正值组成的范围内生成一个随机数?
- 23. 在一个范围内的随机数
- 24. 生成一个范围内的随机整数(无限循环)
- 25. 生成一个小范围的随机不重复的整数
- 26. 生成一个范围内的随机数1 - 10
- 27. 在MATLAB中生成负数和负数范围内的随机整数
- 28. C++:如何从一个数组中生成一个随机数
- 29. 在SML中生成一个随机数
- 30. 在JavaScript中生成一个随机数
你打算怎么做? (代码) –
http://www.cplusplus.com/reference/random/uniform_real_distribution/uniform_real_distribution/ – PeterSW
只需生成一个介于0和2之间的随机数并从中减去1即可。 – Snps