 |
 |
Форум сетевых администраторов » Программирование » PHP » генератор случайных чисел
| Автор |
| Тема |
 |
|
 |
|
|
|
Участник+
Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус:  |
Очень интересует как можно на php реализовать наиболее приближенный к истинно случайному генератор случайных чисел (X их X). Важно, чтобы выдавал результаты равномерно распределенные.
Стандартные методы не подходят, насколько слышал в них нет истинной случайности.
__________________
tosha
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
13-09-2003 05:55 |
|
|
Участник+
|
| rand плюс на time() поделить на айпи клиента умножить... |
[сооб. #51723]
13-09-2003 07:51 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Санкт-Петербург
Публикаций: 152
Статус:  |
rand плюс на time() поделить на айпи клиента умножить на другой rand. С пивом потянет 
__________________
Типа спициялист по елехтронной комэрцыи. Крут не по децки.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
13-09-2003 07:51 |
|
|
Участник+
|
| При чем тут умножить и поделить. |
[сооб. #51724]
13-09-2003 08:17 |
|
|
Участник+
|
| Так числа то нужны из определенного массива,... |
[сооб. #51726]
13-09-2003 08:40 |
|
Участник+
Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус:  |
Так числа то нужны из определенного массива, к примеру 5 чисел от 1 до 20.
Если их умножать и делить массив, что получится...
__________________
tosha
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
13-09-2003 08:40 |
|
|
Участник+
|
tosharu
А чем тебе для этого mt_rand () не подходит?
Создаёшь... |
[сооб. #51742]
13-09-2003 16:40 |
|
Участник+


Зарегистрирован: Aug 2002
Место проживания: Омск
Публикаций: 261
Статус:  |
tosharu
А чем тебе для этого mt_rand () не подходит?
Создаёшь массив, заполняешь числами, потом выбираешь с помощью mt_rand ()...
__________________
f9ffe3323e79b2a558b92af5b4039e20
Сообщение было отредактировано Andrej 13-09-2003 в 16:47
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
13-09-2003 16:40 |
|
|
Участник+
|
| у меня такая же трабла, только мне нужно по... |
[сооб. #51791]
14-09-2003 09:39 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
у меня такая же трабла, только мне нужно по id выбрать случ. запись из таблицы, а ведь там могут быть пробелы... типа 1,2,4,10 ...
$show->max_nom('miss')=SELECT COUNT(*) FROM miss_list;
mt_rand(1, $show->max_nom('miss'));
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-09-2003 09:39 |
|
|
Администратор
|
подсчитываешь колво в таблице ($total);
$num = mt_rand(0,... |
[сооб. #51807]
14-09-2003 13:32 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
подсчитываешь колво в таблице ($total);
$num = mt_rand(0, ($total-1));
в SELECT используешь LIMIT $num,1
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-09-2003 13:32 |
|
|
Участник+
|
polo хм.. может не понял (я), но не проканает:
1,... |
[сооб. #51843]
14-09-2003 19:13 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
polo хм.. может не понял (я), но не проканает:
1, 100, 150, 151-200 => $total=52 (кажись)
=> $num = mt_rand(0, (52-1));
от 0 до 51 И? А циферки 100, 150-200???
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-09-2003 19:13 |
|
|
Администратор
|
| Читай про LIMIT в доках по мускулю. |
[сооб. #51847]
14-09-2003 19:24 |
|
|
Администратор
|
Так и не понял разобрался ты или нет, но:
Принцип... |
[сооб. #51866]
14-09-2003 22:21 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
Так и не понял разобрался ты или нет, но:
Принцип прост, подсчитывается кол-во записей в таблице, получается случайная запись в диапазоне от 0 до кол-во записей -1 (думаю понятно почему), выбирается запись с оффсетом полученным выше в кол-ве одна штука. Может есть и другой метод, но мне он к сожалению не известен.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-09-2003 22:21 |
|
|
Участник+
|
| polo если он будет выводить номер строки... |
[сооб. #51872]
14-09-2003 23:00 |
|
Участник+


Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: ![he][es в оф-лайне](images/offline.gif) |
polo если он будет выводить номер строки просто "по порядку" без учёта id то да, разобрался.
Пасибо БААААЛЬШОЕ! 
__________________
Админ - вождь Апачей...
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
14-09-2003 23:00 |
|
|
Участник+
|
[QUOTE]Первоначальное сообщение от Andrej
[b]tosharu... |
[сооб. #52097]
18-09-2003 09:33 |
|
Участник+
Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус:  |
quote: Первоначальное сообщение от Andrej
tosharu
А чем тебе для этого mt_rand () не подходит?
Создаёшь массив, заполняешь числами, потом выбираешь с помощью mt_rand ()...
mt_srand(microtime() * 10000);
$RandomValue = mt_rand(1, 10);
Как и какие источники энтропии кроме времени можно сюда вмешать?
К примеру внутренний счетчик тактов процессора или другие..... ?
__________________
tosha
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
18-09-2003 09:33 |
|
|
Участник
|
| polo с какой-то mysql 3.23 можно ... ORDER BY RAND() LIMIT... |
[сооб. #53320]
07-10-2003 20:35 |
|
Участник

Зарегистрирован: Oct 2003
Место проживания:
Публикаций: 31
Статус:  |
polo с какой-то mysql 3.23 можно ... ORDER BY RAND() LIMIT n -- n записей в случайном порядке. По идее, должно быть быстрее, чем вариант с двумя запросами..
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-10-2003 20:35 |
|
|
|
Формат времени GMT. Текущее время 07:02.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.01500511 seconds (49.31% PHP - 50.69% MySQL) with 23 queries.
|
 |