💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذر ماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۱ رامهر
تابع rand() در دقیقه 29:30
جامعه برنامه نویسی وب ایجاد شده در ۰۱ دی ۱۴۰۲

سلام وقت بخیر خسته نباشید

چرا در تابع rand در دقیقه 29:30 با اینکع من عدد رو گذاشتم بین 1 و 200 ، باز هم با هر بار رفرش عدد‌های کمی برمیگردونه وبالای عدد 40 خیلی به شدت کم میاد بعد از تعداد طولانی رفرش؟

سلام 

تابع rand از یک seed برای تولید اعداد تصادفی استفاده میکنه و این seed به طور پیش فرض ممکن هست با هر بار اجرا تغییر کنه.برای حل این مشکل، می‌تونید از تابع srand برای تنظیم seed استفاده کنید. به عنوان مثال:

srand((int)date("YmdHi"));
$randomNumber = rand(1, 200);

این کد seed رو بر اساس تاریخ و ساعت فعلی تنظیم میکنه و ممکنه به شما کمک کنه تا اعداد تصادفی مطلوب‌تری دریافت کنید.

 Seed در مفهوم تابع‌های تولید اعداد تصادفی، یک مقدار اولیه هست که به این توابع داده میشه. این مقدار مشخص میکنه که الگوریتم چه دنباله‌ای از اعداد تصادفی رو تولید کنه.اگر seed یکسان باشه، هر بار که تابع تولید اعداد تصادفی فراخوانی میشه، دنباله مشابهی از اعداد تولید میشه. اما اگه seed تغییر بکنه، دنباله اعداد تصادفی هم تغییر میکنه.میتونید با تابع srand seed رو تنظیم کنید و بعد با استفاده از rand اعداد تصادفی با توجه به اون seed رو دریافت کنید.

احمدرضا فاطمی کیا ۰۱ دی ۱۴۰۲، ۱۲:۵۶