Rumah >Java >javaTutorial >Penjana Nombor Rawak di Jawa
Nombor Rawak biasanya digunakan dalam membuat aplikasi seperti Dadu untuk permainan papan, Program Perjudian, dll. Biasanya, penjanaan nombor rawak mengambil banyak masa. Tetapi, dalam bahasa pengaturcaraan Java, ini boleh dicapai menggunakan tiga cara. Ia ditangani dalam bahagian bawah Fungsi Penjana Nombor Rawak di Java.
Mulakan Kursus Pembangunan Perisian Percuma Anda
Pembangunan web, bahasa pengaturcaraan, ujian perisian & lain-lain
Dalam Java, Nombor Rawak boleh dijana menggunakan 3 cara:
Kelas Java Math menawarkan beberapa kaedah untuk mengusahakan pengiraan seperti logaritma, purata, eksponen dan sebagainya. random() ialah salah satu kaedah antaranya yang mengembalikan nilai berganda positif dalam julat 0.0 dan 1.0 di mana 0.0 adalah inklusif, dan 1.0 adalah eksklusif. Kaedah ini boleh digunakan dengan atau tanpa menggunakan parameter. Jika parameter diberikan, nombor rawak yang dijana akan berada dalam julat parameter yang diberikan.
Kod:
public class RandomNumber { double num; //Declare a variable num //Method which generates a random number public double randnum() { num=Math.random(); return num; } // Main Method of a program public static void main(String[] args) { //Printing a random number System.out.println("Random Number generated inside main method: "+Math.random()); //Create an object of the class RandomNumber RandomNumber randomobj=new RandomNumber(); //Store the return value obtained from randnum method in a variable randomval double randomval=randomobj.randnum(); //Printing the random number stored in variable randomval System.out.println("Random Number generated inside randomnumber method: "+randomval); } }
Output:
Dalam Contoh di atas, Nombor Rawak dijana menggunakan kaedah Math.random() dalam dua cara-Menggunakannya secara langsung di dalam kaedah utama dan memanggil kaedah yang mengandungi Math.random() menggunakan objek. Seperti yang dinyatakan dalam penjelasan di atas, kita dapat melihat bahawa 2 nombor rawak dijana dalam julat 0.0 dan 1.0.
Untuk menjana nombor rawak dalam julat parameter, ungkapan umum yang digunakan dinyatakan di bawah:
Math.random()* (( maxvalue – minvalue ) +1 ) + minvalue
Dengan nilai max ialah sempadan atas julat dan nilai min ialah sempadan bawah julat. Sebagai Contoh, untuk menjana nombor rawak antara 10 dan 20, tetapkan nilai maks sebagai 20 dan nilai min sebagai 10.
Kod:
public class RandomNumParameters { public double randomnum(double x,double y)//max value-y, min value-x { double z =(Math.random()*((y-x)+1)+x); //Formula for random number generation within a range return z; } public static void main(String[] args) { RandomNumParameters ran=new RandomNumParameters(); //Create instance for the class RandomNumParameters double num=ran.randomnum(3.0, 10.0); //Call the Method System.out.println("Random number generated within the range of 3 and 10: "+num ); } }
Output:
Kelas Java.util.random menjana nombor rawak jenis data yang berbeza seperti float, long, integer, double, Boolean, dll. Anda juga boleh menghantar julat nombor sebagai argumen untuk menjana nombor rawak dalam julat itu . Untuk menggunakan kelas ini, kelas Rawak java.util mesti diimport (java.util.Random). Setelah kelas ini diimport, buat contoh dan panggil kaedah seperti next long(), nextInt(), dll. menggunakan tika itu.
Kod:
//Java program to generate Random numbers using Random class package Sample; import java.util.Random; //import Random Class public class RandomNum { public static void main(String[] args) { Random rand=new Random(); //Create instance of Random class double randomnum=rand.nextDouble(); //Assign the Random Double value in randomnum variable System.out.println("Random Double value: "+ randomnum); } }
Output:
Dalam atur cara di atas, nilai berganda rawak dijana menggunakan kaedah nextDouble().
Kelas ThreadLocalRandom ialah jenis kelas Random yang khusus yang diperkenalkan dalam Java versi 1.7. ThreadLocalRandom.current().nextInt() ialah salah satu kaedah biasa yang digunakan untuk menjana nombor rawak. Ia biasanya digunakan dalam aplikasi berbilang benang.
Kod:
//Java Program to generate random numbers using ThreadLocalRandom Class import java.util.concurrent.ThreadLocalRandom; public class RandomNumThread { public static void main(String[] args) { //print a random double System.out.println("Random Double value using ThreadLocalRandom: "+ThreadLocalRandom.current().nextDouble()); } }
Output:
Integer rawak boleh dijana menggunakan kelas ThreadLocalRandom dan Kelas Rawak. Dalam kedua-dua kes, kaedah nextInt() digunakan untuk perkara yang sama:
Kod:
//Java program to generate Random integer numbers using Random and THreadLocalRandom Class import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomInteger { public static void main(String[] args) { Random rnd=new Random(); //Create instance of Random class int randomnum1=rnd.nextInt(); //Random Integer value using Random Class int randomnum2=rnd.nextInt(30); //Random Integer value within the range of 30 int randomnum3= ThreadLocalRandom.current().nextInt(); //Random Integer value using ThreadLocalRandom Class System.out.println("Random Integer value using Random Class: "+ randomnum1); System.out.println("Random Integer value within the range of 30: "+ randomnum2); System.out.println("Random Integer value using ThreadLocalRandom Class: "+ randomnum3); } }
Output:
Dalam contoh di atas, tiga nombor jenis integer rawak dijana di mana salah satu kaedah nextInt() mempunyai 30 sebagai hujah. Jadi, semasa menjana nombor rawak, 30 akan ditetapkan sebagai had atas dan sifar (had bawah lalai) akan ditetapkan sebagai had bawah.
Sama seperti menjana nombor integer, nombor titik terapung boleh dijana menggunakan kaedah nextFloat(). Kaedah ini boleh digunakan dalam kedua-dua Kelas Rawak dan Kelas ThreadLocalRandom:
Kod:
//Java program to generate Random Float numbers using Random and THreadLocalRandom Class import java.util.Random; import java.util.concurrent.ThreadLocalRandom; public class RandomFloat { public static void main(String[] args) { Random rnd=new Random(); //Create instance of Random class float randomnum1=rnd.nextFloat(); //Random Float value using Random Class float randomnum2= ThreadLocalRandom.current().nextFloat(); //Random Float value using ThreadLocalRandom Class System.out.println("Random float value using Random Class: "+ randomnum1); System.out.println("Random float value using ThreadLocalRandom Class: "+ randomnum2); } }
Output:
Java mengandungi pelbagai fungsi yang boleh digunakan dalam atur cara. Ini membantu dalam mengurangkan masa pemprosesan dan baris kod. Penjanaan Nombor Rawak ialah satu tugas di mana kita boleh menggunakan beberapa fungsi ini. Dokumen ini merangkumi kaedah yang berbeza untuk mencapai matlamat ini.
Atas ialah kandungan terperinci Penjana Nombor Rawak di Jawa. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!