جاري التحميل...

Random في Java

اطلب من Java رقماً عشوائياً ضمن نطاق صغير واطبعه. في Dice.java استورد java.util.Random، أبقِ الفئة العامة Dice، أنشئ Random rng = new Random(42);، خزّن int roll = rng.nextInt(6) + 1; واطبع roll. ترجم بـ javac Dice.java وشغّل java Dice. مع seed 42 يجب أن تعرض الشاشة 3. عرض ثانٍ يطبع رسمتين من المولد نفسه فترى 3 ثم 4. اترك Summary للصفحة التالية — هذا الدرس أرقام عشوائية مع seed ثابت للتمرين، وليس ختاماً للدورة.

ابنِ رمية واحدة مع seed

صفحة التواريخ ثبّتت يوماً تقويمياً. هذه الصفحة تريد رمية. افتح Dice.java. أبقِ اسم الفئة العامة Dice. احذف عروض تاريخ Stamp المتبقية إن دفنت قصة Random، ومجاميع تنسيق Yard، وملفات التسمية، وأي Scanner للوحة المفاتيح. لا ينبغي أن ينتظر البرنامج الكتابة.
أضف الاستيراد في أعلى الملف:
import java.util.Random;
داخل Dice.main أنشئ مولّداً مع seed حتى يكرّر كل تشغيل لهذا الملف التعليمي نفس القيمة الأولى:
Random rng = new Random(42);
int roll = rng.nextInt(6) + 1;
System.out.println(roll);
nextInt(6) وحده يعيد 0 إلى 5. إضافة 1 تنقل النطاق إلى 1 إلى 6، مثل نرد سداسي. seed 42 ليس سحراً — إنه فقط يثبّت التسلسل لهذا الدرس حتى يتفق الاختبار مع الشاشة. أنت لا تخمّن رقماً جديداً في كل مرة تقرأ فيها الصفحة.

Dice one seeded roll prints 3

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        int roll = rng.nextInt(6) + 1;
        System.out.println(roll);
    }
}

من المجلد الذي يحوي Dice.java شغّل javac Dice.java. عندما تتطابق الأقواس والأقواس المعقوفة والفواصل المنقوطة، لا يكتب javac سطراً خاصاً به. بعد ذلك شغّل java Dice — وليس java Dice.java. أزل لاحقة .java من أمر التشغيل. أبقِ فئة عامة واحدة في الملف ليتطابق الاسم مع Dice.
تعرض الشاشة 3. امشِ على التشغيل مرةً. يبدأ Java عند Dice.main. يخزّن المُنشئ seed 42. أول استدعاء لـ nextInt(6) يسحب قيمة بين 0 و5، ثم + 1 يجعلها 1..6. مع هذا الـ seed تصبح الرمية الأولى 3. الطباعة تكتب 3.
قل القاعدة للمبتدئ وأنت تنظر للشاشة: استورد Random، أنشئ مع seed عندما تحتاج عرضاً متكرراً، استدعِ nextInt(6) + 1 لنطاق يشبه النرد، واطبع الرمية. لا تخترع فصلاً Summary في هذه الصفحة. Summary ينتظر الدرس التالي. لا تحذف + 1 إذا أردت 1 إلى 6.
إن رأيت ما زال 2026-03-15 من ملف تاريخ Stamp المتبقي، انتقل لملف تعليم Random وشغّل java Dice مجدداً. إن اشتكى javac أن Random غير موجود، راجع سطر الاستيراد أعلى Dice.java.

رمية ثانية من المولد نفسه

رمية واحدة تثبت النطاق. الاستدعاء الثاني على نفس كائن Random يتابع التسلسل. أبقِ نفس مُنشئ الـ seed. اطبع رلمتين:
System.out.println(rng.nextInt(6) + 1);
System.out.println(rng.nextInt(6) + 1);
مع seed 42 الطباعة الأولى ما زالت 3. الطباعة الثانية 4. القيمتان تبقيان داخل 1..6. المولد يتذكر موضعه؛ لا تعِد بناء new Random(42) بين السطرين إن أردت القيمة التالية من نفس التسلسل.

Dice two seeded rolls print 3 then 4

java
import java.util.Random;

public class Dice {
    public static void main(String[] args) {
        Random rng = new Random(42);
        System.out.println(rng.nextInt(6) + 1);
        System.out.println(rng.nextInt(6) + 1);
    }
}

ترجم بـ javac Dice.java وشغّل java Dice مرة أخرى. تعرض الشاشة 3 ثم 4. امشِ على التشغيل مرةً. نفس الـ seed يبدأ التسلسل. أول nextInt(6) + 1 يطبع 3. الاستدعاء الثاني يتقدم ويطبع 4. لا شيء ينتظر لوحة المفاتيح. لا شيء يخزّن يوم تقويم.
أبقِ العرضين كشكلين تعليميين. أولاً أثبت رمية واحدة مع seed. ثم أثبت رلمتين بالترتيب. يتشاركان نفس الاستيراد ونفس الـ seed. الشكل الثاني يضيف فقط استدعاء nextInt آخر.
إن أعدت بناء new Random(42) قبل كل طباعة، يبدأ كل سطر التسلسل من جديد وقد ترى 3 مرتين. ذلك عادة مختلفة. هذه الصفحة تحتفظ بمولّد واحد لعرض الرلمتين حتى يتقدم السطر الثاني.

