C++ 產生0-1之間的隨機數
阿新 • • 發佈:2019-01-08
C++中用來產生隨機數的函式為rand(),其返回值為整數。
要產生0-1之間的浮點數,必須經過轉換才能得到。
思路:生成一個0-N的隨機數,然後對其處以N+1,則可以得到浮點型隨機數。
N可以確定產生的精度。比如需要2位小數,則N=99,需要3位小數,則N=999。
程式碼如下:
#include "stdafx.h" #include "iostream" #include "ctime" #include "cstdlib" using namespace std; #define N 999 //精度為小數點後面3位 int main() { float num; int i; float random[10]; srand(time(NULL));//設定隨機數種子,使每次產生的隨機序列不同 for (int i = 0; i < 10; i++) { random[i] = rand() % (N + 1) / (float)(N + 1); } for (int i = 0; i < 10; i++) { cout << random[i] << endl; //輸出產生的10個隨機數 } return 0; }
執行結果(N=999):
執行結果(N=99):