PDA

View Full Version : کار با تابع rand



mehdi4467
جمعه 15 خرداد 1394, 21:29 عصر
سلام
من تابعی لازم دارم که در یک بازه مشخص عدد تصادفی تولید کنه منتها در اون بازه عدد یا عدد های مورد نظر رو خروجی نده.
مثلا فرض کنید یک عدد تصادفی بین 0 تا 100 تولید کنه ولی عدد های 5 و 7و 23 و 85 تولید نشه به هیچ عنوان.
البته می توانم به این صورت بنویسم که اول یکبار اجرا بشه و خروجی اگر 4 عدد بالا نبود که خوب درست است ولی اگر از 4 عدد بالا بود دوباره اجرا بشه تا بالاخره عددی بیرون باید که از 4 عدد بالا نباشه. ولی این روش اصلا بهینه نیست و اگر تعداد اعداد استثنا زیاد بشن سرعت پایین میاد.

reza_alie
جمعه 15 خرداد 1394, 22:10 عصر
سلام خدمت شما ساده ترین حالت


function my_rand()
{

$num=rand(0,10);
return $num;
}
$a=array('1','5','3','8');

$s= my_rand();


if( (array_key_exists($s, $a)))
{
echo my_rand();


}else{
echo "s is:".$s;
}




موفق باشی

hamedarian2009
جمعه 15 خرداد 1394, 22:11 عصر
سلام میتونی اعدادی که میخای استثنا براشون قایل بشی تو یه آرایه قرار بدی و از آرایه اصلی تفریق کنی


$nums = range(1, 100);
$exclude = array(5, 7, 23, 85);
$newNums = array_diff($nums, $exclude);
echo rand($newNums);