Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

ฉันจะสร้างโฟลตสุ่มใน C ++ ได้อย่างไร


ใน C หรือ C++ เราไม่สามารถสร้างโฟลตสุ่มได้โดยตรง เราสามารถสร้างทุ่นลอยสุ่มโดยใช้กลอุบายบางอย่าง เราจะสร้างค่าจำนวนเต็มสุ่มสองค่า จากนั้นหารค่าเหล่านั้นเพื่อให้ได้ค่าโฟลตสุ่ม

บางครั้งอาจสร้างผลหารจำนวนเต็ม ดังนั้นเพื่อลดความน่าจะเป็นนั้น เรากำลังคูณผลลัพธ์ด้วยค่าคงที่จุดลอยตัว เช่น 0.5

ตัวอย่าง

#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;
}

ผลลัพธ์

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