rand () الوظيفة in C Language

Rand Function C Language



في لغة C ، فإن ملف صف() تستخدم الوظيفة ل مولد الرقم الزائف (PRNG) . الأرقام العشوائية التي تم إنشاؤها بواسطة الدالة rand () ليست عشوائية حقًا. إنه تسلسل يتكرر بشكل دوري ، لكن الفترة كبيرة جدًا بحيث يمكننا تجاهله. ال صف() تعمل الوظيفة من خلال تذكر قيمة أولية تُستخدم لحساب الرقم العشوائي التالي والبذرة الجديدة التالية. في هذه المقالة ، سنناقش بالتفصيل كيف يمكن إنشاء أرقام عشوائية باستخدام صف() وظيفة. لذلك دعونا نبدأ!

الملف الاساسي:

stdlib.h







بناء الجملة:

راند int (باطل)



إرجاع القيم:

تقوم هذه الدالة بإرجاع الرقم العشوائي الزائف التالي في السلسلة. تتراوح قيمة نطاق سلسلة الأرقام بين 0 و RAND_MAX. RAND_MAX هو ماكرو محدد في stdlib.h header ، الذي تكون قيمته هي القيمة القصوى ، والتي يمكن إرجاعها بواسطة الدالة rand (). قيمة RAND_MAX أكبر ولكن لا تقل عن 32767 اعتمادًا على مكتبات C.



//Example1.c

#يشمل
#يشمل

intالأساسية()
{

intأنا؛

printf ('10 أرقام عشوائية =>ن')؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪د 'و صف ())؛
}

printf ('ن')؛
إرجاع 0؛
}


في Example1.c ، نسمي الدالة rand () في كل تكرار لـ for loop ونطبع القيمة المرجعة للدالة. تسلسل القيمة الخاص بوظيفة rand () هو نفسه في كل مرة نقوم فيها بتشغيل البرنامج. بشكل افتراضي ، يتم تعيين أصل وظيفة rand على 1.





يمكننا تعيين البذرة لوظيفة rand باستخدام srand () وظيفة. يمكن وضع البذرة مرة واحدة فقط وقبل المرة الأولى صف() استدعاء وظيفة.

وظيفة srand ():

الملف الاساسي:

stdlib.h



بناء الجملة:

int srand (بذرة int غير موقعة)

الحجج:

تأخذ هذه الوظيفة وسيطة واحدة

بذرة: قيمة عددية صحيحة تُستخدم كبذرة لسلسلة جديدة من الأرقام العشوائية الزائفة.

إرجاع القيم:

لا أحد

//Example2.c

#يشمل
#يشمل
#يشمل

intالأساسية()
{

intأنا؛

سراند ( زمن (0))؛

printf ('10 أرقام عشوائية =>ن')؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪د 'و صف ())؛
}

printf ('ن')؛
إرجاع 0؛
}


في Example2.c ، استخدمنا الدالة srand () لتعيين البداية الأولية للتسلسل الرقمي العشوائي الذي تم إنشاؤه بواسطة الدالة rand (). في كل مرة يتم فيها تشغيل البرنامج ، يتم إنشاء تسلسل مختلف. في srand () ، الوقت (0) وظيفة (معلنة في الوقت header) يستخدم كملف أولي. تُرجع الدالة (0) هذه عدد الثواني المنقضية منذ الحقبة (00:00:00 ، 1 يناير 1970). لا يزال هذا قد ينتج نفس التسلسلات إذا قمت بتشغيل البرنامج في نفس الثانية.

// مثال 3.c

#يشمل
#يشمل
#يشمل

intالأساسية()
{

intأنا؛

سراند ( زمن (0))؛

printf (10 أرقام عشوائية بين 1 و 10 =>ن')؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪د 'و( صف () ٪10) + 1)؛
}

printf ('ن')؛
إرجاع 0؛
}


في Example3.c رأينا كيف يمكن إنشاء أرقام عشوائية بين 1 و 10.

// مثال 4.c

#يشمل
#يشمل
#يشمل

intالأساسية()
{

intأناوالأعلىودقيقة؛

printf ('أدخل الحد الأدنى للقيمة =>')؛
مسح ('٪د'و &دقيقة)؛
printf ('أدخل القيمة القصوى =>')؛
مسح ('٪د'و &الأعلى)؛

لو(دقيقة>الأعلى)
{
printf (الحد الأدنى للقيمة أكبر من الحد الأقصى للقيمةن')؛
إرجاع 0؛
}

سراند ( زمن (0))؛


printf ('10 أرقام عشوائية بين٪ d و٪ d =>ن'ودقيقةوالأعلى)؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪د 'و( صف () ٪ (الأعلى-دقيقة+1)) +دقيقة)؛
}

printf ('ن')؛
إرجاع 0؛
}


في Example4.c أخذنا النطاق من المستخدم وقمنا بإنشاء رقم عشوائي ضمن هذا النطاق. الصيغة هي: راند ()٪ (حد أقصى - دقيقة +1)) + دقيقة

// مثال 5. ج

#يشمل
#يشمل
#يشمل

intالأساسية()
{

intأنا؛

سراند ( زمن (0))؛

printf ('10 أرقام عشوائية بين 0.0 و 1.0 =>ن')؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪F 'و((تطفو) صف () /RAND_MAX))؛
}

printf ('ن')؛
إرجاع 0؛
}


في example5.c ، رأينا كيف يمكننا إنشاء أرقام عشوائية بين القيمة 0.0 و 1.0 الصيغة هي: (تعويم) راند () / RAND_MAX)

// مثال 6.c

#يشمل
#يشمل
#يشمل

intالأساسية()
{

intأنا؛
تطفوالأعلىودقيقة؛

printf ('أدخل الحد الأدنى للقيمة =>')؛
مسح ('٪F'و &دقيقة)؛
printf ('أدخل القيمة القصوى =>')؛
مسح ('٪F'و &الأعلى)؛

لو(دقيقة>الأعلى)
{
printf (الحد الأدنى للقيمة أكبر من الحد الأقصى للقيمةن')؛
إرجاع 0؛
}

سراند ( زمن (0))؛

printf ('10 أرقام عشوائية بين٪ f و٪ f =>ن'ودقيقةوالأعلى)؛

ل(أنا=0؛أنا<10؛أنا++)
{
printf ('٪F 'ودقيقة+ ((تطفو) صف () /(RAND_MAX/(الأعلى-دقيقة))))؛
}

printf ('ن')؛
إرجاع 0؛
}


في Example6.c ، أخذنا النطاق من المستخدم وقمنا بإنشاء رقم عشوائي ضمن هذا النطاق (كلاهما شامل). الصيغة هي: min + ((عائم) rand () / (RAND_MAX / (أقصى - دقيقة)))

استنتاج:

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