2008年8月22日 星期五

C++ - rand

如何隨機產生值哩?


#include <iostream>
#include <time.h>

using namespace std;

const int MAX=100;

int main(int argc,char *argv[])
{
  srand((unsigned)time(NULL)); // 把目前的時間設定為rand的seed,確保每一次的seed都不同
  for (int i=0;i<10;i++)
    cout << rand()%MAX<<endl; // 印出0-99的隨機數值
  return 0;
}


C++中的標準函式庫<cstdlib>(包含在<iostream>中)提供兩個幫助生成偽隨機數的函數:rand()srand();因此,我們必需包含iostream。

rand的seed預設值是1,且當seed一樣時,每一次產生出來的數會是一樣的,因此,我們必需每一次輸入不同的seed,使得產生出來的值才會是隨機值,因此,我們透過讀取當前的時間當作seed,則每一次都會不一樣。

參考資料:
隨機函數rand()[c++]
C++中用rand()和srand()產生偽隨機數

沒有留言: