int myRandNumber = rand()%10;
但是這有一個問題,執行幾次之後會發現每次產生的亂數都是一樣的,這是因為rand()要經由一個種子來產生亂數,而程式一開始的種子都是0,所以當然不論產生幾次,都會是一樣的。
這時候就可以利用另一個srand(),用時間當參數,可以產生不同的種子:
srand(time(NULL));
如此一來,程式每次產生的亂數都會是不同的了!
----------------------------------------
亂數,就如同人生每個不同的境遇。
rand()它是從0~RAND_MAX之間隨便取得一個數字出來用,也就是從有限的、已知的經驗裡面取出一個來用。
就好比一個人遇到任何對手,總是用那一百零一招來對付,遲早會被看破手腳。
RAND_MAX是一個整數。它有多大呢?依每個人的系統而定,可能是32767,也可能是2147483647,
但無論你的RAND_MAX有多大,如果每次都只懂得拿相同的數字,那RAND_MAX再大也沒有任何意義。
因此我們需要的是srand(),輸入某個數值當參數,就可以產生不同的種子。
就像人生中必須要去經歷各種磨練,無論好的、壞的、酸的、甜的、苦的、辣的,只要是經驗,都會改變你心中的種子,讓你的未來有不同的境遇與體會。
srand()一般都是用時間當參數,這是因為時間是永遠不會重覆的數值,每一秒它的數值都在增加,此刻永遠跟前一刻不同,用它來產生種子再好不過。
這也意謂著,我們不僅要好好利用時間,更要瞭解它是一個永不停止的流量,只會越來越多,而人生在世的時間也越來越少。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <stdlib.h>
#include <time.h>
void main() {
srand(time(NULL));
int myRandNumber = (rand()%100)+1;
printf("The Random Number is %d .\n", myRandNumber);
}
srand(time(NULL));
int myRandNumber = (rand()%100)+1;
printf("The Random Number is %d .\n", myRandNumber);
}
產生不同的種子,來達到未來不同的境遇體會,這件事情雖然重要,但最重要的是,能否好好利用這個產生出來的myRandNumber?
對你而言,每天拉拉雜雜跑出來的myRandNumber,是毫無意義的亂數呢? 還是隱藏重要意義的數值呢?