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

دراسة التوزيع العشوائي في لغة البرمجة سي: أساسيات وأمثلة

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

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

الأداة الرئيسية لتوليد أرقام عشوائية في اللغة ج هي وظيفة راند (). يقوم بإرجاع عدد صحيح في النطاق من 0 إلى راندماكس ، حيث راندماكس هي القيمة القصوى التي يمكن إنشاؤها بواسطة دالة راند (). للحصول على رقم عشوائي في نطاق معين ، يمكننا استخدام الصيغة الحد الأدنى للقيمة + راند () ٪ (الحد الأقصى للقيمة — الحد الأدنى للقيمة + 1).

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

أساسيات التوزيع العشوائي في لغة البرمجة سي

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

الاستخدام القياسي للعشوائية

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

توليد عدد صحيح عشوائي

.

# تشمل 

# تشمل

# تشمل

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

عدد عشوائي;

// تهيئة رقم سراند العشوائي

مولد (الوقت (0));

// توليد

رقم عشوائي رقم عشوائي = راند ();

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

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

العودة 0;

}

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

.

# تشمل 

# تشمل

# تشمل

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

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

إنت ماكس _ عدد = 100;

عدد عشوائي;

// تهيئة رقم سراند العشوائي

مولد (الوقت (0));

// إنشاء رقم عشوائي في نطاق معين

رقم عشوائي = راند () ٪ (الحد الأقصى للرقم + 1-الحد الأدنى للرقم) + الحد الأدنى للرقم;

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

"،الحد الأدنى ، الحد الأقصى ، العدد العشوائي);

العودة 0;

}

استخدام التوزيع العشوائي في الألعاب

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

خاتمة

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

ما هو التوزيع العشوائي ولماذا هو مطلوب?

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

التوزيع العشوائي له العديد من التطبيقات في مختلف المجالات:

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

.

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

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

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

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

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

مع بذرة فريدة من نوعها.

# تشمل 

# تشمل

# تشمل

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

// ضبط الوقت الحالي كبذرة

من سراند (الوقت (لاغية));

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

عدد عشوائي = راند () %10 + 1;

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

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

العودة 0;

}

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

إنشاء رقم عشوائي بدون نطاق

.

# تشمل 

# تشمل

# تشمل

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

// ضبط الوقت الحالي كبذرة

من سراند (الوقت (لاغية));

// إنشاء رقم عشوائي

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

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

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

العودة 0;

}

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

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

استخدام أرقام عشوائية: أمثلة

توليد رقم عشوائي

لتعيين القيمة الأولية للمولد رقم شبه عشوائي.

يوجد أدناه مثال يوضح إنشاء رقم عشوائي:

# تشمل 

# تشمل

# تشمل

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

الباحث الأول ، رقم عشوائي;

ساراند (الوقت (فارغ)) ؛ / / تعيين قيمة أولية عشوائية

// توليد وإخراج 10 أرقام عشوائية

إلى عن على (أنا = 0 ؛ أنا < 10 ؛ أنا i) {

رقم عشوائي = راند ();

برينتف ("٪د

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

}

العودة 0;

}

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

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

  • ).
  • .
  • .

يوضح المثال التالي توليد رقم عشوائي في نطاق معين:

# تشمل 

# تشمل

# تشمل

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

إنت ، أنا ، عدد عشوائي ، أقل ، العلوي ، المدى;

ساراند (الوقت (فارغ)) ؛ / / تعيين قيمة أولية عشوائية

// ضبط النطاق

أقل = 10;

العلوي = 20;

النطاق = العلوي-السفلي + 1;

// توليد وإخراج 10 أرقام عشوائية من نطاق معين

إلى عن على (أنا = 0 ؛ أنا < 10 ؛ أنا i) {

عدد عشوائي = راند () ٪ نطاق + أقل;

برينتف ("٪د

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

}

العودة 0;

}

نتيجة تنفيذ البرنامج:

14

19

12

11

16

13

15

17

12

20

استخدام أرقام عشوائية في الألعاب

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

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

طرق التوزيع العشوائي في ج: اختيار النهج الأمثل

هناك طرق مختلفة لتوليد أرقام عشوائية في لغة البرمجة ج. يعتمد الاختيار الصحيح لطريقة التوزيع العشوائي على الاحتياجات والقيود المحددة للمهمة.

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

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

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

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

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

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

سؤال وجواب

ما هو الغرض الرئيسي من التوزيع العشوائي في اللغة ج?

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

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

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

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

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