随机函数在循环中调用时返回相同的数字!C++
Random Function Returns The Same Number When Called Inside A Loop! C++
我想在我的ff
类中创建一个单独的函数来生成一个随机数并返回该数字。当在循环外使用时,该功能似乎可以完美运行。但是,当我将函数放入循环中时,即使我每次都调用随机函数,它也会不断生成相同的数字!我到底做错了什么?!
//return a random number
int ff::random_number() const
{
srand((unsigned)time(NULL));
return (rand() % 20 + 1); //in the range of 1 to 20
}
//creates an int list of random size and random elements
int ff::create_random_list()
{
list_length = random_number(); //the list size
list_of_numbers = new int[list_length]; //initilize the list
for (int i = 0; i < list_length; ++i)
list_of_numbers[i] = random_number(); //insert a random number
return 1;
}
- 注意:我已经检查了在这个问题之前发布的所有类似问题,但没有回答我的问题。只是为了清楚。
您必须为函数设定种子一次,而不是每次(当您在循环中使用函数时会发生这种情况(。
所以这行:
srand((unsigned)time(NULL));
应该执行一次。
相关文章:
- 比较并显示使用最小值(a,b)和最大值(a、b)升序排列的4个数字
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- 检查输入是否不是整数或数字
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- 如何用数字处理log(0)
- 最高有效数字侧的第N位
- 如何获取一个数字的前3位
- 查找最接近的大于当前数字的数字的索引
- 找到两对数字,使它们的乘积的绝对差最小化
- 我想做一个彼此不同但重复出现的数字
- 将数字转换为字母(例如:123 转换为一二三)
- C++如何计算用户输入的数字中的偶数位数
- 如何在C++中确定文本文件中的元素是字符还是数字
- 打印数字图案
- C++问题:用户认为数字1-100,程序提出问题不超过6次即可得到答案。无法正确
- 如何检查一个c++字符串中有多少相同的字符/数字
- 求出有多少个数字是完美平方,而sqrt()是L,R范围内的素数
- 将数字打印成文字
- 当使用比格式支持的精度更高的精度来显示数字时,会写出什么数据
- 在将数字随机生成为数组期间从内存输出随机数的数组