<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 1,  comments - 0,  trackbacks - 0
    隨機數與隨機種子      
          調用隨機數函數 rand() 的時候, 實際得到的這個隨機數并不是絕對隨機的,它是以一個初始值,通過一個算法,計算出來的“偽隨機數"數列,每次調用rand()時,從這個數列依次取出一個值,做為隨機數。這個初始的值就是"隨機數種子", 也就是說,如果隨機數種子相同,計算出的隨機數數列是相同的。而srandom( x) 這個函數就是初始化隨機數產生器,設定隨機數種子用的。給定的x的就是隨機數種子??梢则炞C,當你多次調用srandm(x)時,如果x取值相同,則得到的隨機數數列是一樣的。所以,若我們每次運行程序時,要得到不同的隨機數序列,就應該用不同的種子來初始化這個隨機數產生器。比如說,用時間初始化它,或者用getpid(),用進程的pid號初始化,由于每次運行程序時,它的pid號一般是不同的,所以能夠產生不同的隨機數序列。

    舉例說明
    在vc++中程序中用了srandom()和random(),頭文件為stdlib.h,但編譯出現錯誤error C3861: “srandom”: 找不到標識符。
      原因是現在vc++編譯器的庫函數中沒有randomize()和random(),分別用srand()和rand()代替了。
      #include <time.h> //定義關于時間的函數  
      一般在用到time(NULL)(當前時間)函數時需要包含此頭文件  
      #include <stdlib.h> //定義雜項函數及內存分配函數  
      一般在用到rand()和srand()函數時需要包含此頭文件  

      函數名: random 功 能: 隨機數發生器,也就是產生一個隨機數  
      用 法: int random(int num);  
      產生的隨機數范圍為0~num-1。  

      函數名: randomize  
      功 能: 初始化隨機數發生器,相當于撥隨機種子  
      用 法: void randomize(void);
     
    1. #include <iostream>  
    2. #include <stdlib.h>    // Need random(), srandom()  
    3. #include <time.h>      // Need time()  
    4. #include <algorithm>   // Need sort(), copy()  
    5. #include <vector>      // Need vector  
    6.   
    7. using namespace std;  
    8.   
    9. void Display(vector<int>& v, const char* s);  
    10.   
    11. int main()  
    12. {  
    13.     // Seed the random number generator  
    14.     srand(time(NULL));  
    15.     // Construct vector and fill with random integer values  
    16.     vector<int> collection(10);  
    17.     for (int i = 0; i < 10; i++)  
    18.         collection[i] = rand() % 10000;  
    19.       
    20.     // Display, sort, and redisplay  
    21.     Display(collection, "Before sorting");  
    22.     sort(collection.begin(), collection.end());  
    23.     Display(collection, "After sorting");  
    24.     return 0;  
    25. }  
    26.   
    27. // Display label s and contents of integer vector v  
    28. void Display(vector<int>& v, const char* s)  
    29. {  
    30.     cout << endl << s << endl;  
    31.     copy(v.begin(), v.end(),ostream_iterator<int>(cout, "\t"));  
    32.     cout << endl;  
    33. }  
    一般情況下可以設置當前時間為種子 srandom((int)time(0));
    需要多次取隨即數時,可以將上次拿到的隨即數作為種子

    posted on 2012-03-29 15:15 憤怒的考拉 閱讀(1212) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆檔案

    文章檔案

    搜索

    •  

    最新評論

    主站蜘蛛池模板: 3344免费播放观看视频| 两个人看www免费视频| 亚洲人成电影亚洲人成9999网| 亚洲AV无码乱码在线观看富二代| 国产福利在线观看永久免费| www国产亚洲精品久久久| 国产成人综合亚洲AV第一页| 国产成人精品免费视频大全| 久久久精品国产亚洲成人满18免费网站 | 亚洲日本一线产区和二线| 最近高清国语中文在线观看免费| 亚洲娇小性xxxx色| 免费的一级片网站| 猫咪www免费人成网站| 亚洲一区二区高清| 热久久这里是精品6免费观看| 亚洲av永久无码精品漫画| 久久国产高潮流白浆免费观看| 免费黄网在线观看| 免费国产污网站在线观看不要卡 | 丝袜足液精子免费视频| 免费观看男人免费桶女人视频| 亚洲AV无码成人精品区日韩| 污污网站免费观看| 久久久久国产成人精品亚洲午夜 | 日本免费网站视频www区| 亚洲国产精品一区二区三区久久| 亚洲国产成人无码av在线播放| 女人隐私秘视频黄www免费| 亚洲国产精品久久久久网站| 成人免费AA片在线观看| 亚洲AV综合色区无码一二三区| 亚洲情侣偷拍精品| 精品国产污污免费网站aⅴ| 亚洲成av人在线观看网站| 亚洲一区AV无码少妇电影☆| 一级做a免费视频观看网站| 亚洲AV成人片色在线观看高潮| 国产午夜无码精品免费看动漫| 国产成人精品久久亚洲高清不卡 | 久草免费手机视频|