LEOnidUKG

LEOnidUKG
Рейтинг
1776
Регистрация
25.11.2006
Должность
PHP
Интересы
Программирование
Близко, но совсем не одинаковое число.

Это уже хорошо, что близко. Почитайте про полный тест: http://ru.wikipedia.org/wiki/Тестирование_псевдослучайных_последовательностей

Dreammaker, 5 000 000 выборок сделайте, если вы смотрите от 1 до 5 делаете и проанализируйте результат. А так почитайте http://ru.wikipedia.org/wiki/Тестирование_псевдослучайных_последовательностей

А так ещё раз повторю, все генераторы из всех языков и т.п. не важно, основываются на биосном времени компьютера, остальное лишь математические формулы, которые тягаются лишь в том "кто равномернее" расположит цифры в ряду.

Если вы мне не верите, почитайте книжки, изучите вопрос. НО опять повторяю, ВСЕ примеры, которые вы приводите это простые формулы, просто вы думаете, что если будете записывать, куда-то что-то, то это будет круче. А вы возьмите миллиарды выборок и увидите, что разницы НИКАКОЙ.

---------- Добавлено 24.01.2012 в 18:24 ----------

futuristian:
Рандом - это рандом. Как добиться порядка?

1-2-3-4-5-1-2-3-4-5-1-...

Какого порядка то? У вас 1 клиент пришёл и забыл ваш сайт, пришёл с другого IP с другого браузера ОПА опять первый баннер. Но и это не важно.

У вас порядок это 1 2 3 4 5, а в генераторе это будет 3 5 2 1 4, но КАКАЯ разница то? но они будут эти 5-ть в любом случаи.

Мы убили на эти случайные числа целый месяц поставляя разные формулы и доказывая, что компьютерный генератор спевдослучайных чисел работает. А вы тут все собрались и давайте обратное доказывать ну ппц. Почитайте, изучите вопрос, перед тем как что-то доказывать.

futuristian:
Без определения. Просто при каждом хите следующий баннер.

Тогда это обычный рандом. Код самый простой и быстрый я уже дал на первой странице.

---------- Добавлено 24.01.2012 в 14:36 ----------

Joker-jar:
Подкину еще такой вариант для разнообразия:

$banners = array(

'код первого баннера',
'код второго',
...
);

$index = intval( file_get_contents('somefile') ); //--Получаем индекс из файла
$bannr = $banners[$index]; //--Получаем баннер по индексу
file_put_contents( 'somefile', ++$index % count($banners) ); //--Записываем следующий индекс в файл

Это тоже самое, что и rand, уж поверьте мне, мы в универе сами делали эти генераторы случайных чисел.

p.s. оговорюсь, что это называется ПСЕВДО-случайные числа, но тесты проходят, по заданным параметрам.

Они могут вам этим кодом закинуть всё что угодно на сайт, поэтому не надо рисковать.

Joker-jar:
Это называется нормальное распределение. Оно приемлимо работает при большом количестве "показов" (стремящимся к бесконечности). Не думаю, что такой вариант устраивает ТС.

Показы тут НИ ПРИЧЁМ, всё работает идеально и стремящегося к бесконечности нет т.е. все генераторы случайных чисел тестируются и довольно быстро. Тут нужно засечь КОМУ мы будем это показывать.

А вообще ТС, я бы лично не замарачивался, это лишняя нагрузка и хлопоты, сделайте рандом и всё.

futuristian, ещё раз для не понятливых.

Генератор случайных чисел должен быть РАВНОМЕРНЫМ, если он НЕ РАВНОМЕРНЫЕ это НЕ генератор случайных чисел.

rand() в PHP это РАВНОМЕРНЫЙ генератор случайных чисел.

Это значит,

Дано:

1 человек

1 000 000 объявлений

1 000 000 минут

1 человек увидит за 1 000 000 минут все 1 000 000 объявлений, без повторения.

Тут проблема в другом, что такое человек, как его определить?

ВОТ! Это значит нужна система, которая будет записывать IP пользователя или его куки и вносить туда какие баннеры были показаны.

Почитайте, что такое рандом а?

Это и есть равномерный показ за большое количество выборки. Если он будет не равномерный, это не рандом, а глючная фигня.

---------- Добавлено 24.01.2012 в 03:44 ----------

Так что смело в файлик 1 строчка = 1 скрипт

и вывод:

echo $text[array_rand($text=file("banner.txt"))];

Timen:
Также не совсем понял вопрос....

Если нужно определить IP пользователя, то скрипт в файле (99% взято с PhpMyAdmin)...

Это устарело.

Достаточно таково:

function getip()

{

if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"),"unknown"))

$ip = getenv("HTTP_CLIENT_IP");

elseif (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))

$ip = getenv("HTTP_X_FORWARDED_FOR");

elseif (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))

$ip = getenv("REMOTE_ADDR");

elseif (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))

$ip = $_SERVER['REMOTE_ADDR'];

else

$ip = "unknown";

return($ip);

}

Ну и что это за тупой спам?

Информация
К сожалению у вас нет прав для публикации статей на нашем сайте.
Photographer:
LEOnidUKG,
А если не секрет как вы это определили? В индексе яндекса тот же http://www.uwiki.ru есть, сайт сам по себе вроде прилично выглядит... Я б размести статью :) Подскажите пожалуйста новичку критерий проверки

Всё очень просто.

Заходим на страницу, где отображаются добавленные статьи: http://www.uwiki.ru/pages.html

И что мы видим в разделе: Последние публикации?

Правильно, дату: 27.07.2010. А сейчас у нас какой год на дворе? Вот-вот, и так ВСЕ я проверяю руками. 🍿

Всего: 31521