Saya ingin tahu bagaimana untuk menghasilkan nomor acak antara dua nilai tertentu.
Saya mampu menghasilkan nomor acak dengan kode berikut:
Random r = new Random();
for(int i = 0; i < a.length; i++){
for(int j = 0; j < a[i].length; j++){
a[i][j] = r.nextInt();
}
}
Namun, bagaimana saya bisa menghasilkan nomor acak antara 0 dan 100 (inklusif)?
Anda bisa gunakan misalnya r.nextInt(101)
Untuk lebih generik "di antara dua angka" gunakan:
Random r = new Random();
int low = 10;
int high = 100;
int result = r.nextInt(high-low) + low;
Ini memberi anda nomor acak di antara 10 (inklusif) dan 100 (eksklusif)
Dengan asumsi atas adalah batas atas dan bawah batas bawah, maka anda dapat membuat nomor acak, r, antara dua batas dengan:
int r = (int) (Math.random() * (upper - lower)) + lower;
int Random = (int)(Math.random()*100);
jika Anda perlu untuk menghasilkan lebih dari satu nilai, maka hanya menggunakan untuk loop untuk yang
for (int i = 1; i <= 10 ; i++)
{
int Random = (int)(Math.random()*100);
System.out.println(Random);
}
Jika Anda ingin menentukan yang lebih layak dipilih, seperti dari 10 sampai 100 ( baik berada di kisaran )
sehingga kode akan sama :
int Random =10 + (int)(Math.random()*(91));
/* int Random = (min.value ) + (int)(Math.random()* ( Max - Min + 1));
*Where min is the smallest value You want to be the smallest number possible to
generate and Max is the biggest possible number to generate*/
Jawa doesn't memiliki generator Acak di antara dua nilai dengan cara yang sama bahwa Python itu. Itu benar-benar hanya membutuhkan satu nilai untuk menghasilkan Acak. Apa yang perlu anda lakukan, kemudian, adalah menambahkan SATU JUMLAH TERTENTU dengan jumlah yang dihasilkan, yang akan menyebabkan jumlah untuk berada dalam jangkauan. Misalnya:
package RandGen;
import java.util.Random;
public class RandGen {
public static Random numGen =new Random();
public static int RandNum(){
int rand = Math.abs((100)+numGen.nextInt(100));
return rand;
}
public static void main(String[]Args){
System.out.println(RandNum());
}
}
Program ini's fungsi terletak sepenuhnya di line 6 (salah satu awal dengan "int rand...". Perhatikan bahwa Matematika.abs() hanya mengkonversi nomor ke nilai mutlak, dan itu's dideklarasikan sebagai int, yang's tidak benar-benar penting. Pertama (100) adalah nomor saya MENAMBAH satu acak. Ini berarti bahwa output baru akan acak nomor + 100. numGen.nextInt() adalah nilai dari random number itu sendiri, dan karena saya menempatkan (100) dalam kurung, itu adalah nomor antara 1 dan 100. Jadi ketika saya tambahkan 100, menjadi nomor antara 101 dan 200. Anda tidak't benar-benar MENGHASILKAN angka antara 100 dan 200, anda menambahkan ke salah satu di antara 1 dan 100.
Satu juga dapat mencoba di bawah ini:
public class RandomInt {
public static void main(String[] args) {
int n1 = Integer.parseInt(args[0]);
int n2 = Integer.parseInt(args[1]);
double Random;
if (n1 != n2)
{
if (n1 > n2)
{
Random = n2 + (Math.random() * (n1 - n2));
System.out.println("Your random number is: " + Random);
}
else
{
Random = n1 + (Math.random() * (n2 - n1));
System.out.println("Your random number is: " +Random);
}
} else {
System.out.println("Please provide valid Range " +n1+ " " +n2+ " are equal numbers." );
}
}
}