Menjana Nombor Rawak dalam Julat di Jawa

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.