1. Gambaran keseluruhan
Dalam tutorial ini, kita akan meneroka pelbagai cara menghasilkan nombor rawak dalam julat.
2. Menjana Nombor Rawak dalam Julat
2.1. Matematik.rawak
The math.random memberikan rawak double nilai yang lebih besar daripada atau sama dengan 0.0 dan kurang daripada 1.0.
Mari gunakan kaedah Math.random untuk menghasilkan nombor rawak dalam julat tertentu:
public int getRandomNumber(int min, int max) { return (int) ((Math.random() * (max - min)) + min); }
Mengapa ia berfungsi? Baiklah, mari kita lihat apa yang berlaku apabila Math.random mengembalikan 0.0, ia adalah output serendah mungkin:
0.0 * (max - min) + min => min
Jadi, bilangan terendah yang dapat kita dapat ialah min
Sekiranya Math.random mengembalikan 1.0, ia adalah output tertinggi, maka kita mendapat:
1.0 * (max - min) + min => max - min + min => max
Jadi, jumlah tertinggi yang kita dapat ialah maksimum.
Mari lihat corak yang sama diulang dengan Random # nextInt di bahagian seterusnya.
2.2. java.util.Random.nextInt
Contoh java.util.Random juga boleh digunakan untuk melakukan perkara yang sama.
Mari gunakan kaedah java.util.Random.nextInt untuk mendapatkan nombor rawak:
public int getRandomNumberUsingNextInt(int min, int max) { Random random = new Random(); return random.nextInt(max - min) + min; }
The min parameter (asal) adalah termasuk, manakala max , yang terikat, adalah eksklusif
2.3. java.util.Random.ints
The java.util.Random.ints Cara mengembalikan IntStream integer rawak.
Oleh itu, kita dapat menggunakan kaedah java.util.Random.ints dan mengembalikan nombor rawak:
public int getRandomNumberUsingInts(int min, int max) { Random random = new Random(); return random.ints(min, max) .findFirst() .getAsInt(); }
Di sini juga, min asal yang ditentukan adalah inklusif dan maksimum adalah eksklusif.
3. Kesimpulannya
Dalam artikel ini, kami melihat kaedah alternatif untuk menghasilkan nombor rawak dalam julat.
Coretan kod, seperti biasa, terdapat di GitHub.