Rumah >Java >javaTutorial >Bagaimana untuk Menjana Integer Rawak (dan Beregu) Dalam Julat Tertentu di Jawa?

Bagaimana untuk Menjana Integer Rawak (dan Beregu) Dalam Julat Tertentu di Jawa?

Linda Hamilton
Linda Hamiltonasal
2024-12-04 19:53:11378semak imbas

How to Generate Random Integers (and Doubles) Within a Specific Range in Java?

Math.random() Manipulasi: Menjana Integer Rawak Dalam Julat Tertentu

Fungsi Java Math.random() menjana nombor rawak dalam julat [0, 1). Walau bagaimanapun, terdapat situasi di mana anda mungkin perlu mendapatkan integer rawak dalam julat tertentu. Artikel ini menunjukkan cara untuk mencapai ini menggunakan Math.random().

Niat untuk Menjana Integer Rawak Antara Tiga dan Lima

Sementara pernyataan "(int) Math .random() * 5 3" tidak menjana integer rawak dengan betul dalam julat [3, 5], ia boleh dibetulkan menggunakan tersuai kaedah:

int randomWithRange(int min, int max) {
    int range = (max - min) + 1;
    return (int) (Math.random() * range) + min;
}

Kaedah ini mengira julat nilai yang mungkin, mendarabnya dengan Math.random(), dan menambah nilai minimum untuk memastikan keterangkuman.

Contoh Output

System.out.println(randomWithRange(3, 5));
// Output: 3

Pembuktian Bodoh kerana Salah Memesan

Untuk mengelakkan ralat jika min lebih besar daripada maksimum, kaedah yang dikemas kini ialah:

int randomWithRange(int min, int max) {
    int range = Math.abs(max - min) + 1;
    return (int) (Math.random() * range) + (min <= max ? min : max);
}

Sambungan untuk Penjanaan Nombor Rawak Berganda

Kaedah yang serupa boleh digunakan untuk menjana nombor ketepatan dua kali rawak:

double randomWithRange(double min, double max) {
    double range = (max - min);
    return (Math.random() * range) + min;
}

Menggunakan ini kaedah:

System.out.println(randomWithRange(3.0, 5.0));

Atas ialah kandungan terperinci Bagaimana untuk Menjana Integer Rawak (dan Beregu) Dalam Julat Tertentu di Jawa?. 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