首頁 > 後端開發 > C++ > 如何在 C 中產生隨機浮點數?

如何在 C 中產生隨機浮點數?

Patricia Arquette
發布: 2024-12-23 05:25:32
原創
428 人瀏覽過

How Can I Generate Random Floats in C  ?

C 語言中的隨機浮點數產生

在C 語言中,產生隨機浮點數的任務可以透過使用內建的rand( ) 來實作函數,通常用於產生偽隨機整數。然而,用 rand() 除以一個值就足以產生隨機浮點數的假設是不正確的。

為了有效地得到隨機浮點數,可以使用以下方法:

0到 1 範圍:

要產生 0.0 到1.0(含)之間的隨機浮點,以下表達式提供適當的值:

float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
登入後複製

0 到任意浮點:

要產生0.0 和任意浮點數值 X之間的隨機浮點,以下表達式可以是就業:

float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / X));
登入後複製

任意範圍:

要在任意值LO 和HI 定義的範圍內產生隨機浮點,以下表達式提供所需的結果:

float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / (HI - LO)));
登入後複製

值得注意的是, rand()函數可能並不總是提供各種應用程式必需的真正隨機數。

在使用 rand() 之前,必須初始化隨機數使用 srand() 產生具有種子值的產生器。此初始化確保在程式執行期間​​產生不同的隨機數序列。常見的做法是利用 time(0) 根據系統時鐘產生種子,如下所示:

srand(static_cast<unsigned int>(time(0)));
登入後複製

要使用 rand 和 srand,需要包含 。標頭。另外,時間需要包含。標題。

以上是如何在 C 中產生隨機浮點數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板