我正在使用srand(
),并且需要在一次执行中使用一组不同种子(如100,200,300,...,1000)来运行测试。这可能吗?事情是srand()
是在main的开头定义的,所以我不知道如何用变量控制种子。如何在运行时更改srand()
0
A
回答
3
您可以使用srand(time(NULL)),并包含time.h头文件。它用当前系统时间初始化srand()。希望能帮助到你。 !
+2
这对单元测试并不是很有用。在运行单元测试时,您需要rand()返回相同的数字集合,以便在每次测试开始时使用带有常数值的srand(),以确保获得一致的结果。 –
0
如果单元测试测试使用rand()的代码,则应该调用srand(<const>)
作为测试设置的一部分。
这种方式测试行为以相同的方式是天气它是一个套件的一部分是独立运行。
0
对于srand调用中使用的每个不同的种子值,伪随机数生成器可以预期在随后的rand调用中生成不同的连续结果。 使用相同种子的两种不同的初始化,指示伪随机生成器为随后在两种情况下对rand的调用生成相同的连续结果。
这可能说明:
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
printf ("First number: %d\n", rand() % 100);
srand (time(NULL));
printf ("Random number: %d\n", rand() % 100);
srand (1);
printf ("Again the first number: %d\n", rand() %100);
srand (time(NULL));
printf ("Random number: %d\n", rand() % 100);
printf ("Random number: %d\n", rand() % 100);
printf ("Random number: %d\n", rand() % 100);
printf ("Random number: %d\n", rand() % 100);
return 0;
}
输出:
First number: 41
Random number: 76
Again the first number: 41
Random number: 76
Random number: 14
Random number: 74
Random number: 41
Press any key to continue
相关问题
- 1. 在运行时如何在运行时更改属性值
- 2. GWT如何在运行时更改css
- 3. 如何在运行时更改persistence.xml
- 4. 如何在运行时更改图标
- 5. 如何在运行时更改sql_mode
- 6. 如何在运行时更改log4j appender?
- 7. 如何在运行时更改语言
- 8. 如何在运行时更改basicHttpBinding sendTimeout?
- 9. 如何在运行时更改EasingDoubleKeyFrame值?
- 10. 如何在运行时更改CurrentCulture?
- 11. 如何在运行时更改图像?
- 12. WPF:如何在运行时更改CurrentUICulture
- 13. 如何在运行时更改iframe src?
- 14. 如何在运行时更改
- 15. 如何在运行时更改视图
- 16. 在运行时更改appconfig
- 17. 在运行时更改Winsock.LocalIP
- 18. 在运行时更改string.xml
- 19. 在运行时更改ListItem
- 20. 在运行时更改dbContext
- 21. 在运行时更改fieldCls
- 22. 更改在运行时
- 23. 在运行时更改LSApplicationQueriesSchemes
- 24. 如何更改文件名,运行时
- 25. 如何更改CMFCToolBar运行时间
- 26. 在运行时更改datagridview行颜色
- 27. 在运行时更改JList行颜色
- 28. 如何在运行时更改静态方法的行为?
- 29. 如何在运行时更改Access表中的列“行源”?
- 30. 如何在运行时更改propertygrid griditem行为?
srand()函数可用于任何你想要的。如果你想要一个特定的测试有一个特定的种子,那么在测试之前调用srand(种子)。 –
只是把代码放在一个for循环中,并在每次迭代时调用srand aht开头。 – NoSenseEtAl
您是否在问如何特别修改种子中的变量以便输出100,200 ...... 1000?或者其他任何序列? – BlueMeanie