Menghasilkan Nomor Acak dalam Rentang di Jawa

1. Ikhtisar

Dalam tutorial ini, kita akan mengeksplorasi berbagai cara menghasilkan angka acak dalam suatu rentang.

2. Menghasilkan Bilangan Acak dalam Rentang

2.1. Math.random

The Math.random memberikan acak ganda nilai yang lebih besar dari atau sama dengan 0,0 dan kurang dari 1,0.

Mari kita gunakan metode Math.random untuk menghasilkan angka acak dalam rentang tertentu:

public int getRandomNumber(int min, int max) { return (int) ((Math.random() * (max - min)) + min); }

Mengapa itu berhasil? Nah, mari kita lihat apa yang terjadi ketika Math.random mengembalikan 0,0, itu adalah keluaran serendah mungkin:

0.0 * (max - min) + min => min

Jadi, angka terendah yang bisa kita dapatkan adalah min.

Jika Math.random mengembalikan 1.0, itu adalah keluaran tertinggi, maka kita mendapatkan:

1.0 * (max - min) + min => max - min + min => max

Jadi, angka tertinggi yang bisa kita dapatkan adalah maks.

Mari kita lihat pola yang sama diulangi dengan Random # nextInt di bagian selanjutnya.

2.2. java.util.Random.nextInt

Sebuah instance dari java.util.Random juga dapat digunakan untuk melakukan hal yang sama.

Mari kita gunakan metode java.util.Random.nextInt untuk mendapatkan nomor acak:

public int getRandomNumberUsingNextInt(int min, int max) { Random random = new Random(); return random.nextInt(max - min) + min; }

The min parameter (asal) adalah inklusif, sedangkan max , terikat, eksklusif

2.3. java.util.Random.ints

The java.util.Random.ints Metode mengembalikan IntStream bilangan bulat acak.

Jadi, kita dapat menggunakan metode java.util.Random.ints dan mengembalikan nomor acak:

public int getRandomNumberUsingInts(int min, int max) { Random random = new Random(); return random.ints(min, max) .findFirst() .getAsInt(); }

Di sini juga, nilai minimum asal yang ditentukan bersifat inklusif dan maks eksklusif.

3. Kesimpulan

Dalam artikel ini, kami melihat cara alternatif untuk menghasilkan angka acak dalam suatu rentang.

Cuplikan kode, seperti biasa, dapat ditemukan di GitHub.