Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Случайное число с приоритетом

Сообщения:  [1-7] 

 
 автор: Саня   (01.02.2008 в 19:50)   письмо автору
 
   для: Sergeous   (29.01.2008 в 01:56)
 

<?
// массив число => шанс выпадения (%)
$nums = array(=> 10=> 10=> 30=> 49=> 1);

$overall 0;
foreach( 
$nums as $num => $prob $overall += $prob;

$rand mt_rand(0$overall);

$i 0;
foreach( 
$nums as $num => $prob ) {
  if ( 
$rand $i && $rand <= $i $prob ) {
    print 
$num// выпавшее число
    
break;
  }
  
$i += $prob;
}

Я таким методом сделал на сайте ротацию баннеров, где у каждого баннера есть шанс показа от 1 до 100.

   
 
 автор: Freddie_X   (01.02.2008 в 19:39)   письмо автору
 
   для: Sergeous   (01.02.2008 в 17:44)
 

Сделать 3 if'а

   
 
 автор: Sergeous   (01.02.2008 в 17:44)   письмо автору
 
   для: bronenos   (29.01.2008 в 10:26)
 

Напрмер как быть если нужно выбирать из трех чисел, и у каждого свой процент выпадения.

   
 
 автор: bronenos   (29.01.2008 в 10:26)   письмо автору
 
   для: Sergeous   (29.01.2008 в 01:56)
 

А чем этот не нравится

   
 
 автор: Sergeous   (29.01.2008 в 01:56)   письмо автору
 
   для: Drago   (28.01.2008 в 12:43)
 

Спасибо. А других способов нет?

   
 
 автор: Drago   (28.01.2008 в 12:43)   письмо автору
 
   для: Sergeous   (28.01.2008 в 12:08)
 


<?
$percent 
rand(1100);
if (
$percent <= 30) echo 1;
else echo 
2;
?>

   
 
 автор: Sergeous   (28.01.2008 в 12:08)   письмо автору
 
 

$rand=rand(1,2);
echo $rand;

Это понятно. А как сделать так, что бы вероятность выпадения числа 1 была, например, 30%, а 2-ки - 70%?

   

Сообщения:  [1-7] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования