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

Форум PHP

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

 

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

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

тема: Качественный random.
 
 автор: DJ Paltus   (21.07.2005 в 15:33)   письмо автору
 
 

Приходится отметить, что встроенная функция random меня не устраивает, так как отличается какой-то однобокостью. Пробовал брать второй-третий random, но это просто помножение одной ошибки саму на себя. Помню, в языке Бейсике можно было дать команду RANDOMIZE(TIMER), что давало гораздо менее предсказуемый результат на выходе.
Нет ли каких-нибудь альтернативных функций в РНР для принятия случайного числа?

   
 
 автор: RV   (21.07.2005 в 16:07)   письмо автору
 
   для: DJ Paltus   (21.07.2005 в 15:33)
 

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

   
 
 автор: DJ Paltus   (21.07.2005 в 16:13)   письмо автору
 
   для: RV   (21.07.2005 в 16:07)
 

Я выбираю случайную фразу из массива с фразами (их там примерно 300), и хочу добиться приблизительно равномерного распределения вероятности. Доходит до того, что часть фраз не цитируется неделями (!), а некоторые выпадают по три, четыре раза подряд. Число, конечно, предсказать не могу, но могу построить гистограмму распределения вероятности, и ожидаемость, умозрительно пока что, будет наиболее высокая ближе к середине массива.

   
 
 автор: Akira   (21.07.2005 в 16:20)   письмо автору
 
   для: DJ Paltus   (21.07.2005 в 15:33)
 



<?php
echo mt_rand(010);
?>




<?php
// seed with microseconds
function make_seed()
{
   list(
$usec$sec) = explode(' 'microtime());
   return (float) 
$sec + ((float) $usec 100000);
}
mt_srand(make_seed());
echo 
mt_rand(0,10);
?>



Выбирайте любой, мне нравиться первый вариант.

   
 
 автор: cheops   (21.07.2005 в 22:32)   письмо автору
 
   для: DJ Paltus   (21.07.2005 в 15:33)
 

Может быть подойдёт вариант основанный на чётности/нечётности секунд.

http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=5565

   
Rambler's Top100
вверх

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