C++ 随机函数
1.產生隨機數:
? ?rand():內部實現是用線性同余法做的,它不是真的隨機數,因其周期特別長,故在一定的范圍里可看成是隨機的。
? ? ? ? ? ? ? ? ?rand()返回一隨機數值的范圍在0至RAND_MAX 間。RAND_MAX的范圍最少是在32767之間(int)。
? ? ? ? ? ? ? ? ?所在的頭文件:#include <cstdlib> // 標準庫
?
實現代碼:
#include <iostream>#include <cstdlib> // 標準庫using namespace std;int main(int argc, const char * argv[]) {cout << rand() << endl;cout << rand() << endl;return 0;}運行結果:
?
2.如果沒加srand()初始化隨機數發生器,會發現rand雖然產生了隨機數,但是重復運行會發現隨機數
? ?不會變。同樣是下面對應的兩個數。用戶未設定隨機數種子時,系統默認的隨機數種子為1。
?
3.srand()初始化:rand()產生的是偽隨機數字,每次執行時是相同的;若要不同,用函數srand()初始化它。
? 語法:void?srand(unsigned? int? seed);??
? 所在頭文件:cstdlib
? 參數seed必須是個整數,通??梢岳胻ime(0)的返回值或NULL來當做seed。
#include <iostream>#include <cstdlib> // 標準庫#include <ctime>using namespace std;int main(int argc, const char * argv[]) {srand((unsigned)time(NULL));cout << rand() << endl;return 0;}運行結果:
?
總結
- 上一篇: 对于超前,滞后,超前滞后使用范围
- 下一篇: 用当下的力量共创未来——2017(第十五