傳智播客旗下品牌:|||||

全國咨詢/投訴熱線:400-618-4000

C語言如何獲取隨機數?【C++培訓】

更新時間:2020年04月21日14時02分 來源:傳智播客 瀏覽次數:

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

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

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

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

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

1. 設置隨機數種子。

2. 獲得隨機數。

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

srand 函數用法

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

C++隨機數1


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

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

C++隨機數2

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


rand 函數使用

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

C++隨機數3


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

C++隨機數4


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

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

隨機數使用案例

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

C++隨機數5


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

猜你喜歡:

計算機語言有哪幾大類?

安徽快3 2019最简单的网赚项目 极速PK拾 利来彩票注册 幸运飞艇下载安装 2019网赚好项目 北京赛车PK10计划 湖南快乐十分计划 上海时时乐 网赚平台排行榜