Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana Nombor Titik Terapung Rawak dalam C?
Dalam C , fungsi rand() berfungsi sebagai alat yang boleh dipercayai untuk mencipta nombor rawak pseudo. Dengan menggabungkannya dengan RAND_MAX dan melakukan operasi matematik mudah, anda boleh menjana terapung rawak dalam selang waktu tertentu. Untuk program rekreasi dan tujuan pendidikan, pendekatan ini sudah memadai. Walau bagaimanapun, jika keperluan anda memerlukan nombor rawak yang sebenar dengan taburan normal, pertimbangkan untuk melaksanakan teknik yang lebih canggih.
Untuk mendapatkan apungan rawak antara 0.0 dan 1.0 (termasuk), menggunakan formula berikut:
float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
Untuk menjana apungan dalam julat [0.0, X], gunakan formula berikut:
float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / X);
Untuk menjana a terapung dalam julat [LO, HI], gunakan formula berikut:
float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX) / (HI - LO));
Sebelum menggunakan rand(), adalah penting untuk memulakan penjana nombor rawak dengan memanggil srand(). Inisialisasi ini sepatutnya berlaku sekali sahaja semasa pelaksanaan program, bukan dengan setiap panggilan ke rand(). Amalan biasa melibatkan:
srand(static_cast<unsigned>(time(0)));
Perhatikan bahawa kemasukan fail pengepala berikut diperlukan:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Nombor Titik Terapung Rawak dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!