منتدى مصر التقني
هل تريد التفاعل مع هذه المساهمة؟ كل ما عليك هو إنشاء حساب جديد ببضع خطوات أو تسجيل الدخول للمتابعة.

[Java] الطرق المختلفة لتوليد ارقام عشوائية فى الجافا random number by java

اذهب الى الأسفل

Java - [Java]  الطرق المختلفة لتوليد ارقام عشوائية فى الجافا  random number by java Empty [Java] الطرق المختلفة لتوليد ارقام عشوائية فى الجافا random number by java

مُساهمة من طرف أحمد مناع الإثنين فبراير 04, 2019 2:30 pm

أهلا بكم

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

الطريقة الاولى : توليد ارقام عشوائية باستخدام الفئة Random

توفر الفئة java.util.Random الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] التي يمكن أن تولد أرقام عشوائية فى نطاق رقم معين. حيث تأخذ هذه الطريقة عددًا صحيحًا كوسيطة. تمثل هذه القيمة الصحيحة الحد الأعلى للرقم العشوائي الذي سيتم إنشاؤه بواسطة هذه الطريقة ,تبدأ تلك الطريقة بتوليد رقم عشوائي من الرقم 0 حتى الحد الاعلى للرقم العشوائي الذى تم تمريرة اليها .

مثال : أكتب برنامج بلغة الجافا لتوليد ارقام عشوائية فى نطاق الرقم 50

الحل : لإنشاء رقم عشوائي بين 1 و 50 ، نقوم بإنشاء كائن من فئة java.util.Random واستدعاء طريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الخاصة به مع 50 كوسيطة. سيؤدي هذا إلى إنشاء رقم بين 0 و 49 لذلك سنقوم باضافة  الرقم 1 إلى النتيجة مما سيجعل نطاق القيمة التي تم إنشاؤها من 1 إلى 50...على النحو التالى :

الكود:

import java.util.Random;

public class test {
 
 public static void main(String[] args) {
 
 
 Random randomGenerator = new Random();
 int randomInt = randomGenerator.nextInt(50) + 1;
 System.out.println("Random number generated is : " + randomInt);
 }
}

المخرجات :
Random number generated is : 29


مثال : أكتب برنامج بلغة الجافا لتوليد عدد 5 أارقام عشوائية فى نطاق الرقم 50

الحل : فى هذا المثال طلب عدد 5 ارقام عشوائية و ليس رقم واحد كما فى المثال السابق لذلك سوف نستخدم حلقة تكرارية لتنفيذ المطلوب على النحو التالى :
الكود:

import java.util.Random;

public class test {
 
 public static void main(String[] args) {
 
 
 Random randomGenerator = new Random();
                for(int i = 0; i < 5; i++) {
                int randomInt = randomGenerator.nextInt(50) + 1;
 System.out.println("Random number generated is : " + randomInt);  
                }
 
 }
}

المخرجات :

Random number generated is : 20
Random number generated is : 26
Random number generated is : 44
Random number generated is : 7
Random number generated is : 3


الطريقة الثانية : توليد ارقام عشوائية باستخدام الفئة Math

يحتوي الفئة java.lang.Math على الطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الذي يولد قيمة عشرية من النوع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] أكبر من 0.0 وأقل من 1.0 (0.9999) ، اذن النطاق الافتراضي لهذه الطريقة 0.0 حتى 1.0

مثال : أكتب برنامج بلغة الجافا لتوليد عدد 5 أارقام عشوائية

الحل :
الكود:

public class test {
 
 public static void main(String[] args) {
 
 
 
                for(int i = 0; i < 5; i++) {
                double randomDouble = Math.random();
 System.out.println("Random number generated is : " + randomDouble);  
               }
 
 }
}

المخرجات :

Random number generated is : 0.5399298565634371
Random number generated is : 0.3914851406177742
Random number generated is : 0.6582928867493553
Random number generated is : 0.02994586334518179
Random number generated is : 0.13342139597089198

وعلى الرغم من ان الطريقة اعلاه لها نطاق محدد لتوليد ارقام عشوائية باستخدامها الا انه يمكنك ضرب القيمة التي يتم إرجاعها بطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بمقدار الذى تريدة وهذا يجعل نطاقها من 0.0 حتى الرقم الذى وضعته

مثال :أكتب برنامج بلغة الجافا لتوليد عدد 5 أارقام عشوائية فى نطاق الرقم 50 باستخدام Math.random

الحل :من أجل توليد رقم يتراوح بين 1 إلى 50 ، نضرب القيمة التي يتم إرجاعها بطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بمقدار 50. وهذا يجعل نطاقها من 0.0 إلى 49.995 على النحو التالى :

الكود:

public class test {
 
 public static void main(String[] args) {
 
 
 
                for(int i = 0; i < 5; i++) {
                double randomDouble = Math.random()*50;
 System.out.println("Random number generated is : " + randomDouble);     
               }
 
 }
}

المخرجات :


