1. 程式人生 > >C++ 產生0-1之間的隨機數

C++ 產生0-1之間的隨機數

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):