• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            C++分析研究  
            C++
            日歷
            <2014年3月>
            2324252627281
            2345678
            9101112131415
            16171819202122
            23242526272829
            303112345
            統(tǒng)計
            • 隨筆 - 92
            • 文章 - 4
            • 評論 - 4
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿

            隨筆檔案

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             
              C語言/C++怎樣產(chǎn)生隨機(jī)數(shù):這里要用到的是rand()函數(shù), srand()函數(shù),和time()函數(shù)。
             
               需要說明的是,iostream頭文件中就有srand函數(shù)的定義,不需要再額外引入stdlib.h;而使用time()函數(shù)需要引入ctime頭文件。托福答案
             
               使用rand()函數(shù)獲取一個隨機(jī)數(shù)
             
               如果你只要產(chǎn)生隨機(jī)數(shù)而不需要設(shè)定范圍的話,你只要用rand()就可以了:rand()會返回一隨機(jī)數(shù)值, 范圍在0至RAND_MAX 間。RAND_MAX定義在stdlib.h, 其值為2147483647.
             
               例子1.1:
             
               [cpp
             
               #include<iostream>
             
               using namespace std;
             
               int main()
             
               {
             
               for(int i=0;i<10;i++)
             
               {
             
               cout《rand()《endl;
             
               }
             
               }
             
               使用rand()函數(shù)獲取一定范圍內(nèi)的一個隨機(jī)數(shù)
             
               如果想要獲取在一定范圍內(nèi)的數(shù)的話,直接做相應(yīng)的除法取余即可。
             
               例子2.1:
             
               [cpp]
             
               #include<iostream>
             
               using namespace std;
             
               int main()
             
               {
             
               for(int i=0;i<10;i++)
             
               {
             
               //產(chǎn)生10以內(nèi)的整數(shù)
             
               cout《rand()%10《endl;
             
               }
             
               }
             
               我們上面獲取的都是隨機(jī)的整數(shù),那么如何獲取小數(shù)呢?例如:我們可以先獲得10001以內(nèi)的整數(shù)(0~10000),然后再用這個整數(shù)除以10000得到小數(shù)點(diǎn)后兩位的小數(shù)。
             
               例子2.2:
             
               [cpp]
             
               #include<iostream>
             
               using namespace std;
             
               int main()
             
               {
             
               for(int i=0;i<10;i++)
             
               {
             
               cout《(rand()%10001)/10000.0《endl;
             
               }
             
               }
             
               注意10000.0后面的有個小數(shù)點(diǎn),表示結(jié)果為浮點(diǎn)數(shù)。
             
               使用rand函數(shù)和time函數(shù)
             
               我們上面已經(jīng)可以獲取隨機(jī)數(shù)了,為什么還需要使用time函數(shù)呢?我們通過多次運(yùn)行發(fā)現(xiàn),該程序雖然生成了10個隨機(jī)數(shù),但是這個10個隨機(jī)數(shù)是固定的,也就是說并不隨著時間的變化而變化。
             
               這與srand()函數(shù)有關(guān)。srand()用來設(shè)置rand()產(chǎn)生隨機(jī)數(shù)時的隨機(jī)數(shù)種子。在調(diào)用rand()函數(shù)產(chǎn)生隨機(jī)數(shù)前,必須先利用srand()設(shè)好隨機(jī)數(shù)種子(seed), 如果未設(shè)隨機(jī)數(shù)種子, rand()在調(diào)用時會自動設(shè)隨機(jī)數(shù)種子為1.托福改分
             
               上面的例子就是因為沒有設(shè)置隨機(jī)數(shù)種子,每次隨機(jī)數(shù)種子都自動設(shè)成相同值1 ,進(jìn)而導(dǎo)致rand()所產(chǎn)生的隨機(jī)數(shù)值都一樣。
             
               srand()函數(shù)定義 : void srand (unsigned int seed);
             
               通常可以利用geypid()或time(0)的返回值來當(dāng)做seed
             
               如果你用time(0)的話,要加入頭文件#include<ctime>
             
               time(0)或者time(NULL)返回的是系統(tǒng)的時間(從1970.1.1午夜算起),單位:秒
             
               例子3.1:
             
               [cpp]
             
               #include <iostream>
             
               #include <ctime>
             
               using namespace std;
             
               void main()
             
               {
             
               int a;
             
               a=time(0);//time(0)返回的是系統(tǒng)的時間(從1970.1.1午夜算起),單位:秒
             
               cout《a《endl;
             
               }
             
               例子3.2:
             
               [cpp]
             
               #include<iostream>
             
               #include<ctime>
             
               using namespace std;
             
               int main()
             
               {
             
               srand(time(0));
             
               for(int i=0;i<10;i++)
             
               {
             
               //產(chǎn)生10以內(nèi)的整數(shù)
             
               cout《rand()%10《endl;
             
               }
             
               }
             
               這樣做的話,每次運(yùn)行的結(jié)果就都不一樣了。
             
             
             
            posted on 2013-10-14 15:37 HAOSOLA 閱讀(318) 評論(0)  編輯 收藏 引用

            只有注冊用戶登錄后才能發(fā)表評論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


             
            Copyright © HAOSOLA Powered by: 博客園 模板提供:滬江博客
            PK10開獎 PK10開獎
            国产精品久久国产精品99盘| 国产99久久久国产精品~~牛| 一级A毛片免费观看久久精品| 国产成人精品久久亚洲| 久久久久久久综合综合狠狠| 久久久精品国产免大香伊 | 狠狠久久综合| 亚洲欧洲日产国码无码久久99| 国产精品视频久久久| 久久亚洲日韩看片无码| 日韩精品国产自在久久现线拍| 人妻少妇精品久久| 日本福利片国产午夜久久| 久久久久人妻一区二区三区| 欧美精品一本久久男人的天堂| 日韩人妻无码精品久久久不卡 | 亚洲伊人久久综合影院| 99久久婷婷国产综合亚洲| 久久伊人精品一区二区三区| 久久本道久久综合伊人| 久久精品国产91久久综合麻豆自制 | 久久久久波多野结衣高潮| 久久精品国产精品亚洲人人 | 日本道色综合久久影院| 婷婷伊人久久大香线蕉AV| 香蕉久久夜色精品国产2020| 久久精品免费大片国产大片| 久久99国产精品久久久| 久久被窝电影亚洲爽爽爽| 精品久久一区二区三区| 亚洲国产精品无码久久SM| 国产午夜免费高清久久影院 | 久久精品成人免费国产片小草| 久久99国产综合精品女同| 久久国产高潮流白浆免费观看| 久久亚洲AV无码精品色午夜| 久久久久免费精品国产| 国内精品伊人久久久久777| 亚洲精品乱码久久久久久自慰| 亚洲欧洲精品成人久久曰影片| 色99久久久久高潮综合影院|