الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

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

مغلق
بدأه آل عيد في 17 أغسطس 2001 · 3 رد · 1,066 مشاهدة · في ارشيف قسم C/C++
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم

الأخوة الأعزاء ، هل يوجد هناك دالة لتوليد رقم عشوائي ؟

#2

السلام عليكم ،،

نعم يوجد دالة ()rand والمعرفة في مكتبة stdlib ... وهي تعيد قيمة صحيحة .... طبعا الدالة نولد رقم من 0 حتى RAND_MAX و اللي هو رقم ثابت (ماكرو) معرف في نفس المكتبة يحدد أكبر قيمة يوصل لها الرقم العشوائي ..

عموما في بعض الاحيان تبي الرقم المولد يكون من عدد إلى عدد مثلا من 0 حتى رقم 8، تقوم بعملية المود كالتالي :

int i= rand() % 9

هذا راح يخلي الرقم المولد من 0 حتى 8 ، وهكذا ،،،،

اتمنى تكون فهمت الفكرة ،،

تقبل تحياتي ،،،،،

#3

الفكرة واضحة ، و شكرا جزيلا لك أخي العزيز neoo .

لكن ما قيمة الثابت لو سمحت أخ neoo ؟

والسلام ، أخوك .

#4

السلام عليكم.

أخي آل عيد الشيفرة التي كنبها الأخ neoo صحيحة و لكن هناك مشكلة مع التابع rand() و هي أنه في كل مرة تنفذ البرنامج يقوم بتوليد نفس الأرقام العشوائية؟؟!! و طبعا هذا في اإلب الأحيان غير مناسب لذلك يتم استخدام التابع srand() من أجل إعطاء مولد الأرقام العشوائية المجال لاستحداث أرقام عشوائية جديدة في كل مرو يتم فيها تنفيذ البرنامج و يتم استخدامه كالتالي :

srand( (unsigned)time( NULL ) );

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

أما بالنسبة لقيمة الثابت RAND_MAX فهي : 0x7fff التي تقابل العدد 32767 .

مع التحيات.

هذا الموضوع مغلق.

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…