2017年計算機等級考試二級C++輔導:隨機函數(shù)rand()的猜數(shù)字游戲

字號:


    突然遇到了隨機函數(shù)的問題,那出來和大家分享一下 :
    srand():用此函數(shù)來獲取隨機數(shù)的種子,rand()來獲取隨機數(shù);
    rand和srand的用法
    首先我們要對rand&srand有個總體的看法:srand初始化隨機種子,rand產(chǎn)生隨機數(shù),下面將詳細說明。
    rand(產(chǎn)生隨機數(shù))
    表頭文件 : #include
    定義函數(shù) : int rand(void)
    函數(shù)說明 :
    因為rand的內(nèi)部實現(xiàn)是用線性同余法做的,他不是真的隨機數(shù),只不過是因為其周期特別長,所以有一定的范圍里可看成是隨機的,rand()會返回一隨機數(shù)值,范圍在0至RAND_MAX間。
    在調(diào)用此函數(shù)產(chǎn)生隨機數(shù)前,必須先利用srand()設(shè)好隨機數(shù)種子,如果未設(shè)隨機數(shù)種子,rand()在調(diào)用時會自動設(shè)隨機數(shù)種子為1.
    rand ()產(chǎn)生的是假隨機數(shù)字,每次執(zhí)行時是相同的。
    若要不同,以不同的值來初始化它.初始化的函數(shù)就是srand()。
    返回值:
    返回0至RAND_MAX之間的隨機整數(shù)值,RAND_MAX的范圍最少是在32767之間(int),即雙字節(jié)(16位數(shù))。若用unsigned int 雙字節(jié)是65535,四字節(jié)是4294967295的整數(shù)范圍。
    0~RAND_MAX每個數(shù)字被選中的機率是相同的。
    srand函數(shù)是隨機數(shù)發(fā)生器的初始化函數(shù),原型:
    void srand(unsigned seed);
    建議用下面的方法初始化(獲得隨機數(shù)種子)
    srand( (unsigned)time( NULL ) );
    下面是我寫的一個程序,希望多多指教:
    #include
    #include
    #include