|
| Дата |
|
USD/RUB | 89.7026 | BTC/USD | 68367.8720 |
|
|
|
Скрипты, программы и технические решения Обсуждаем скрипты, программы и новые технологии. |
06.10.2017, 14:01
|
Start Post: Равномерное распределение трафика по нескольким ссылкам
|
Синьор
Регистрация: 30.05.2008
Сообщений: 975
Бабло: $153121
|
Привет гофак!
Хочу написать скрипт для раскидывания трафика 50 на 50 по двум и более ссылкам (т.е. на каждую равномерно). Сколько трафика придет заранее не знаю.
ТДС, трекерами и прочей фигней пользоваться не хочу, поэтому хочу накидать свой скрипт на PHP.
Какое решение придумал: делаю условный переключатель - переменную со значением 1 и 0, которое записывается в файл (можно и БД, но хочу без нее обойтись). Первый уник направляется на ссылку1, переменной присваивается значение 1, второй уник идет уже на ссылку2, поскольку у переменной уже значение 1, после перехода в файл записывается значение 0 и т.д. Таким образом достигаем равномерности распределения.
Вопрос: будет ли это работать на объемах 100k/d? Может есть более изящное решение?
__________________
HTF бот заработает для тебя на трейдинге крипты 0.5-3% в день без риска! Не важно падает рынок или растет. Кнопка бабло тут
|
|
|
08.10.2017, 16:07
|
#13
|
Senior Member
Регистрация: 10.09.2012
Сообщений: 1,217
Бабло: $211845
|
Цитата:
Сообщение от lance
Надо конечно у математиков спросить, но мне кажется, что расхождение больше будет.
|
Я не математик, но чем больше трафика - тем меньше и меньше будут расхождения. Это основа Теории Вероятностей.
|
|
|
08.10.2017, 20:36
|
#14
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,883
Бабло: $1863525
|
number4,
PHP код:
$a = array(0,0,0,0,0,0,0,0,0,0); for ($i=0; $i<999999; $i++) {$a[mt_rand(0,9)]++;}
print_r($a);
Код:
Array
(
[0] => 100015
[1] => 99874
[2] => 99870
[3] => 99966
[4] => 100111
[5] => 100214
[6] => 99955
[7] => 100180
[8] => 99720
[9] => 100094
)
|
|
|
08.10.2017, 20:44
|
#15
|
Отмороженый Сибиряк
Регистрация: 09.09.2014
Сообщений: 1,843
Бабло: $250100
|
на две
PHP код:
<?php $random = rand(1,2); if ($random == 1){ header( 'Location: http://site1.com', true, 301 ); } else{ header( 'Location: http://site2.com', true, 301 ); } ?>
на три
PHP код:
<?php $random = rand(1,3); if ($random == 1){ header( 'Location: http://site1.com/', true, 301 ); } else{ if ($random == 2){ header( 'Location: http://site2.com', true, 301 ); } else{ header( 'Location: http://site3.com', true, 301 ); } } ?>
хз может и проще есть аврианты но мне на пьяну гоолву больше ниче не лезе
рандом нормально пашет, примрно полпалецпотолок
__________________
Знать путь и пройти его — не одно и то же. Pharmcash & PharmcashUSA - знаем, проходили... Лидеры в фарме
|
|
|
08.10.2017, 20:55
|
#16
|
Senior Member
Регистрация: 23.04.2017
Адрес: Pattaya
Сообщений: 132
Бабло: $20600
|
Цитата:
Сообщение от AntonIon
shuffle() же rand() использует. Только srand() на него не влияет. А по сути, это обычный rand().
|
да, это так, но почему-то равномерность у shuffle() в расчете на неопределенное кол-во итераций, в итоге лучше, чем просто у mt_rand()
Цитата:
Сообщение от веломан
number4,
PHP код:
$a = array(0,0,0,0,0,0,0,0,0,0);
for ($i=0; $i<999999; $i++)
{$a[mt_rand(0,9)]++;}
print_r($a);
Код:
Array
(
[0] => 100015
[1] => 99874
[2] => 99870
[3] => 99966
[4] => 100111
[5] => 100214
[6] => 99955
[7] => 100180
[8] => 99720
[9] => 100094
)
|
по-сути тот же shuffle() только вид сбоку.
и это единичный запуск.
я при моделировании еще запускал в цикле цикл с 10к итераций рандома
и смотрел какие средние отклонения при каждом прогоне на 10к
тогда вот и видно, что в одном цикле на 10к rand() выдает вроде нормальные отклонения от среднего, а в следующем цикле уже up to 30% в некоторых итерациях. То есть не так равномерно стабильно, как ожидается.
|
|
|
08.10.2017, 21:58
|
#17
|
Синьор
Регистрация: 30.05.2008
Сообщений: 975
Бабло: $153121
ТС -->
|
ТС
Цитата:
Сообщение от gumu
|
Nginx плохо знаю, спасибо за наводку.
__________________
HTF бот заработает для тебя на трейдинге крипты 0.5-3% в день без риска! Не важно падает рынок или растет. Кнопка бабло тут
|
|
|
08.10.2017, 22:36
|
#18
|
сыроед
Регистрация: 01.10.2015
Сообщений: 15,883
Бабло: $1863525
|
Цитата:
Сообщение от number4
по-сути тот же shuffle() только вид сбоку.
и это единичный запуск.
я при моделировании еще запускал в цикле цикл с 10к итераций рандома
и смотрел какие средние отклонения при каждом прогоне на 10к
тогда вот и видно, что в одном цикле на 10к rand() выдает вроде нормальные отклонения от среднего, а в следующем цикле уже up to 30% в некоторых итерациях. То есть не так равномерно стабильно, как ожидается.
|
из 20 запусков он ни разу не показал 98xxx или 101xx
я не знаю, зачем может понадобиться точность выше подобной, но например через редиску можно вытащить хоть 0-разность
а описанный тобой доп.цикл в подобных системах отсутствует вовсе
в общем, не видно тут проблемы.
|
|
|
10.10.2017, 17:51
|
#19
|
Member
Регистрация: 12.08.2015
Сообщений: 32
Бабло: $5320
|
держи
PHP код:
<?php
$urls = array("domain1.com",
"domain2.com",
"domain3.com",
"domain4.com",
"domain5.com");
$url = $urls[array_rand($urls)];
header("Location: http://$url");
echo "Loading...please wait";
?>
|
|
|
10.10.2017, 23:28
|
#20
|
Ебланнед
Регистрация: 04.02.2016
Сообщений: 54
Бабло: $15500
|
Не понимаю, чем ТДС не подходит? Моментально раскидает траф по схеме. Например Sutra TDS норм. держит до 13-15 млн. трафика в сутки. Бесплатная zTDS держит не меньше на ВПС за 500 руб. в мес. Как и Sutra на таком-же примерно железе. Про другие не скажу - не тестировались.
|
|
|
|