Random ليس تقويماً وليس Summary

التواريخ خزّنت يوماً ثابتاً تطبعه وتفصّله. Random يسحب أرقاماً عشوائية في نطاق. Summary سيلخّص مسار الدورة في الصفحة التالية. لا تخلط اليوم هذه الوظائف الثلاث في ملف مبتدئ واحد.
بدون seed قد يعرض كل تشغيل رمية أولى مختلفة. هذا مقبول للألعاب لاحقاً. هذا الدرس يستخدم seed 42 حتى تشترك شاشة التعليم والاختبار في جواب واحد. ستتعلّم نفس استدعاء nextInt في الحالتين.
عند غياب الاستيراد يفشل javac قبل أي سطر على الشاشة. عند نسيان + 1 قد يظهر 0، وليس وجهاً قياسياً للنرد. أبقِ الاستيراد، أبقِ الإزاحة، وشغّل java Dice حتى يظهر عرض الرمية الواحدة 3 أو عرض الرلمتين 3 ثم 4.
إن بقيت عروض التاريخ قريبة، احتفظ بها كسجل. في هذا الدرس شغّل ملف تعليم Random لتعرض الشاشة أرقاماً عشوائية في النطاق، لا 2026-03-15. إن اشتكى javac من فئات عامة مكررة، أبقِ Dice عامة فقط.

النطاق والـ seed وعادة + 1

nextInt(6) يعني ست قيم بداية ممكنة: 0 و1 و2 و3 و4 و5. التعبير nextInt(6) + 1 ينقلها إلى 1 و2 و3 و4 و5 و6. قل هذا التعيين بصوت عالٍ مرة بينما تنظر للكود. وسيطة الحدّ هي عدد قيم البداية، وليست أعلى وجه بعد الإزاحة.
الـ seed يحدّد أي مسار من تلك الوجوه تراه أولاً في هذا الملف التعليمي. تغيير الـ seed يغيّر التسلسل. ترك الـ seed خارجاً يغيّر التسلسل بين التشغيلات. للتمرين المقيّم في هذه الصفحة أبقِ 42 حتى يبقى الوجه الأول 3.
لا تعامل Random بديلاً عن LocalDate. لا تعامل الرمية كقاعدة تنسيق للمسافة البادئة. كل صفحة سابقة احتفظت بعملها. هذه الصفحة تحتفظ بالأرقام العشوائية فقط.

قبل Summary

يمكنك استيراد Random، وإنشاء new Random(42)، ورمي nextInt(6) + 1، ورؤية 3 في تشغيل واحد، و3 ثم 4 في عرض الرلمتين. ترجم Dice.java وشغّل java Dice للعروض المحفوظة. بقي النطاق 1..6؛ والـ seed ثبّت التسلسل للتعليم. الصفحة التالية Summary، حيث تنظر إلى مسار Java.
أبقِ عروض النرد مع الـ seed لزوج واضح من الأرقام العشوائية. أبقِ ملفات التواريخ بعيداً عن هذه الصفحة عندما تمارس Random. أبقِ ملفات Summary بعيدة حتى ذلك الدرس. هذه العادات الثلاث هي نقطة تفتيش قبل المتابعة. عندما تعرض شاشة الرمية الواحدة 3 أو شاشة الرلمتين 3 ثم 4، أنجز Random عمله لهذا الدرس وأنت مستعد لموضوع Summary التالي.
مرور أخير على المجلد: Dice عامة واحدة، استيراد حاضر، new Random(42)، nextInt(6) + 1، بلا انتظار لوحة المفاتيح، بلا أنواع تقويم مفروضة. شغّل javac Dice.java وjava Dice مرة أخرى على العرض المفتوح. إن بقيت الشاشة على 3 أو 3 ثم 4، شكل Random متين والدورة يمكنها الانتقال إلى Summary في الصفحة التالية. فضّل عادة عشوائية واضحة في كل قراءة ليعلّم كل مرور نفس الخريطة.

🧠 اختبر معرفتك

جاهز للبدء

اختبر معرفتك

تحدى نفسك مع هذا الاختبار التفاعلي واكتشف مدى فهمك للموضوع

❓
5
الأسئلة
🎯
70%
للنجاح
♾️
∞
الوقت
🔄
∞
المحاولات

📝 التعليمات

  • اقرأ كل سؤال بعناية
  • اختر أفضل إجابة لكل سؤال
  • يمكنك إعادة الاختبار عدة مرات كما تريد
  • سيتم عرض تقدمك في الأعلى