logo

توليد أرقام عشوائية في جافا

أرقام عشوائية تُستخدم على نطاق واسع في برمجة عمليات المحاكاة وأمن الألعاب وما إلى ذلك. هناك طرق متعددة لإنشاء أرقام عشوائية باستخدام الأساليب والفئات المضمنة في Java. الأساليب الأكثر استخدامًا مذكورة أدناه:

  • java.util.فئة عشوائية
  • طريقة Math.random() (إرجاع قيم مزدوجة)
  • فئة ThreadLocalRandom (تم تقديمها في Java 7)

دعونا نستكشف كل من هذه الأساليب واحدًا تلو الآخر بالتفصيل

1. استخدام java.util.Random

بمساعدة هذه الفئة يمكننا توليد أرقام عشوائية من أنواع مختلفة (int double long boolean وما إلى ذلك).



الطرق الرئيسية:

مزايا وعيوب التكنولوجيا
  • التاليإنت (): تولد هذه الطريقة عددًا صحيحًا عشوائيًا (نطاق كامل بما في ذلك السلبيات)
  • nextInt(int منضم): تنشئ هذه الطريقة عددًا صحيحًا عشوائيًا بين 0 (شاملاً) ومنضمًا (حصريًا)
  • التالي مزدوج (): تولد هذه الطريقة مضاعفة عشوائية بين 0.0 (شاملاً) و1.0 (حصريًا)
  • التاليBoolean (): عشوائية صحيحة أو خاطئة

مثال :

Java
// Generating random number using java.util.Random; import java.util.Random; public class Geeks{    public static void main(String[] args) {    // Creating the instance of Random class  Random r= new Random();  // Generate random integers in range 0 to 999  int r1 = r.nextInt(1000);  int r2 = r.nextInt(1000);  // Printing random integers  System.out.println('Random Integers: ' + r1);  System.out.println('Random Integers: ' + r2);  // Generate random doubles  double rd1 = r.nextDouble();  double rd2 = r.nextDouble();  // Printing random doubles  System.out.println('Random Doubles: ' + rd1);  System.out.println('Random Doubles: ' + rd2);  } } 

الإخراج
Random Integers: 39 Random Integers: 190 Random Doubles: 0.4200728082969115 Random Doubles: 0.9327571841228275 

توليد أرقام في نطاق معين

افلام الهند

الصيغة لإنشاء رقم عشوائي بنطاق محدد مدرجة أدناه:

راند عشوائي = جديد عشوائي ()؛

int RandomNum = rand.nextInt(max - min + 1) + min;

ملحوظة: الحد الأدنى والحد الأقصى هما الحد الأدنى والأعلى للرقم.

مثال:

Java
// Generating random number in a specific range  import java.io.*; import java.util.*; class Geeks {    public static void main (String[] args) {  Random r = new Random();  int max=100min=50;  System.out.println('Generated numbers are within '+ min +' to '+ max);  System.out.println(r.nextInt(max - min + 1) + min);  System.out.println(r.nextInt(max - min + 1) + min);  System.out.println(r.nextInt(max - min + 1) + min);  } } 

الإخراج
Generated numbers are within 50 to 100 55 51 51 


2. استخدام Math.random()

ال فئة الرياضيات يحتوي على طرق مختلفة لإجراء العمليات الرقمية المختلفة مثل حساب اللوغاريتمات الأسية وما إلى ذلك. إحدى هذه الطرق هي عشوائي() تقوم هذه الطريقة بإرجاع قيمة مزدوجة بإشارة موجبة أكبر من أو تساوي 0.0 وأقل من 1.0. يتم اختيار القيم التي تم إرجاعها بشكل عشوائي. يمكن لهذه الطريقة إنشاء أرقام عشوائية من النوع المزدوج فقط.

مثال:

ارتفاع الإزاحة
Java
// Java program to demonstrate working of  // Math.random() to generate random numbers import java.util.*;   public class Geeks {  public static void main(String args[])  {  // Generating random doubles  System.out.println('Random doubles: ' + Math.random());  System.out.println('Random doubles: ' + Math.random());  } } 

الإخراج
Random doubles: 0.38601320746656065 Random doubles: 0.9209882942481417 

توليد أرقام في نطاق معين

فيما يلي صيغة إنشاء رقم عشوائي بنطاق محدد حيث يمثل الحد الأدنى والحد الأقصى الحد الأدنى والأعلى للرقم:

المفتاح الأساسي المركب

int RandomNum = min + (int)(Math.random() * ((max - min) + 1));

مثال:

Java
// Demonstrating how to generate random  // number within a specific range import java.io.*; import java.util.*; class Geeks {    public static void main (String[] args) {  int max=100min=50;  System.out.println('Generated numbers are within '+min+' to '+max);  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));  System.out.println(min + (int)(Math.random() * ((max - min) + 1)));   } } 

الإخراج
Generated numbers are within 50 to 100 82 68 77 


3. استخدام ThreadLocalRandom

هذه هي الطريقة الموصى بها في البيئات متعددة الخيوط لأنها تقلل من التنافس.

الطرق الرئيسية:

  • الحالي ().nextInt (): عدد صحيح عشوائي (نطاق كامل)
  • الحالي ().nextInt (الحد الأدنى والحد الأقصى + 1): عدد صحيح عشوائي في النطاق (لقد أضفت هذا المثال المحدود)
  • الحالي ().التالي مزدوج (): مزدوج عشوائي (0.0 إلى 1.0)
  • الحالي ().nextBoolean (): عشوائية صحيحة أو خاطئة

مثال:

Java
// Demonstrates how to generate random integers  // doubles and booleans using ThreadLocalRandom import java.util.concurrent.ThreadLocalRandom; public class Geeks {  public static void main(String[] args) {  // Generate random integers in range 0 to 999  // Random number between 0 and 999  int r1 = ThreadLocalRandom.current().nextInt(1000);    // Random number between 0 and 999  int r2 = ThreadLocalRandom.current().nextInt(1000);   // Print random integers  System.out.println('Random Integers: ' + r1);  System.out.println('Random Integers: ' + r2);  // Generate Random doubles between 0.0 (inclusive)   // and 1.0 (exclusive)  double rd1 = ThreadLocalRandom.current().nextDouble();  double rd2 = ThreadLocalRandom.current().nextDouble();  // Print random doubles  System.out.println('Random Doubles: ' + rd1);  System.out.println('Random Doubles: ' + rd2);  // Generate random booleans  boolean rb1 = ThreadLocalRandom.current().nextBoolean();  boolean rb2 = ThreadLocalRandom.current().nextBoolean();  // Print random Booleans  System.out.println('Random Booleans: ' + rb1);  System.out.println('Random Booleans: ' + rb2);  } } 

الإخراج
Random Integers: 812 Random Integers: 461 Random Doubles: 0.7420865203902993 Random Doubles: 0.9580683365617423 Random Booleans: false Random Booleans: false