C語言隨機數

1. 隨機數概述

編寫程序過程中,我們經常需要產生一些隨機數。隨機數在程序中分為兩種:

1. 真隨機數:完全沒有規則,無法預測接下來要產生的數。

2. 偽隨機數:通過一些預先設定好的規則產生不能簡單預測的數。

當然,我們在程序中使用的隨機數主要是偽隨機,一般場景下,偽隨機數能夠滿足我們大部分的場景了。本篇文章給大家介紹下,如何在C語言中產生一個偽隨機數。

偽隨機數在C語言中產生分為兩個步驟:

1. 設置隨機數種子。

2. 獲得隨機數。

設置隨機數種子和獲得隨機數,我們需要使用兩個函數。srand 函數rand 函數。使用這兩個函數需要導入頭文件:#include

C語言隨機數

2. srand 函數用法

設置隨機數種子時,我們一般會用時間值作為種子。這是因為時間值一直都在變化。我們使用 time 函數獲得當前時間值,使用該函數需要先導入頭文件 #include 。

C語言隨機數

打印出來的是一串數字,並不是我們常見的時間格式。Time 函數主要用於獲得從 1970 年 1 月 1日0時 0分0秒到現在經歷的秒數。時間一直在變,所以該函數可作為一直在改變的隨機數種子。

所以,srand 函數的一個常用的用法就是:

C語言隨機數

srand 的要求的參數是 unsigned int,所以需要將 time 函數返回的結果強制轉換成 unsigned int 類型。

3. rand 函數使用

設置好隨機數種子,rand 函數就可以根據該值來產生隨機數了。在 windows 的 vs 2019 平臺上,默認該函數會產生一個 0 到 32767 之間的隨機數。演示代碼如下:

C語言隨機數

但是實際的場景是,我們希望產生一個指定範圍內的隨機數。此時,我們可以讓隨機產生數進行取餘運算符,折算成指定範圍。例如:我們要產生 1-100之間的隨機數,可進行如下代碼編寫:

C語言隨機數

1. rand() % 100 會產生一個 0-99之間的數字。

2. rand() % 100 + 1 會產生一個 1-100之間的數字、

4. 隨機數使用案例

我們下面做一個練習,創建一個包含10個元素的數組,使用 for 循環產生 10 個 1-10之間的隨機數存儲到數組中,並打印輸出。

C語言隨機數

注意:隨機數種子設置一次即可。


分享到:


相關文章: