Rumah  >  Artikel  >  Java  >  Bagaimana untuk Menjana Gandaan Rawak Tepat Dalam Julat Yang Ditentukan?

Bagaimana untuk Menjana Gandaan Rawak Tepat Dalam Julat Yang Ditentukan?

Barbara Streisand
Barbara Streisandasal
2024-10-26 06:44:02469semak imbas

How to Generate Precise Random Doubles Within a Specified Range?

Menghasilkan Gandaan Rawak Dengan Tepat dalam Julat Yang Ditentukan

Apabila bekerja dengan nombor rawak dalam pengaturcaraan, selalunya perlu untuk menjana nilai dalam lingkungan tertentu julat. Cabaran ini timbul apabila berurusan dengan dua nilai berganda, diwakili oleh min dan maks, dan keperluan untuk mencipta dua kali ganda rawak di antara mereka menggunakan penjana rawak.

Kaedah nextDouble() konvensional dalam kelas Rawak menyediakan nilai rawak antara 0.0 dan 1.0 tetapi tidak mempunyai keupayaan untuk menentukan julat tersuai. Untuk menangani isu ini, pendekatan yang lebih tepat diperlukan.

Penyelesaian melibatkan penggunaan formula yang menggabungkan nilai julatMin dan julatMax dengan nilai rawak yang dijana oleh nextDouble(). Baris kod berikut menunjukkan formula ini:

<code class="java">double randomValue = rangeMin + (rangeMax - rangeMin) * r.nextDouble();</code>

Memecahkan formula ini:

  • julatMin: Nilai minimum julat yang dikehendaki.
  • julatMaks: Nilai maksimum julat yang dikehendaki.
  • r.nextDouble(): Nilai rawak antara 0.0 dan 1.0 yang dijana oleh objek Rawak r.
  • Pendaraban (rangeMax - rangeMin) mengembangkan julat daripada nilai yang dijana menjadi antara 0.0 dan (rangeMax - rangeMin).
  • Menambah julatMin mengalihkan julat yang dikembangkan untuk bermula daripada julatMin dan bukannya 0.0.

Dengan mengikuti pendekatan ini, a nilai berganda rawak boleh dijana dalam julat yang ditentukan oleh min dan maks. Teknik ini memberikan kawalan yang lebih besar ke atas ketepatan dan julat nombor rawak yang dijana dalam pengaturcaraan.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Gandaan Rawak Tepat Dalam Julat Yang Ditentukan?. 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