rand()這個函式對於乙個新手來說第一次出現就是在猜字數遊戲當中,可是第一次看根本不懂,只是照著套用,直到上週選修課又程式設計猜字數遊戲用到時,覺得是應該好好弄懂了!(廢話好多(^__^)
猜字數想讓程式生成,就用stdilb.h標頭檔案中的rand()函式,每次呼叫都會返回乙個隨機整數,叫偽隨機數,範圍是0~rand-max
int chosen=0;
chosen=rand();
但rand()函式生成序列需要乙個初始種子數字,對於特定的種子,生成的序列相同。(即每次猜數遊戲呼叫它猜的都是同乙個數字,那還有什麼意思?)這個時候就需要srand(),也屬於stdlib.h中,呼叫它可以傳遞給它的引數作為種子初始化序列,就是這樣我們每次猜的數字都會不同,著才是乙個正常的遊戲,you know?
但這樣還不夠,time.h標頭檔案中宣告的time()函式,返回的是2023年1月1日到現在經過的秒數,所以每次返回值double不同,time()函式的引數值是null
srand(time(null));
int chosen=0;
chosen=rand();
這樣我們就可以每次得到乙個不同的整數了,但是還有乙個問題:那就是你猜數字總該有個範圍是吧,要不然太大了,猜一輩子嗎?也不能這樣虐單身dog是吧。上限rand-max相當大,通常為int最大值,但可以縮小範圍:
比如猜的數字x~y
就是x+rand()%(y-x+1)【公式】
或者:
float a;
a=rand()%y+x;
這樣就是產生[x,x+y)之間的數字,也就是[x,x+y-1]
兩種表達方式都是一樣的
srand(time(null));
int chosen=0;
chosen=1+rand()%100; //範圍是1~100
ok啦,我特別去找了些資料,盡量白話文,這樣大家都懂了吧,恩,不錯,繼續加油吧 rand生成偽隨機數
void srand unsigned seed 設定隨機數種子。int rand void 根據設定的種子計算生成一組整型偽隨機數序列。若沒有手動設定seed,這個函式會自動設定seed為1,即手動呼叫srand 1 與不呼叫srand產生的效果一樣。每次呼叫rand時,會依次將隨機數從隨機數序列...
PHP生成隨機數 rand
php 4,php 5 rand 產生乙個隨機整數 intrand void intrand int min,int max 如果沒有提供可選引數min和max,rand 返回 0 到 getrandmax 之間的偽隨機整數。例如想要 5 到 15 包括 5 和 15 之間的隨機數,用 rand 5...
rand 和srand 產生偽隨機數
標準庫 被包含於 中 提供兩個幫助生成偽隨機數的函式 函式一 int rand void 從srand seed 中指定的seed開始,返回乙個 seed,rand max 0x7fff 間的隨機整數。函式二 void srand unsigned seed 引數seed是rand 的種子,用來初始...