2022年4月19日 星期二

如何於C內輸出一個隨機數

 如何於C內輸出一個隨機數

如何於C內輸出一個隨機數

 

參考以下的程式碼,以下是隨機產生一個由13之間整數(123)的寫法,產生後的數值貯存於變數(variable) a內,然後輸出至螢幕上。每次執行時a的值可能不同。

說明: 留意多了甚麼語句! 2378是必需的。

 

2

由於要使用rand()srand()這兩個函數指令,這兩個函數位於stdlib.h內,因此要先載入。

3

由於要使用time()這個函數指令,這個函數位於time.h內,因此要先載入。

7

使用time()取得一個時間數值,用以作為產生亂數的種子,並根據這亂數種子,使用srand()產生亂數。

8

讀取之前產生的亂數(是一個很長有小數點的數值),然後按需要產生相應範圍內的亂數。rand()%3是把亂數除3,得出餘數(012),再加1,那便可產生123的數值。

試試看: 如想產生一個由1-10之間的亂數,該如何修改以上的程式?

補充:

- 實際上,使用電腦產生一個真正隨機的數字,並不是一件簡單的事,還不如用手抽波波隨機。電腦始終是一台計算機,祗能按指定的數學公式計算結果,既然是數學公式,正常來說,輸入相同數據的話,便祇能產生相同的結果。有些聰明人,想出一些算法,可根據一個數字(稱為亂數種子)產生不同的結果,但這仍然是可預測的,並不是真正的隨機亂數。

 

重要提示: 如產生亂數的指令在迴圈內的話,那srand(time(NULL));這指令放在迴圈外,如下:


如放於迴圈內的話,會出現以下狀況,輸出的所謂隨機數是一樣的。

 



如何於C程式內輸入字串?

之前我們學過如何於 C 程式內輸入數目字,但如要輸入字串,例如姓名,又要如何處理呢 ?   跟其他大部分電腦程言不一樣, C 並沒有一個字串的變數數據類型 (variable data type) , C 是使用字元 (character) 及變數陣列 (array)...