我必须生成范围[-100; + 2000] in C++。如果只有正数可用,我怎样才能用rand来做到这一点?有没有什么快捷方式?随机和负数
Q
随机和负数
9
A
回答
35
产生然后在0和2100之间的随机数中减去100
甲快速谷歌搜索翻起decent looking article on using Rand().它包括代码示例,与特定的工作范围在文章的结尾。
4
你能从0-2100产生一个数字并减去100吗?
6
生成一个0到2100之间的随机数,然后减去100.
3
这是代码。
#include <cstdlib>
#include <ctime>
int main()
{
srand((unsigned)time(0));
int min = 999, max = -1;
for(size_t i = 0; i < 100000; ++i)
{
int val = (rand()%2101)-100;
if(val < min) min = val;
if(val > max) max = val;
}
}
1
目前我的C++语法是有点生疏,但你应该编写一个函数,有两个参数:size
和offset
。
因此,您可以生成具有给定size
的数字作为最大值,然后为其添加(负)偏移量。
的功能将类似于:
int GetRandom(int size, int offset = 0);
,并会在你的情况可以这样调用:
int myValue = GetRandom(2100, -100);
1
在C++ 0x中,他们将加强这为它提供更好的支持了标准库。
5
可以使用C++ TR1随机函数来生成所期望的分配号码。
std::random_device rseed;
std::mt19937 rng(rseed());
std::uniform_int<int> dist(-100,2100);
std::cout << dist(rng) << '\n';
+0
对于没有TR1的人来说,boost :: random非常接近。 – MSalters 2010-10-01 08:28:37
相关问题
- 1. asp.net负载随机
- 2. 在Jmeter中设置随机函数的随机负数?
- 3. JavaScript随机正数或负数
- 4. 在MATLAB中生成负数和负数范围内的随机整数
- 5. C#中的随机替换正数和负数数组#
- 6. 的Java随机给予负数
- 7. 如何随机使用负数.randrange
- 8. 负重随机选择
- 9. 如何在VBA中生成随机正数和负数
- 10. 总和随机数
- 11. StackOverflowError和随机数
- 12. gfortran和随机数
- 13. 数组和随机数
- 14. 数组,函数和随机
- 15. 如何在PHP中获得随机十进制数(正数和负数)
- 16. 如何生成随机正数或负数小数?
- 17. Javascript/jQuery随机调整负载图片?
- 18. 负载随机化的文本内容
- 19. 在Apache中的随机负载平衡
- 20. 生成一个随机的负NSInteger的
- 21. 数组和随机值
- 22. c#概率和随机数
- 23. 随机数和微软CNG
- 24. Java循环和随机数
- 25. 随机int64和float64数字
- 26. 概率和随机数
- 27. 随机数的总和
- 28. Android随机数和edittext
- 29. 随机数和多键c#
- 30. 具有随机范围和函数的随机数组
这不会给出均匀分布!另外,找到100000个这样的数字的最小值和最大值与该问题无关。 – darklon 2010-09-30 13:49:12
另外,如果偶然'val'每次都是'-100',那么产生的'max'将是错误的。同上最低。 – 2010-09-30 15:36:44
@Cornelius,@Ben:谁在乎?这只是一个演示。如果我只发布了'(rand()%2101)-100',那会比可编译的,可运行的样本更好?请。 – 2010-09-30 16:08:18