Rumah > Java > javaTutorial > Penjana Nombor Rawak di Jawa

Penjana Nombor Rawak di Jawa

WBOY
Lepaskan: 2024-08-30 16:27:17
asal
876 orang telah melayarinya

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

Fungsi Penjana Nombor Rawak dalam Java

Dalam Java, Nombor Rawak boleh dijana menggunakan 3 cara:

  • Kaedah Math.random
  • kelas java.util.Random
  • Kelas ThreadLocalRandom

1. Kaedah Math.random()

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.

Contoh #1

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);
}
}
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

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

Contoh #2

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 );
} }
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

2. java.util.Kelas Random

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.

Contoh

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);
}
}
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

Dalam atur cara di atas, nilai berganda rawak dijana menggunakan kaedah nextDouble().

3. Kelas ThreadLocalRandom

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.

Contoh

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());
}
}
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

Penjanaan Integer

Integer rawak boleh dijana menggunakan kelas ThreadLocalRandom dan Kelas Rawak. Dalam kedua-dua kes, kaedah nextInt() digunakan untuk perkara yang sama:

Contoh

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);
}
}
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

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.

Menjana Nombor Mata Apungan

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:

Contoh

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);
}
}
Salin selepas log masuk

Output:

Penjana Nombor Rawak di Jawa

Kesimpulan – Penjana Nombor Rawak di Java

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!

Label berkaitan:
sumber:php
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan