Обновить
87
zerkms@zerkms

Пользователь

50
Подписчики
Отправить сообщение
тогда как решение на хеш-таблицах — O(N).


Т.е. создание хэша у вас операция бесплатная?
Мне почему-то кажется


Т.е. вы не знаете, как работают индексы в субд, но при этом даёте задания на знание субд?
Такой пример можно было посмотреть и в документации селениума
Ну и

«Testing the 'm_Data' pointer ...»


Существительные же
А концовка не

"… using the 'new' operator"


должна быть?
Буквально сегодня у К.Бека в твиттере была цитата в тему:

One bad programmer can easily create two new jobs a year

twitter.com/KentBeck/status/333010369540915200
Причём даже в банке кредит на покупку взять будет сильно дешевле
Вместо экстремального «сдох винт» там могло бы быть «кончилось место»
Даже если пятая часть этих пользователей купит у вас что-нибудь за 1 доллар

Хехе, а автор — оптимист!
ps: так или иначе — в течение двух минут запускал свой код автоматически (получилось около 300 запусков), так и не смог получить отношение в 0.97 как у вас. Непруха :-(
В то время как разница считается вот так:

var_dump(abs($results['A'] - $results['B']) / 10000);


Позапускайте и посмотрите на эту цифру теперь
3% на 1М запусков? Вы уверены, что правильно посчитали?

> незначительно
Значительно. Разница между вызовом rand() и Выполнением SQL + DML огромна.
Откуда взята цифра в 15%? Попробуйте запустить код на, к примеру, 1M операциях

ideone.com/3F6aO2
Решение в топике гарантирует поочередную выдачу тестовых ячеек.

Я с вами соглашаюсь, что база там не нужна, но если нужна гарантированная поочередная выдача ячеек, то решение с равномерной выдачей не годится, по определению.
Бррр, как-то странно тэг «code» работает :-S
При условии, что rand() возвращает от 0 до 1 — да. Чем больше, тем распределение будет ближе к 1:1

$results = array('A' => 0, 'B' => 0); $i = 1000; while ($i--) { $results[ mt_rand(1, 100) > 50 ? 'A' : 'B' ]++; } var_dump($results);
Как справедливо сказал автор выше — база вам не нужна, достаточно rand() > 0.5? 'A': 'B' и класть в сессию.
Если есть задача гарантированно выдавать «не то, что было последнему», то без персистентого хранилища вы не обойдётесь никак. Модуль nginx распределяет пользователей согласно выбранных вероятностей и не гарантирует, что каждому последуюшему посетителю будет выдано не то, что предыдущему.

Я понимаю, что в реальной жизни такое требование вряд ли будет, но просто решения не эквивалентны. И если требование изменить на стандартные вероятности — тогда получим тот же самый rand() + сессию.
Менее ресурсоёмкий по сравнению с хранением переменной в сессии? (которая в 99.9% случаев так и так создана)
Кстати, вот пару дней как страна автоматически сменилась на правильную

Информация

В рейтинге
Не участвует
Откуда
Веллингтон, Wellington, Новая Зеландия
Зарегистрирован
Активность