Computer >> Máy Tính >  >> Lập trình >> C ++

Làm cách nào để tạo các float ngẫu nhiên trong C ++?

Trong C hoặc C ++, chúng ta không thể tạo float ngẫu nhiên trực tiếp. Chúng ta có thể tạo phao ngẫu nhiên bằng một số thủ thuật. Chúng tôi sẽ tạo hai giá trị số nguyên ngẫu nhiên, sau đó chia chúng để nhận giá trị thực ngẫu nhiên.

Đôi khi nó có thể tạo ra một thương số nguyên, vì vậy để giảm xác suất của điều đó, chúng tôi nhân kết quả với một số hằng số dấu phẩy động như 0,5.

Ví dụ

#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
main() {
   srand((unsigned int)time(NULL));
   float a = 5.0;
   for (int i=0;i<20;i++)
      cout << (float(rand())/float((RAND_MAX)) * a) << endl;
}

Đầu ra

2.07648
4.3115
1.31092
2.22465
2.17292
1.48381
1.91137
0.56505
2.24326
4.44517
3.1695
2.39067
1.89062
4.35881
4.17524
0.189673
1.87521
1.76916
2.3217
2.20481