Автор Тема: Генератор случайных чисел  (Прочитано 7901 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Генератор случайных чисел
« : 01 Ноября 2001, 22:39:30 »
Приведите пример сабжа, генерировать нужно в определенном диапазоне, скажем от a до b...

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Генератор случайных чисел
« Ответ #1 : 01 Ноября 2001, 23:15:50 »
Если речь идет о массивах то есть array_rand()
А еще есть функция rand():
int rand ([int min [, int max]])

думаю из ее описания понятно как генерить случайные числа в диапазное (min,max)
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Генератор случайных чисел
« Ответ #2 : 01 Ноября 2001, 23:42:29 »
Цитировать
А еще есть функция rand():
int rand ([int min [, int max]])


Вот пытаюсь написать что то такое:

$q = rand(1, 5);
echo $q;

Оно единичку генерит и все :( А я хочу что б от единички до пяти и в случайном порядке...

Оффлайн DimovD

  • Ноу проблем
  • Пользователь
  • **
  • Сообщений: 79
  • +0/-0
  • 2
    • Просмотр профиля
Генератор случайных чисел
« Ответ #3 : 01 Ноября 2001, 23:56:15 »
проинициализировать надо бы...

srand((double)microtime()*1000000);
$q = rand(1, 5);
echo $q;

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Генератор случайных чисел
« Ответ #4 : 02 Ноября 2001, 00:00:05 »
Если srand со случайным числом не использовать, то будут генерироваться числа всегда в одном и том же порядке, т.е. 1 5 2 4 3 5 (например). и при следующем запуске скрипта будет тоже самое.
Евгений aka Razor,

Оффлайн Admin q3

  • Завсегдатай
  • Пользователь
  • **
  • Сообщений: 59
  • +0/-0
  • 0
    • Просмотр профиля
Генератор случайных чисел
« Ответ #5 : 02 Ноября 2001, 02:22:30 »
Я вот так делаю
mt_srand((double)microtime()*1000000);
   $bannum = mt_rand( $numb1, $numb2);
echo "
ВАШЕ ЧИСЛО = $bannum
";
?>

Пример http://1forum.khv.ru/gen/

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Генератор случайных чисел
« Ответ #6 : 02 Ноября 2001, 07:40:15 »
Цитировать
mt_srand((double)microtime()*1000000);

Что оно делает ?

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Генератор случайных чисел
« Ответ #7 : 02 Ноября 2001, 09:57:20 »
Запускает генератор Мерсена Твистера :)
в мануале сказано, что он лучше, чем rand/srand
Евгений aka Razor,

Оффлайн Lion

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 474
  • +0/-0
  • 0
    • Просмотр профиля
Генератор случайных чисел
« Ответ #8 : 02 Ноября 2001, 13:40:14 »
Цитировать
Запускает генератор Мерсена Твистера  
в мануале сказано, что он лучше, чем rand/srand

Да я читал...
А еще вопрос, какая связь между mt_srand((double)microtime()*1000000); и
$q = mt_rand( $numb1, $numb2); ?

Оффлайн Britva

  • Координатор
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 1660
  • +0/-0
  • 0
    • Просмотр профиля
    • http://eugeny.com
Генератор случайных чисел
« Ответ #9 : 02 Ноября 2001, 13:51:28 »
srand устанавливает начальное значение (не в буквальном смысле), от к-рого будут генерироваться все случайные числа.
Таким образом можно использовать, например, в шифровании. Надо только знать начальное зн-е.
srand(случайное) гарантирует, что все последующие числа будут случайными точно
Евгений aka Razor,

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28