1. 程式人生 > >C++偽隨機數

C++偽隨機數

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); }