Random number generated is : 36.098268352442915
Random number generated is : 37.77195830913475
Random number generated is : 46.46593180334226
Random number generated is : 3.1068847461841855
Random number generated is : 49.468128176594774


ولكن النتيجة السابقة ليست صحيحة 100% لانه عند ضرب القيمة التي يتم إرجاعها بطريقة [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] بمقدار 50. هذا يجعل نطاقها من 0.0 إلى 49.995 و ليس من 0.0 الى 50
و لحل هذه المشكلة نقوم باضافة الرقم 1. هذا يزيد من نطاقه من 1.0 إلى 50.995. إذا تم إرسال هذه النتيجة إلى متغير من نوع [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] ، فسيكون النطاق من 1 إلى 50 كما هو ظاهر على النحو التالى :

الكود:

public class test {
 
 public static void main(String[] args) {
 
 
 
                for(int i = 0; i < 5; i++) {
                double randomDouble = Math.random()*50+1;
                int no =( int )randomDouble;
 System.out.println("Random number generated is : " + no);  
               }
 
 }
}

و المخرجات على النحو التالى :

Random number generated is : 27
Random number generated is : 31
Random number generated is : 49
Random number generated is : 20
Random number generated is : 1


الطريقة الثالثة : توليد ارقام عشوائية باستخدام الفئة ThreadLocalRandom

قامت Java 7 بتوفير فئة جديدة تسمى java.util.concurrent.ThreadLocalRandom . يحتوي هذا الفصل على طرق لإنشاء أرقام عشوائية. هذه الفئة مناسبة لتوليد أرقام عشوائية في بيئات متعددة .

ThreadLocalRandom فئة ThreadLocalRandom على أسلوب [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] الذي يأخذ [ندعوك للتسجيل في المنتدى أو التعريف بنفسك لمعاينة هذا الرابط] يمثلان قيم الحدود الدنيا والعليا ويقوم بإرجاع عدد صحيح بين هذه القيم. ستكون النتيجة بين الحد الأدنى  والحد الأعلى .

مثال : لتوليد رقم بين 1 و 50 ، تكون الحدود الدنيا والعليا التي تم تمريرها إلى هذه الطريقة هي 1 و 51 على التوالي.

الكود:

import java.util.concurrent.ThreadLocalRandom;

public class test {
 
 public static void main(String[] args) {
 
 
         for(int i = 0; i < 5; i++) {
   int randomInt = ThreadLocalRandom.current().nextInt(1, 51);
 System.out.println("Random number generated is : " + randomInt);
                  
          }
 
 }
}

المخرجات :

Random number generated is : 20
Random number generated is : 5
Random number generated is : 3
Random number generated is : 26
Random number generated is : 48

ـــــــــــــــــــ التوقيع ــــــــــــــــــــ
سبحان الله وبحمدة .....سبحان الله العظيم
أحمد مناع
أحمد مناع
.
.

تاريخ التسجيل : 15/02/2011
المساهمات : 1108
النقاط : 202034
التقيم : 144
الدولة : مصر
الجنس : ذكر

https://egy-tech.forumegypt.net

الرجوع الى أعلى الصفحة اذهب الى الأسفل

Java - [Java]  الطرق المختلفة لتوليد ارقام عشوائية فى الجافا  random number by java Empty رد: [Java] الطرق المختلفة لتوليد ارقام عشوائية فى الجافا random number by java

مُساهمة من طرف معتز محمد السبت يوليو 22, 2023 1:19 pm

صيانة تكييفات الاسكندرية و يمكننا مساعدتك في الحصول على جهازك ان يعمل مرة أخرى و يعمل تماما دون مشاكل متكررة من أجل مواصلة الاستفادة من الجهاز لا تترددوا في الاتصال فى أي وقت نحن هنا للمساعدة كلمنا اذا كان الامر ضروريا و يمكنك الاتصال بنا
صيانة تكييفات يونيون اير بالاسكندرية
توكيل صيانة تكييفات يونيون اير بالاسكندرية
صيانة تكييفات كرفت بالاسكندرية
توكيل صيانة تكييفات كرفت بالاسكندرية
صيانة تكييفات شارب بالاسكندرية
توكيل صيانة تكييفات شارب بالاسكندرية
صيانة تكييفات باور بالاسكندرية
توكيل صيانة تكييفات باور بالاسكندرية
صيانة تكييفات كاريير بالاسكندرية

توكيل صيانة تكييفات كاريير بالاسكندرية
معتز محمد
معتز محمد
..
..

تاريخ التسجيل : 21/11/2021
المساهمات : 15
النقاط : 37
التقيم : 0
الدولة : مصر
الجنس : ذكر

https://nsrzhbi.com/

الرجوع الى أعلى الصفحة اذهب الى الأسفل

الرجوع الى أعلى الصفحة

ََ

مواضيع ذات صلة


 
صلاحيات هذا المنتدى:
لاتستطيع الرد على المواضيع في هذا المنتدى