c語言 rand C語言隨機數

2021-10-13 18:15:17 字數 1438 閱讀 3723

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

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

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

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

1. 設定隨機數種子。

2. 獲得隨機數。

設定隨機數種子和獲得隨機數,我們需要使用兩個函式。srand 函式rand 函式。使用這兩個函式需要匯入標頭檔案:#include

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

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

所以,srand 函式的乙個常用的用法就是:

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

設定好隨機數種子,rand 函式就可以根據該值來產生隨機數了。在 windows 的 vs 2019 平台上,預設該函式會產生乙個 0 到 32767 之間的隨機數。演示**如下:

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

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

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

我們下面做乙個練習,建立乙個包含10個元素的陣列,使用 for 迴圈產生 10 個 1-10之間的隨機數儲存到陣列中,並列印輸出。

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

隨機數 C語言

怎樣獲得某一範圍的隨機整數?直接使用這種方法 rand n 試圖返回從0到n 1的整數 不好,因為許多隨機數生成器的低位並不隨機。乙個較好的方法是 int double rand double rand max 1 n 兩種方法都需要知道rand max,而且假設n要遠遠小於rand max。如果n...

C語言隨機數

在c語言函式庫中包含了乙個產生隨機數的函式 int rand void 函式返回的是乙個界於0 32767之間的偽隨機數,包括0和32767。注意,這裡產生的是偽隨機數,不是真正意義上的隨機數,看下面的程式 include stdlib.h include stdio.h void main 執行結...

c語言隨機數

隨機值函式rand 首先需要包含標頭檔案 include 計算機的優點是準確,並不擅長隨機和模擬,所以使用的rand 函式並不是真正意義上的隨機,而是一種偽隨機數使用rand 生成隨機數之前需要用隨機發生器的初始化函式srand unsigned seed 也位於stdlib.h 中 進行隨機數序列...