我正在使用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