Penjanaan Terapung Rawak dalam C
Dalam C , tugas menjana terapung rawak boleh dicapai dengan menggunakan rand() terbina dalam fungsi, biasanya digunakan untuk menghasilkan integer pseudo-rawak. Walau bagaimanapun, andaian bahawa membahagikan rand() dengan nilai akan mencukupi untuk menjana terapung rawak adalah tidak betul.
Untuk mendapatkan terapung rawak dengan berkesan, pendekatan berikut boleh digunakan:
0 hingga 1 Julat:
Untuk menjana apungan rawak antara 0.0 dan 1.0 (inklusif), ungkapan di bawah menyediakan nilai yang sesuai:
float r = static_cast<float>(rand()) / static_cast<float>(RAND_MAX);
0 hingga Arbitrary Float:
Untuk menjana apungan rawak antara 0.0 dan sebarang nilai apungan sewenang-wenangnya, X, ungkapan berikut boleh digunakan:
float r2 = static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / X));
Sewenang-wenangnya Julat:
Untuk menjana apungan rawak dalam julat yang ditakrifkan oleh nilai arbitrari LO dan HI, ungkapan berikut memberikan hasil yang diingini:
float r3 = LO + static_cast<float>(rand()) / (static_cast<float>(RAND_MAX / (HI - LO)));
Adalah penting untuk ambil perhatian bahawa Fungsi rand() mungkin tidak selalu memberikan nombor rawak yang benar-benar penting untuk pelbagai aplikasi.
Sebelum menggunakan rand(), adalah wajib untuk memulakan penjana nombor rawak dengan nilai benih menggunakan srand(). Inisialisasi ini memastikan penjanaan urutan nombor rawak yang berbeza semasa pelaksanaan program. Amalan biasa melibatkan penggunaan masa(0) untuk menjana benih berdasarkan jam sistem, seperti berikut:
srand(static_cast<unsigned int>(time(0)));
Untuk menggunakan rand dan srand, adalah perlu untuk memasukkan
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menjana Terapung Rawak dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!