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