C语言再学习 -- 随机数函数
參看:C++中隨機函數(shù)rand()和srand()的用法
rand ()函數(shù):可以用來獲得一個隨機數(shù)
所在頭文件: stdlib.h
函數(shù)說明 :
rand()的內部實現(xiàn)是用線性同余法做的,它不是真的隨機數(shù),因其周期特別長,故在一定的范圍里可看成是隨機的。rand()返回一隨機數(shù)值的范圍在0至RAND_MAX 間。RAND_MAX的范圍最少是在32767之間(int)。用unsigned int 雙字節(jié)是65535,四字節(jié)是4294967295的整數(shù)范圍。0~RAND_MAX每個數(shù)字被選中的機率是相同的。用戶未設定隨機數(shù)種子時,系統(tǒng)默認的隨機數(shù)種子為1。rand()產生的是偽隨機數(shù)字,每次執(zhí)行時是相同的;若要不同,用函數(shù)srand()初始化它。
srand ()函數(shù):可以用來設置隨機數(shù)的種子
所在頭文件: stdlib.h
函數(shù)說明:
srand()用來設置rand()產生隨機數(shù)時的隨機數(shù)種子。參數(shù)seed必須是個整數(shù),通常可以利用time(0)的返回值或NULL來當做seed。如果每次seed都設相同值,rand()所產生的隨機數(shù)值每次就會一樣。
time ()函數(shù):可以返回系統(tǒng)時間
所在頭文件: time.h
函數(shù)說明:
獲取當前的系統(tǒng)時間,返回的結果是一個time_t類型,其實就是一個大整數(shù),其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX系統(tǒng)的Epoch時間)到當前時刻的秒數(shù)。
參看:Linux time()函數(shù)
?
rand()和srand()要一起使用,其中srand()用來初始化隨機數(shù)種子,rand()用來產生隨機數(shù)。
因為默認情況下隨機數(shù)種子為1,而相同的隨機數(shù)種子產生的隨機數(shù)是一樣的,失去了隨機性的意義,所以為使每次得到的隨機數(shù)不一樣,用函數(shù)srand()初始化隨機數(shù)種子。srand()的參數(shù),用time函數(shù)值(即當前時間),因為兩次調用rand()函數(shù)的時間通常是不同的,這樣就可以保證隨機性了。
?
?
/*1--100 rand()%100+1 隨機數(shù)輸入一個數(shù)字 與隨機數(shù)比較猜大了猜小了猜對了*/ #include <stdio.h> #include <stdlib.h> #include <time.h> int main(void) { int num=0,num1=0;srand((unsigned int)time(0)); //隨機函數(shù)num1=rand() % 100+1; // 取余為 0--99 +1while(1){printf("請輸入一個數(shù):"); //放到循環(huán)里面scanf("%d",&num);if(num>num1){<span style="white-space:pre"> </span>printf("猜大了\n");}else if (num==num1) {printf("猜對了\n");break;}else{printf("猜小了\n");}}return 0; }?
隨機數(shù)【15 ~ 18】:
rand()%(18-5+1)+15?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的C语言再学习 -- 随机数函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: springcloud config配置
- 下一篇: 领导者的资质——学习笔记(2):领导者的