alerzo
28.09.2015 - 17:11
Здравствуйте! Есть немного странная, но вроде простая задача.
Допустим есть поля формы где пользователь задает числа от 0 до 100 (в сумме все поля должны быть равны 100), далее нужно при каждом запуске скрипта выполнять определенный код заданное число раз (грубо говоря это процентное распределение). Мне пришла в голову мысль сделать это так
поле_1 = 15;
поле_2 = 23;
поле_3 = 47;
поле_4 = 15;
и тп далее просто собирается в массив определенная последовательность чисел зависящая от номера поля..допустим для примера выше это будет массив
(1,1,1,1...15-единиц...,2,2,2...23-двойки...,3,3,3..47-троек...,4,4,..15-четверок..4)
потом из этого массива мы выбираем случайное число и делаем нужную ветку.
Если поле не заполнено (0 по умочланию) то брать число для массива не нужно.
Подскажите как это реализовать, или как сделать более правильно чтобы при множестве повторений случайность заданная сохранялась..возможности запоминать числа нет.
inpost
28.09.2015 - 17:13
Вообще непонятная задача. Может можно проще? Объясни, где подобное применяется.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
alerzo
28.09.2015 - 17:17
Допустим пользователю хочется чтобы один метод работал на n %, другой на n% и тп..т.е. пользователь задает в полях лишь кол-во процентов а мы с ним работаем и делаем как он попросил. Применений масса, например при генерации поискового реферера различными поисковиками (яндекс- столько то %, гугл - столько то), сам скрипт работает..никак не сделаю процесс выборки.
inpost
28.09.2015 - 17:20
[5,15,44,100]
rand(0,100);
Рандом вернёт случайное число, далее проверяешь это число в какой из диапазонов входит. (от 0 до 5, то первая реклама, если >5 <= 15, то вторая реклама).
Если я правильно понял то, что ты хочешь. Но не уверен.
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
alerzo
28.09.2015 - 17:21
Это было бы очень просто..т.к. числа могут быть равны..
единственно условие они не могут быть отрицательными, и сумма всех полей = 100.
Если пользователь задаст везде одинаковые числа допустим 25? должно быть равновероятное выпадение всех вариантов...
Мне кажется мой вариант рещения более гибкий..т.к. напрямую работает с числами (они используются прямо в массиве) но может есть другой вариант..как реализовать свой я тоже не знаю..в php не силен.
inpost
28.09.2015 - 17:51
alerzoЕсли в ПХП не силён, как же ты это реализуешь?
_____________
Обучаю веб-программированию качественно и не дорого:
http://school-php.comФрилансер, принимаю заказы: PHP, JS, AS (видео-чаты). Писать в ЛС (Личные сообщения на phpforum).
Может быть так было бы по теме, непонятно только про нужную ветку.
Цитата (alerzo @ 28.09.2015 - 15:11) |
потом из этого массива мы выбираем случайное число и делаем нужную ветку. |
<?php
$values = array();
foreach ($_GET['p'] as $key => $value) {
if (is_numeric($value))
$values[$key] = $value;
}
if ($count = $values[array_rand($values)]) {
while ($count) {
echo 'выполнять определенный код заданное число раз ', $count . '</br>';
$count--;
}
}
?>
<form action="rand.php" method="get">
<input type="text" name="p[]" value="15"/>
<input type="text" name="p[]" value="23"/>
<input type="text" name="p[]" value="47"/>
<input type="text" name="p[]" value="15"/>
<input type="submit" name="" value="submit"/>
</form>