Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » генератор случайных чисел
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
tosharu
Участник+

Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус: tosharu в оф-лайне
генератор случайных чисел [сообщение #51721]

Очень интересует как можно на php реализовать наиболее приближенный к истинно случайному генератор случайных чисел (X их X). Важно, чтобы выдавал результаты равномерно распределенные.
Стандартные методы не подходят, насколько слышал в них нет истинной случайности.

__________________
tosha

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 05:55
Нажмите сюда для просмотра профайла tosharu Отправить Персональное сообщение tosharu Посетить домашнию страничку tosharu! Найти сообщения от tosharu Добавить tosharu в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Silencer
Участник+
Средний рейтинг: 4.08 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Санкт-Петербург
Публикаций: 152
Статус: Silencer в оф-лайне
[сообщение #51723]

rand плюс на time() поделить на айпи клиента умножить на другой rand. С пивом потянет

__________________
Типа спициялист по елехтронной комэрцыи. Крут не по децки.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 07:51
Нажмите сюда для просмотра профайла Silencer Отправить Персональное сообщение Silencer Посетить домашнию страничку Silencer! Найти сообщения от Silencer Добавить Silencer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
tosharu
Участник+

Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус: tosharu в оф-лайне
[сообщение #51724]

При чем тут умножить и поделить.

__________________
tosha

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 08:17
Нажмите сюда для просмотра профайла tosharu Отправить Персональное сообщение tosharu Посетить домашнию страничку tosharu! Найти сообщения от tosharu Добавить tosharu в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Silencer
Участник+
Средний рейтинг: 4.08 | Оценок: 12
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Санкт-Петербург
Публикаций: 152
Статус: Silencer в оф-лайне
[сообщение #51725]

Для пущей рандомности.

__________________
Типа спициялист по елехтронной комэрцыи. Крут не по децки.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 08:20
Нажмите сюда для просмотра профайла Silencer Отправить Персональное сообщение Silencer Посетить домашнию страничку Silencer! Найти сообщения от Silencer Добавить Silencer в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
tosharu
Участник+

Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус: tosharu в оф-лайне
[сообщение #51726]

Так числа то нужны из определенного массива, к примеру 5 чисел от 1 до 20.
Если их умножать и делить массив, что получится...

__________________
tosha

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 08:40
Нажмите сюда для просмотра профайла tosharu Отправить Персональное сообщение tosharu Посетить домашнию страничку tosharu! Найти сообщения от tosharu Добавить tosharu в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
Andrej
Участник+
Средний рейтинг: 4.89 | Оценок: 9
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Aug 2002
Место проживания: Омск
Публикаций: 261
Статус: Andrej в оф-лайне
[сообщение #51742]

tosharu
А чем тебе для этого mt_rand () не подходит?

Создаёшь массив, заполняешь числами, потом выбираешь с помощью mt_rand ()...

__________________
f9ffe3323e79b2a558b92af5b4039e20

Сообщение было отредактировано Andrej 13-09-2003 в 16:47

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 13-09-2003 16:40
Нажмите сюда для просмотра профайла Andrej Отправить Персональное сообщение Andrej Посетить домашнию страничку Andrej! Найти сообщения от Andrej Добавить Andrej в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #51791]

у меня такая же трабла, только мне нужно по id выбрать случ. запись из таблицы, а ведь там могут быть пробелы... типа 1,2,4,10 ...
$show->max_nom('miss')=SELECT COUNT(*) FROM miss_list;
mt_rand(1, $show->max_nom('miss'));

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 09:39
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #51807]

подсчитываешь колво в таблице ($total);
$num = mt_rand(0, ($total-1));
в SELECT используешь LIMIT $num,1

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 13:32
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #51843]

polo хм.. может не понял (я), но не проканает:
1, 100, 150, 151-200 => $total=52 (кажись)
=> $num = mt_rand(0, (52-1));
от 0 до 51 И? А циферки 100, 150-200???

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 19:13
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #51847]

Читай про LIMIT в доках по мускулю.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 19:24
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #51855]

polo ну... и?.. мне легче не стало

quote:

Выражение LIMIT может использоваться для ограничения количества строк, возвращенных командой SELECT. LIMIT принимает один или два числовых аргумента. Ð_ти аргументы должны быть целочисленными константами. Если заданы два аргумента, то первый указывает на начало первой возвращаемой строки, а второй задает максимальное количество возвращаемых строк. При этом смещение начальной строки равно 0 (не 1):

mysql> SELECT * FROM table LIMIT 5,10; # возвращает строки 6-15

Если задан один аргумент, то он показывает максимальное количество возвращаемых строк:

mysql> SELECT * FROM table LIMIT 5; # возвращает первых 5 строк

Другими словами, LIMIT n эквивалентно LIMIT 0,n.


Получим строки с первой по последнюю... Всё равно что
SELECT * FROM table...
Или я торможу???

he][es добавил 14-09-2003 в 20:26:33:
Сижу думаю... или он тогда не по id а просто по порядку считать будет?
Если так то да... пойдёт...

he][es добавил 14-09-2003 в 20:37:55:
Ну вот! Уже много лучше! Пасиба за помощь!
А то 10 сл.чисел по моей корявой методике генерились почти 1 сек. на Atlon 2500+ & 256PC3200 & ATA133 винте
(даже MySQL подглючивал от такой облавы запросов)

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 20:22
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #51866]

Так и не понял разобрался ты или нет, но:
Принцип прост, подсчитывается кол-во записей в таблице, получается случайная запись в диапазоне от 0 до кол-во записей -1 (думаю понятно почему), выбирается запись с оффсетом полученным выше в кол-ве одна штука. Может есть и другой метод, но мне он к сожалению не известен.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 22:21
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
he][es
Участник+
Средний рейтинг: 4.07 | Оценок: 30
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Mar 2003
Место проживания: Барнаул, Россия
Публикаций: 1169
Статус: he][es в оф-лайне
[сообщение #51872]

polo если он будет выводить номер строки просто "по порядку" без учёта id то да, разобрался.
Пасибо БААААЛЬШОЕ!

__________________
Админ - вождь Апачей...

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 14-09-2003 23:00
Нажмите сюда для просмотра профайла he][es Отправить Персональное сообщение he][es Найти сообщения от he][es Добавить he][es в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
tosharu
Участник+

Зарегистрирован: Nov 2001
Место проживания:
Публикаций: 65
Статус: tosharu в оф-лайне
[сообщение #52097]

quote:
Первоначальное сообщение от Andrej
tosharu
А чем тебе для этого mt_rand () не подходит?

Создаёшь массив, заполняешь числами, потом выбираешь с помощью mt_rand ()...




mt_srand(microtime() * 10000);

$RandomValue = mt_rand(1, 10);


Как и какие источники энтропии кроме времени можно сюда вмешать?
К примеру внутренний счетчик тактов процессора или другие..... ?

__________________
tosha

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 18-09-2003 09:33
Нажмите сюда для просмотра профайла tosharu Отправить Персональное сообщение tosharu Посетить домашнию страничку tosharu! Найти сообщения от tosharu Добавить tosharu в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
whisk
Участник
Средний рейтинг: 4 | Оценок: 1

Зарегистрирован: Oct 2003
Место проживания:
Публикаций: 31
Статус: whisk в оф-лайне
[сообщение #53320]

polo с какой-то mysql 3.23 можно ... ORDER BY RAND() LIMIT n -- n записей в случайном порядке. По идее, должно быть быстрее, чем вариант с двумя запросами..

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-10-2003 20:35
Нажмите сюда для просмотра профайла whisk Отправить Персональное сообщение whisk Найти сообщения от whisk Добавить whisk в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 07:19.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01235294 seconds (57.15% PHP - 42.85% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.