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

Форум PHP

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Как сделать rand в роцентах?
 
 автор: BlueWolf   (25.12.2010 в 22:43)   письмо автору
 
 

если мне нужно случайное число в диапазоне 1-100 вызываю
$hislo=rand (1, 100);

а как сделать вероятность в процентах? Допустим мне надо сделать вероятность промаха 5%.

  Ответить  
 
 автор: cheops   (25.12.2010 в 22:52)   письмо автору
 
   для: BlueWolf   (25.12.2010 в 22:43)
 

Например, так
<?php
  $hislo 
rand (1100);
  if(
$hislo <= 5) echo "Промах";
  else echo 
"Попал";
?>

  Ответить  
 
 автор: BlueWolf   (25.12.2010 в 23:01)   письмо автору
 
   для: cheops   (25.12.2010 в 22:52)
 

Пропустил через цикл

$x=1; $u=0; $p=0; while ($x<=100){$a=rand(1,100);if ($a<=5){echo"Попытка №".$x." Промах<br/>";$x++;$u++;}else{echo"Попытка №".$x." кусает<br/>";$x++;$p++;}} echo"Промахов: ".$u."<br/>Укусов: ".$p."<br/>";


Иногда промахов вообще нет иногда более 10

  Ответить  
 
 автор: Valick   (25.12.2010 в 23:20)   письмо автору
 
   для: BlueWolf   (25.12.2010 в 23:01)
 

Вы уж определитесь либо случайно либо 5%

  Ответить  
 
 автор: BlueWolf   (25.12.2010 в 23:39)   письмо автору
 
   для: Valick   (25.12.2010 в 23:20)
 

Случайно с вероятностью промаха 5%

  Ответить  
 
 автор: Valick   (25.12.2010 в 23:57)   письмо автору
 
   для: BlueWolf   (25.12.2010 в 23:39)
 

вероятность промаха 5% - это уже не случайность, это закономерность
и как сделать закономерность, я знаю
с удовольствием посмотрю как Вы добьетесь 5%-ной случайности...

  Ответить  
 
 автор: cheops   (25.12.2010 в 23:41)   письмо автору
 
   для: BlueWolf   (25.12.2010 в 23:01)
 

rand() не самая удачная функция для быстрого последовательного использования, так как здорово завязана на время - отсюда такая локальная неравномерность. Лучше поискать в сети алгоритм равномерного генератора случайных чисел, не завязаного на время или сглаживающего влияние времени в rand().

  Ответить  
 
 автор: Trianon   (26.12.2010 в 00:07)   письмо автору
 
   для: BlueWolf   (25.12.2010 в 23:01)
 

так не сто же раз нужно пробовать, а несколько десятков тысяч.

  Ответить  
 
 автор: Valick   (26.12.2010 в 00:10)   письмо автору
 
   для: Trianon   (26.12.2010 в 00:07)
 

а смысл? один фиг результат при таком раскладе будет непредсказуемым
я могу предложить вариант при котором 5% будет и из 100 и из 1000 и из 10000 и из всегда
_
вот яркий пример мышления программиста, о чем мы недавно били мозг друг другу
(не конкретно мы с Вами, а всем форумом)

  Ответить  
 
 автор: Trianon   (26.12.2010 в 01:12)   письмо автору
 
   для: Valick   (26.12.2010 в 00:10)
 

>а смысл? один фиг результат при таком раскладе будет непредсказуемым

Я предположил, что может тогда до человека дойдет статистическая природа эксперимента.
Я как-то обычно надеюсь на лучшее.

  Ответить  
Rambler's Top100
вверх

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