الانتقال إلى المحتوى الرئيسي

كيف يمكنني إنشاء رقم عشوائي في ج في النطاق? - دليل كامل

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

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

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

هام: عند استخدام وظيفة " راند ()" ومشغل "مودولو" () ٪ ، يمكن أن تكون نتيجة إنشاء رقم عشوائي غير متوقعة وليست عشوائية تماما ، خاصة عند استخدام نطاقات كبيرة من القيم.

  1. باستخدام وظيفة راند()
  2. تعيين حدود النطاق باستخدام العمليات بالأرقام
  3. توليد الأعداد الصحيحة في نطاق معين
  4. 1. باستخدام وظيفة راند()
  5. 2. باستخدام وظيفة أرك 4 عشوائية موحدة ()
  6. توليد أرقام حقيقية في نطاق معين
  7. أمثلة على استخدام توليد الأرقام العشوائية في مهام مختلفة
  8. سؤال وجواب
  9. كيف يمكنني إنشاء رقم عشوائي من 1 إلى 10?
  10. هل من الممكن توليد أرقام فقط في النطاق من 0 إلى راندماكس باستخدام وظيفة راند ()?
  11. هل من الممكن لتوليد رقم عشوائي في ج باستخدام أكثر" عشوائية " خوارزميات من راند () وظيفة?
  12. هل من الممكن تعيين "الحبوب" للراند () وظيفة في ج?

باستخدام وظيفة راند()

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

لإنشاء رقم عشوائي في النطاق المحدد ، يمكنك استخدام الصيغة التالية:

إنت راندوم نومبر = (راند () ٪ (ماكس-مين + 1)) + مين;

حيث الحد الأدنى هو الحد الأدنى للقيمة والحد الأقصى هو الحد الأقصى للقيمة التي تريد الحصول عليها. يقوم المشغل ٪ بإرجاع ما تبقى من تقسيم المعامل إلى يسار المشغل بواسطة المعامل إلى اليمين. وبالتالي ، تحصل على ما تبقى من قسمة رقم عشوائي على نطاق ، ثم تضيف الحد الأدنى للقيمة.

مثال على استخدام وظيفة راند () لإنشاء رقم عشوائي في النطاق من 1 إلى 10:

# تشمل

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

كثافة العمليات دقيقة = 1 ؛ / / الحد الأدنى للقيمة

كثافة العمليات ماكس = 10 ؛ / / القيمة القصوى

ساراند (الوقت (0)) ؛ / / وضع البذور لوظيفة راند () على أساس الوقت الحالي

إنت راندوم نومبر = (راند () ٪ (ماكس-مين + 1)) + مين ؛ / / توليد رقم عشوائي

برينتف ("رقم عشوائي في النطاق من ٪ د إلى ٪ د: ٪ د

"،مين ، ماكس ، رقم عشوائي);

العودة 0;

}

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

تعيين حدود النطاق باستخدام العمليات بالأرقام

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

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

لتعيين الحدود العليا والسفلى للنطاق ، يمكنك استخدام العمليات التالية:

إنت أوبيربوند = 100;

إنت راندوم نومبر = راند () ٪ (أوبيربوند + 1);

يقوم بإنشاء رقم عشوائي في النطاق من 0 إلى

راند_ماكس

، أين 

للحصول على رقم عشوائي في نطاق معين ، يمكنك استخدام الصيغة التالية:

دقيقة

و

ماكس

هي القيم الدنيا والقصوى للنطاق ، على التوالي.

مثال على استخدام

وظيفة راند()

لإنشاء رقم عشوائي في النطاق من 1 إلى 10:

# تشمل

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

// إعداد البذور لمولد الأرقام العشوائية

سراند (الوقت (0));

كثافة العمليات دقيقة = 1;

إنت ماكس = 10;

إذا كنت تعمل على منصة ماك أو دائرة الرقابة الداخلية ، يمكنك استخدام

وظيفة قوس 4 عشوائية موحدة ()

يضمن توزيع أكثر اتساقا للأرقام العشوائية من

وظيفة راند()

.

مثال على استخدام الوظيفة

قوس 4عشوائي موحد ()

لإنشاء رقم عشوائي في النطاق من 1 إلى 10:

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

كثافة العمليات دقيقة = 1;

برينتف ("رقم عشوائي تم إنشاؤه: ٪ د

"،رقم عشوائي);

العودة 0;

}

لاحظ أن استخدام

وظيفة قوس 4 عشوائية موحدة ()

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

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

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

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

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

سراند (الوقت (فارغ));

// بقية الكود

}

بعد تهيئة مولد الأرقام العشوائية ، يمكنك استخدام وظيفة راند للحصول على رقم حقيقي عشوائي:

# تشمل

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

سراند (الوقت (فارغ));

تعويم راندفاليو = (تعويم) راند () / راند_ماكس;

برينتف ("٪و

"،قيمة عشوائية);

العودة 0;

}

هنا ، سيحتوي متغير القيمة العشوائية على رقم حقيقي عشوائي في النطاق [0 ، 1]. للحصول على رقم عشوائي في نطاق معين ، يمكنك ضرب القيمة الناتجة في عرض هذا النطاق وإضافة الحد الأدنى للقيمة:

# تشمل

# تشمل

# تشمل

كثافة العمليات الرئيسية () {

سراند (الوقت (فارغ));

تعويم دقيقة = 10.0;

تعويم ماكس = 20.0;

تعويم راندفاليو = ((تعويم)راند () / راند_ماكس) * (ماكس-مين) + مين;

برينتف ("٪و

"،قيمة عشوائية);

  1. العودة 0;

    }

  2. الآن سيحتوي متغير القيمة العشوائية على رقم حقيقي عشوائي في النطاق [10.0 ، 20.0].

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

  3. أمثلة على استخدام توليد الأرقام العشوائية في مهام مختلفة

    توليد الأرقام العشوائية هو ميزة برمجة مستخدمة على نطاق واسع. لنلق نظرة على بعض الأمثلة لاستخدام توليد الأرقام العشوائية في مهام مختلفة:

  4. تطوير اللعبة:

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

تحليل البيانات الإحصائية:

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

الترميز والتشفير:

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

اختبار البرمجيات:

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

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

سؤال وجواب

كيفية إنشاء رقم عشوائي من 1 إلى 10?

لإنشاء رقم عشوائي في نطاق معين في ج ، يمكنك استخدام وظيفة راند() من المكتبة القياسية. من أجل الحصول على رقم من 1 إلى 10 ، تحتاج إلى استخدام ما تبقى من عامل القسمة ( ٪ ) للحد من النتيجة في النطاق المحدد. للحصول على نتيجة ستكون مختلفة في كل مرة يتم فيها بدء البرنامج ، يمكنك استخدام الوقت الحالي كـ "حبة" لوظيفة راند ().