• Как выбрать случайный элемент из списка с учётом его веса?

    По мне так, это рандом и все более менее правильно для всех, если ты хочешь рекламировать что-то, то будь добр приложи к этому какую-то денюшку, а так псевогенерато такой, что в любом случае будут показываться и баннеры обычных пользователей, просто реже чем те, которые по дороже!
  • Хочу сделать API, с чего начать?

    Неправильно говорить что велосипед изобретается. Нафига тогда существует десятки разных подходов к реализации API, почему люди делает что-то новое, а не юзают готовое API, которое придумали в прошлом столетии? Мб потому что каждый видит по своему архитектуру своего приложения и далеко не все решения легко реализовать в готовый API, а на своем ты делает, то что необходимо для приложения, если вдруг кому-то понравится твой подход, его начнут часто применять где-то и глядишь догонит другие API реализации. Никто не знает что будет завтра, потому завтра твой API могут юзать миллионы людей!
  • Как обработать данные application/x-www-form-urlencoded в PHP?

    $keys = array( "key", "pr1", "pr2", "pr3" ); // Тут твои ключи
    $_REQUEST // Если данные передаются в GET или POST, то попадут в этот массив ключ => значение
    Конечно лучше пройтись по $keys и заполнить переменные, чуть эффективнее, но думаю не так уж критично.
    Код я не проверял, но если и есть ошибки, то только синтаксические, тупой кописать не благородное дело. Если что PHP позволяет указывать название переменной из строки другой переменной, например
    $a = 10;
    $b = 'a';
    echo $$b; // Выведет 10, хотя в названии как видишь 2 доллара и b!
  • Как выбрать случайный элемент из списка с учётом его веса?

    Bavashi, Смотрите какая логика
    Допустим 5 баннеров
    ID | Стоимость (вес)
    1 | 10
    2 | 10
    3 | 15
    4 | 20
    5 | 100
    ___________
    Получается мы складываем стоимости и получаем общую сумму для 5 баннеров: 155
    Теперь вероятность показа будет такая
    1 | 10/155=0.064
    2 | 10/155=0.064
    3 | 15/155=0.096
    4 | 20/155=0.129
    5 | 100/155=0.645 -- для самого ценного баннера вероятность выпадения 64.5%
    Мы не можем просто зная случайное число от 0 до 155 определить какой именно баннер, поэтому нужно хранить некий диапазон чисел, в который входит процент определенного баннера (то есть каждый баннер имеет какой-то интервал выигрышных для него чисел, на общем интервале), благодаря чем мы и находит к какому интервалу (баннеру) принадлежит сгенерированное случайное число. !!! Чем больше вес баннера, тем больше диапазон чисел принадлежит данному баннеру из общего интервала!
    На счет индекса wt, так как баннеры могут быть одинаковой стоимости, то данный вами вариант индексации не годится. Может и годится, но нужно хранить [ ключ wt => [массив баннеров], то есть если определен wt получили массив баннеров с одинаковым весом и вывели рандомный баннер со списка. Но мне кажется при таком подходе вероятности выпадания баннеров нарушаются, тобишь не совсем верными получаются
  • Как выбрать случайный элемент из списка с учётом его веса?

    hint000, ну говнокод понятное дело, сам алгоритм интересно было, типа есть ли более производительные вариант.
  • Можно ли перевести данный код на язык PHP?

    Так вы же не знаете о содержании того куска кода, возможно он выполняет тоже самое, что и мой код, просто в моем случае все без JavaScript-а. Мб именно это имел ввиду автор поста!
  • Можно ли перевести данный код на язык PHP?

    А как вам такой подход?
    <?php
    $value = intval( $_GET['value'] );
    $value = isset( $_GET['plus'] ) ? ++$value : ( isset( $_GET['minus'] ) ? --$value : $value );
    $value = $value < 1 ? 1 : ( $value > 100 ? 100 : $value );
    ?>
    <form>
    	<input name="value" value="<?=$value?>">
    	<input type="submit" name="minus" value="-">
    	<input type="submit" name="plus" value="+">
    </form>