المتغيرات
فضاءات التسمية
أفعال

rand

من cppreference.com
< c‏ | numeric‏ | random
معرفة في ملف <stdlib.h>
int rand();

تُرجع عدد صحيح شبه عشوائي بين 0 و RAND_MAX‎ (شاملة 0 و ‎RAND_MAX‎).

srand()‎‎ تحدد بذرة (قيمة ابتدائية) تستعملها الخوارزمية في ‎rand()‎‎.

في حالة استعمال ‎rand()‎‎ دون استدعاءات سابقا لـ srand()‎‎, تتصرف ‎rand()‎‎ كما لو كانت البذرة تساوي الواحد (أي ‎srand(1)‎‎).


كل مرة يتم تحديد نفس البذرة بـ srand()‎‎ يجب توليد نفس المتتالية جراء ‎rand()‎‎.

لا يشترط أن تكون ‎rand()‎‎ آمنة الإستخدام بين خيوط مختلفة (ليست thread-safe).

محتويات

[تعديل] المعطيات

(لا شيء)

[تعديل] القيمة المُرجعة

عدد صحيح شبه عشوائي يقع بين 0 و RAND_MAX‎ (شاملة الطرفين).

[تعديل] ملحوظات

لا يوجد ضمانات بالنسبة لجودة الأعداد المولدة. لا ينصح باستخدام ‎rand()‎‎ للأغراض الجادة مثل التشفير.

[تعديل] مثال

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
 
int main(void)
{
    srand(time(0)); //use current time as seed for random generator
    int random_variable = rand();
    printf("Random value on [0,%d]: %d\n", RAND_MAX, random_variable);
}

خرج ممكن:

Random value on [0 2147483647]: 1373858591

[تعديل] أنظر أيضا

تحدد بذرة ابتدائية يستعملها مولد الأرقام
(دالة) [edit]
أكبر قيمة يمكن توليدها بـ rand()
(ثابت ماكرو) [edit]