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中文網其他相關文章!