C語言獲取隨機數

2021-08-27 16:12:25 字數 911 閱讀 8035

可能大家在程式設計的時候需要電腦來獲取一些隨機的反應,這個時候我們可以使用隨機數,比較常見的是 rand() 函式,它可以隨機的產生 0 ~ rand_max 的隨機數。rand_max 是乙個很大的數字,具體關係到ide和資料型別,我們一般的需要不可能超出它的範圍。

下面是乙個例項:

#include 

#include

int main()

編譯後再執行幾次,你會發現產生的隨機數是相同的。實際上,rand() 函式產生的隨機數是偽隨機數,是根據乙個數按照某個公式推算出來的,這個數我們稱之為「種子」,但是這個種子在系統啟動之後就是乙個定值,我們需要用 srand() 來進行播種,即在int a前加一句:

srand((unsigned)time(null)); //這裡利用時間進行播種,需要time.h

這樣,我們就能得到不同的隨機數,其實c語言中還有乙個 random() 函式可以獲取隨機數,但是 random() 函式不是ansi c標準,不能在vc等編譯器通過,所以比較少用。

那如何產生一定範圍的隨機數呢?我們可以利用取模的方法:

int a=rand()%10; //產生0~9的隨機數,注意10會被整除

如果要規定上下限:

int a=rand()%51+13; //產生13~63的隨機數

分析:取模即取餘,rand()%51+13我們可以看成2部分:rand()%51是產生0~50的隨機數,後面+13保證a最小只能是13,最大就是50+13=63。

最後給出產生 13~63 範圍內隨機數的完整**:

純文字

複製

#include 

#include

#include

int main()

C語言真正獲取隨機數

問題1 怎樣獲得乙個真正的隨機數?要知道,rand 是不能產生真正的隨機數的 即使不能產生真正的隨機數,也要大概接近呀!而rand 好象每次的隨機都一樣。專家解答 之所以rand 每次的隨機數都一樣是因為rand 函式使用不正確。各種程式語言返回的隨機數 確切地說是偽隨機數 實際上都是根據遞推公式計...

C 獲取隨機數

這篇文章主要介紹了c 中獲取 生成隨機數的三種方法,本文講解了random 類生成法 guid 類生成法以及rngcryptoserviceprovider 類生成法,需要的朋友可以參考下 隨機數的定義為 產生的所有數字毫無關係.在實際應用中很多地方會用到隨機數,比如需要生成唯一的訂單號.在c 中獲...

c 獲取隨機數

方法一 使用 rand 函式可以獲取,如下。隨機數大小是在0到rand max,值為2147483647,它是在stdlib中定義的,如果我們希望在某個範圍內,可以使用 結合 來實現。但是不難發現,這裡獲得的隨機數是唯一確定的,而不是變化的。所以,如果我們希望獲得變化的隨機數,可以使用下面的方法。方...