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

Bagaimanakah Saya Boleh Menjana Terapung Rawak dalam C?

Patricia Arquette
Lepaskan: 2024-12-23 05:25:32
asal
427 orang telah melayarinya

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);
Salin selepas log masuk

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));
Salin selepas log masuk

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)));
Salin selepas log masuk

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)));
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan