![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
A67809R |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 23.1.2013 Репутация: нет Всего: нет |
здравствуйте. Как можна реализовать например в скрипте.... Что бы например, 1000 человек приходящих ко мне на сайт, не попадали бы все, а перенаправлялись бы заданое количество посетителей, на другой. Подскажите плизсс
|
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 75 Всего: 260 |
||||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Лучше все таки mt_rand() он как минимум быстрее.
А вообще задача какая-то туманная, и мне например показалось что заранее известно кличесто людей которое нужно перенаправить из 1000, тогда вот решение array_rand() или можно вообще взять массив и сделать ему shuffle() а потом взять первые значения нужное количество. Это сообщение отредактировал(а) Vardoulacha - 26.1.2013, 04:47 |
|||
|
||||
MaXL |
|
||||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Почему туманная. Вполне конкретная задача, правда примитивное и наивное решение ![]()
чо ![]() -------------------- MaXL |
||||
|
|||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
а что быстрее array_rand() или shuffle()? кто проверял? -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Vardoulacha |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 184 Регистрация: 11.8.2005 Репутация: 7 Всего: 8 |
Gold Dragon, вот тут написано что разница очень мала даже на больших массивах
|
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
не всё так просто.. или я не так проверяю или очень даже разные результаты
![]() вот тест
при 10000 shuffle - 0.00394 array_rand - 0.0008 при 100000 shuffle - 0.21016 array_rand - 0.0205 при 1000000 shuffle - 2.71401 array_rand - 0.02954 Это сообщение отредактировал(а) Gold Dragon - 29.1.2013, 18:04 -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
Это тест чего
![]() Какое вы имеете право сравнивать эти две функции ? -------------------- MaXL |
|||
|
||||
Arantir |
|
||||||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Добавлено через 10 минут и 16 секунд
n = 10 1.0E-5 1.0E-5 ------------- n = 100 2.0E-5 7.0E-5 ------------- n = 1000 0.00024 0.0008 ------------- n = 10000 0.00263 0.01136 ------------- n = 100000 0.17183 0.15554 ------------- n = 1000000 2.03217 1.75671 ------------- Зависимость нелинейная. Но при малых N быстрее shuffle, а при больших - array_rand. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
||||||
|
|||||||
MaXL |
|
|||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
А вы видели исходное сообщение, к которому написан мой комментарий ? Там ваше пресловатую $n, для функции array_rand равно еденицы. Основное отличие в том, что shuffle делает перестановку массива, а array_rand возвращает массив случайных чисел из заданного диапазона (ключи массива). Естественно, что операция перестройки массива сложнее. -------------------- MaXL |
|||
|
||||
Gold Dragon |
|
|||
![]() Призрачный ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6753 Регистрация: 1.3.2004 Где: Россия, Тамбов Репутация: 10 Всего: 71 |
Кто сказал??? Я чтобы подобное утверждать провёл тесты. А что сделал ты?
Это вообще что за бред. MaXL, у тебя право собственности на эти функции что ли ![]() -------------------- Нельзя жить в прошлом, оно уже прошло. Нельзя жить в будущем, оно ещё не наступило. Нужно жить в настоящем, помня прошлое и думая о будущем! |
|||
|
||||
Arantir |
|
|||
Рыбак без удочки ![]() ![]() Профиль Группа: Участник Сообщений: 960 Регистрация: 18.11.2012 Репутация: 16 Всего: 55 |
Невероятно, но именно это я написал чуть выше процитированной вами части моего сообщения. =) Может и сложнее... Но для всех N, с разумными и практично применимыми значениями, эта операция быстрее. Не могу представить адекватного использования массивов, объемом более полмиллиона элементов, в PHP. -------------------- interface Жопа { // ATTENTION: has to be implemented by every class of the project for proper project work } |
|||
|
||||
MaXL |
|
||||||
![]() Developer ![]() ![]() Профиль Группа: Участник Сообщений: 380 Регистрация: 24.10.2005 Где: Владивосток Репутация: нет Всего: 2 |
![]() После этой строчки
$array будет перемешан, а в $a будет скорее всего true. А вот в случае с:
в $a будет массив перемешанных ключей, а массив $array останеться прежнем. В ваших тестах, как минимум на этоп этапе происходит выделение памяти под новый массив. Абсолютно разные функции, и разное поведение. -------------------- MaXL |
||||||
|
|||||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |