C語言連續生成多個隨機數實現可限制範圍
阿新 • • 發佈:2021-01-13
生成隨機數
在現實中我們經常用到隨機數,可怎麼實現呢,且聽小喬慢慢道來。
在C語言中,我們一般使用 <stdlib.h> 標頭檔案中的 rand() 函式來生成隨機數
int void rand()
可是卻發現生成的數字都一樣。
這是因為rand()
函式產生的隨機數是偽隨機數,是根據一個數值按照某個公式推算出來的,而這個數值由一個公式計算得來,這個值在電腦啟動後是不變的。在這裡我將這個公式比作一個種子,現在我們就要修改這個種子。
常用的方法是用 srand 修改種子。
srand用法
void srand(unsigned int seed)
為了使種子是不斷變化的
srand((unsigned int )time(NULL) );
此時看一下程式碼及執行結果
int main() { int a; srand((unsigned int)time(0));//修改種子 for (size_t i = 0; i < 10; i++) { a = rand(); printf("%d ",p); } }
輸出的結果不相同了。
這是因為 time(NULL)
是隨毫秒變化的,種子變化極快,所以成無序性。
限制範圍
設範圍區間為(max,min);
rand%(max-min+1)+min
即可程式碼
int main() { int a; srand((unsigned int)time(0));//修改種子 for (size_t i = 0; i < 5; i++) { a = rand(); int p = a % (100 - 1+1) + 1;//設定範圍 1-100 printf("%d ",p); Sleep(1500); } }
到此這篇關於C語言連續生成多個隨機數實現可限制範圍的文章就介紹到這了,更多相關C語言連續多個隨機數內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!