Можно, конечно, сделать ряд условий и вызывать функцию rand пока не будут удовлетворены эти условия.. НО.. Может получиться такая ситуация, что потребуется исключить числа, например 1-29 (т.е. сгенерировать число 30). Это ж придётся вызывать кучу раз функцию.. Не оптимально.. Подскажите, пожалуйста, как ещё можно реализовать. Заранее благодарен))
Спустя 19 минут, 32 секунды (22.09.2011 - 16:34) m4a1fox написал(а):
Наверно не зная точно в будущем какие числа придется исключать из диапазона, программа это так же не узнает! Можно через массив, ключи массива или значения. А потом просто добавлять в них числа. Или написать еще одну функцию-форму, ты добавляешь в нее числа - она записывает их в массив! Наверно так!
Спустя 2 минуты, 19 секунд (22.09.2011 - 16:36) Winston написал(а):
Можно свою ф-ю написать
function myRand()
{
$except = Array(8, 13, 18); // Числа исключения
$array = range(1, 30); // Массив с числами 1 - 30
$array = array_diff($array, $except); // Удаляем числа которые в исключениях
return $array[array_rand($array)]; // Возвращаем случайное число
}
echo myRand();
Спустя 14 часов, 39 минут, 50 секунд (23.09.2011 - 07:16) InfyQ написал(а):
Угумс, вчера ночью так и надумал, что через массивы надо пробовать, а тут уже код почти готовый.. Пасиб всем.. Думаю, что дальше уже сам смогу)))
P.S. Сорри, не могу Карму плюсануть, не хватает постов)) Долбаное огранчение))
P.S. Сорри, не могу Карму плюсануть, не хватает постов)) Долбаное огранчение))
Спустя 8 часов, 46 минут, 47 секунд (23.09.2011 - 16:03) inpost написал(а):
$except = array(8,13,18);
while($rand = rand(1,30))
if(in_array($rand,$except))
break;