اگه میخواید از ()rand و ()srand استفاده کنید باید چندتا نکته رو بدونید .
اینکه ()rand وابستگی شدیدی نسبت به ()srand داره .
یعنی نسبت به عدد داده شده ی srand که به اصلاح seed گفته میشه عمل میکنه و از یک الگوی خاصی استفاده میکنه .
شاید به نظر اعداد تولید شده ی ()rand تصادفی باشند ولی اینطور نیست .
شما اگه مقدار ()srand رو یک عدد ثابت بدید خواهید دید که هر بار که برنامه رو اجرا میکنید همون عداد تصادفی قبلی رو بهتون میده.
و این خیلی بده . حالا بره اینکه این اتفاق نیوفته عددی که به ()srand میدید یا همون Seed باید در هربار تغییر کنه تا ()rand هم نتیجه ی متغییری به شما بده .
برای همین یکی از راه کار هایی که خیلی استفاده میشه اینه که Seed رو معمولا با زمان مقدار دهی میکنند . چون زمان همیشه در حال تغییره و از همین تغییر پذیری میشه برای ()srand استفاده کرد .
این کدو بیین و اجراش کن و بعدش خطی که داخلش ()srans صدا زده رو پاک کن و دوباره اجرا کن متوجه میشی .
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <unistd.h>
int main ()
{
srand(time(NULL));
for(int i = 0;i < 20;i++)
{
printf("%u\n",rand() % 100);
sleep(1);
}
return 0;
}