Rumah >pembangunan bahagian belakang >C++ >Bagaimanakah Saya Boleh Menjana Terapung Rawak dalam C?

Bagaimanakah Saya Boleh Menjana Terapung Rawak dalam C?

Patricia Arquette
Patricia Arquetteasal
2024-12-23 05:25:32473semak imbas

How Can I Generate Random Floats in C  ?

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 pengepala. Selain itu, masa memerlukan kemasukan pengepala.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn