Qt怎樣生成隨機數?

Tags: 時候, 隨機數,

在進行Qt程式設計時,很多時候我們都需要用到隨機數。那麼,在Qt中,究竟怎樣生成隨機數呢?生成隨機數時又應該注意些什麼呢?

工具/原料

Qt 5.6

一、用到的函式和主要思路

在Qt中,生成隨機數的函式為 qrand。該函式是標準C++函式 rand 的執行緒安全版本。

Qt怎樣生成隨機數

不過,如果我們僅僅只是呼叫該函式來生成隨機數,那麼每次得到的隨機數都將是相同的,這是因為Qt生成的隨機數嚴格來說是一個“偽隨機”,它的產生是根據隨機數種子計算得到的。如果種子相同,那麼所得到的隨機數也是相同的。

Qt怎樣生成隨機數

因此,為了使我們的隨機數看起來更為“隨機”一些,我們在每次獲取隨機數之前都需要初始化一個不同的隨機數種子,這就需要用到qsrand函式,該函式只有一個整型引數,即要設定的隨機數種子。

Qt怎樣生成隨機數

所以,為了每次得到不同的隨機數,一般通用的作法是:

1)獲取當前的系統時間

2)獲得該時間與上個時間之間的毫秒數

3)用這個毫秒數初始化隨機數種子

4)生成隨機數

Qt怎樣生成隨機數

二、實際程式碼

思路明白了,實現起來也就不難了。在下面的示例中,每當我們點選“生成”按鈕時,就會在正中的標籤上顯示一個隨機數。

Qt怎樣生成隨機數

具體的實現程式碼如下:

首先,得到當前系統時間和上個時間。請注意,為了儲存上個時間,在這裡我們使用的是一個靜態時間變數,並在第一次進入該函式時對其初始化。

另外,由於我們使用了QTime類,因此需要包含標頭檔案

Qt怎樣生成隨機數

然後,獲取兩個時間之間的毫秒數,並用這個毫秒數初始化隨機數種子。

Qt怎樣生成隨機數

接著,生成隨機數並在標籤上顯示。

Qt怎樣生成隨機數

最後,儲存本次單擊時間,以便用於下次生成隨機數。

Qt怎樣生成隨機數

時候, 隨機數,
相關問題答案