C++偽隨機數
阿新 • • 發佈:2019-01-08
rand函式
rand函式在產生隨機數前,需要系統提供的生成偽隨機數序列的種子,rand根據這個種子的值產生一系列隨機數。如果系統提供的種子沒有變化,每次呼叫rand函式生成的偽隨機數序列都是一樣的。srand(unsigned seed)通過引數seed改變系統提供的種子值,從而可以使得每次呼叫rand函式生成的偽隨機數序列不同,從而實現真正意義上的“隨機”。通常可以利用系統時間來改變系統的種子值,即srand(time(NULL)),可以為rand函式提供不同的種子值,進而產生不同的隨機數序列。
#include<iostream>
#include<ctime>
#include<cstdlib>
using namespace std;
double random(double,double);
int main()
{
srand( unsigned( time(0) ) );//srand(time(NULL));
for(int j = 0; j < 10; j++)
cout << "No." << j+1 << ":" << int(random(11,100)) << endl;
return 0;
}
/**
start:值的下限
end:值的上限
*/
double random(double start,double end)
{
return start + (end - start) * rand() / (RAND_MAX + 1.0);
}