編寫程序過程中,我們經常需要産生一些随機數。随機數在程序中分為兩種:
1. 真随機數:完全沒有規則,無法預測接下來要産生的數。
2. 僞随機數:通過一些預先設定好的規則産生不能簡單預測的數。
當然,我們在程序中使用的随機數主要是僞随機,一般場景下,僞随機數能夠滿足我們大部分的場景了。本篇文章給大家介紹下,如何在C語言中産生一個僞随機數。
僞随機數在C語言中産生分為兩個步驟:
1. 設置随機數種子。
2. 獲得随機數。
設置随機數種子和獲得随機數,我們需要使用兩個函數。srand 函數 和 rand 函數。使用這兩個函數需要導入頭文件:#include <stdlib.h>
2. srand 函數用法
設置随機數種子時,我們一般會用時間值作為種子。這是因為時間值一直都在變化。我們使用 time 函數獲得當前時間值,使用該函數需要先導入頭文件 #include <time.h>。
打印出來的是一串數字,并不是我們常見的時間格式。Time 函數主要用于獲得從 1970 年 1 月 1日0時 0分0秒到現在經曆的秒數。時間一直在變,所以該函數可作為一直在改變的随機數種子。
所以,srand 函數的一個常用的用法就是:
srand 的要求的參數是 unsigned int,所以需要将 time 函數返回的結果強制轉換成 unsigned int 類型。
3. rand 函數使用設置好随機數種子,rand 函數就可以根據該值來産生随機數了。在 windows 的 vs 2019 平台上,默認該函數會産生一個 0 到 32767 之間的随機數。演示代碼如下:
但是實際的場景是,我們希望産生一個指定範圍内的随機數。此時,我們可以讓随機産生數進行取餘運算符,折算成指定範圍。例如:我們要産生 1-100之間的随機數,可進行如下代碼編寫:
1. rand() % 100 會産生一個 0-99之間的數字。
2. rand() % 100 1 會産生一個 1-100之間的數字、
4. 随機數使用案例我們下面做一個練習,創建一個包含10個元素的數組,使用 for 循環産生 10 個 1-10之間的随機數存儲到數組中,并打印輸出。
注意:随機數種子設置一次即可。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!