البرمجة

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

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

  1. الخطأ الأول:
    في السطر:

    java
    randomNum = (int) (Math.random() * (3,9,25,41,43,50,68));

    هنا، يحاول الكود استخدام الفاصلة لفصل الأرقام، ولكن هذا النهج غير صحيح في جافا. يجب استخدام الفواصل بين الأرقام.

  2. الخطأ الثاني:
    في حلقة الدوران الداخلية، عندما يتم إنشاء رقم عشوائي جديد إذا كان مكررًا، يتم تعيين قيمة x إلى -1 لإعادة بدء الحلقة. ومع ذلك، لا يمكن تحقيق هذا الهدف بتعيين قيمة x بشكل مباشر داخل الحلقة for.

بناءً على هذه الملاحظات، يمكن تعديل الكود ليصبح كالتالي:

java
public class LotteryGenerator { public static void main(String[] args) { int[] lottery = new int[2]; int randomNum; for (int i = 0; i < 2; i++) { randomNum = generateUniqueRandom(lottery); // Generate unique random number. lottery[i] = randomNum; } // Output the generated numbers System.out.println("Generated Numbers:"); for (int i = 0; i < lottery.length; i++) System.out.print(lottery[i] + " "); } // Function to generate unique random number public static int generateUniqueRandom(int[] arr) { int randomNum; boolean isUnique; do { randomNum = (int) (Math.random() * 68) + 3; // Generate random number between 3 and 68 inclusive. isUnique = true; for (int num : arr) { if (num == randomNum) { isUnique = false; break; } } } while (!isUnique); return randomNum; } }

هذا التعديل يستخدم وظيفة فرعية (generateUniqueRandom) لإنشاء الأرقام العشوائية والتأكد من أن كل رقم فريد، وبالتالي لن تحدث تكرارات. كما أنه يصحح الأخطاء المذكورة في الكود السابق.

المزيد من المعلومات

بالطبع، يمكننا إضافة المزيد من المعلومات لتوسيع فهمك حول موضوع إنشاء أرقام عشوائية في نطاق معين في لغة البرمجة جافا.

  1. الطريقة الصحيحة لتوليد أرقام عشوائية في نطاق محدد:

    • في الكود المصحح الذي قدمته، تم استخدام Math.random() لإنشاء أرقام عشوائية. هذه الوظيفة تولد أعدادًا عشوائية بين 0 (شامل) و1 (حصري). لتوليد أرقام عشوائية في نطاق معين، يجب ضبط النطاق المطلوب. في هذا السياق، تم استخدام التعبير (Math.random() * 68) + 3 لتوليد أرقام عشوائية بين 3 و 68، بما في ذلك الحدود.
  2. الاستفادة من الهيكل التكراري do-while:

    • تم استخدام هيكل التكرار do-while لضمان أن الرقم العشوائي المولد فعليًا فريد من نوعه. هذا يضمن أن الكود سيستمر في إنشاء أرقام عشوائية حتى يتم العثور على رقم فريد غير مكرر. بمجرد العثور على رقم فريد، يتم الخروج من الحلقة وإعادة الرقم المولد.
  3. تقليل التكرار باستخدام وظيفة فرعية:

    • بدلاً من تكرار الكود لفحص تكرار الأرقام في كل دورة، تم استخدام وظيفة فرعية generateUniqueRandom لتوليد الأرقام العشوائية والتحقق من فرادها. هذا يجعل الكود أكثر نظافة وسهولة في الفهم، كما يتيح لنا إعادة استخدام الكود بشكل أفضل في حال رغبنا في تطبيق نفس الأسلوب في أماكن أخرى في البرنامج.
  4. الإخراج النهائي:

    • بعد إنشاء الأرقام العشوائية الفريدة، يتم طباعتها لتوضيح النتائج للمستخدم باستخدام دورة for بسيطة.

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

زر الذهاب إلى الأعلى