Blog. Just Blog

Быстрый поиск

Введите фрагмент названия статьи для поиска

Генерация случайных значений на PHP с заданной вероятностью

11.01.2019 | Категория: Web-мастеру и не только | Автор: ManHunter
Понадобилась функция, которая возвращает случайный элемент из определенного набора. Вроде бы простейшее решение в одну строчку. Но особенность задачи такова, что элементы должны появляться не просто случайно, а с определенной вероятностью: какие-то чаще, какие-то реже. То есть у каждого значения имеется весовой коэффициент, влияющий на частоту его появления. Например:
  1. // Массив значений и весовых коэффициентов
  2. $data=array(
  3.     'купить'=>50,
  4.     'заказать'=>5,
  5.     'приобрести'=>30,
  6. );
Для такого набора данных чаще всего должно появляться слово "купить", чуть реже "приобрести" и в очень редких случаях может проскакивать вариант "заказать". Готовая функция получилась следующей:
  1. //-------------------------------------------------------------
  2. // Получение случайного значения с заданной вероятностью
  3. //-------------------------------------------------------------
  4. function smart_rand($data) {
  5.     // Пустой массив не обрабатываем
  6.     if (count($data)==0) { return false; }
  7.  
  8.     // Отсортировать массив с сохранением ключей
  9.     arsort($data);
  10.  
  11.     // Сформировать массив с интервалами
  12.     $max_rand=0;
  13.     $weights=array();
  14.     foreach ($data as $key=>$value) {
  15.         $max_rand+=$value;
  16.         $weights[$max_rand]=$key;
  17.     }
  18.  
  19.     // Случайное число от 0 до суммы всех весовых коэффициентов
  20.     $rand=mt_rand(0,$max_rand);
  21.  
  22.     // Найти интервал, в который попадает случайное число
  23.     foreach ($weights as $key=>$value) {
  24.         if ($rand<=$key) {
  25.             break;
  26.         }
  27.     }
  28.     return $value;
  29. }
На входе передается массив значений с весовыми коэффициентами, на выходе одно из значений. Пример использования:
  1. // Вывести 100 вариантов написания
  2. for($i=0$i<100$i++) {
  3.     echo smart_rand($data).' ';
  4. }
Числовые значения весовых коэффициентов могут быть любыми и следовать в произвольном порядке, их количество также ничем не ограничено.

Просмотров: 2047 | Комментариев: 1

Рамка для фото в виде смартфона

25.11.2018 | Категория: Web-мастеру и не только | Автор: ManHunter

Рамка для фото в виде смартфона

Для одной презентации понадобилось достаточно большое количество картинок, на которых представлены скриншоты мобильной версии продукта. С самими картинками проблем не возникло, нащелкали на смартфонах сколько надо скриншотов. Согласно поставленной задаче, для пущей убедительности картинки должны быть, так сказать, "в интерьере", то есть как будто отрисованные на экране смартфонов. Конечно, фотошоп никто не отменял, можно было заморочиться и наделать все ручками, но программистское мышление взяло вверх. Как верно подметил герой одного старого мультика, "лучше день потерять, зато потом за пять минут долететь".

Читать статью целиком »
Просмотров: 2726 | Комментариев: 4

Растягивание фона изображения на PHP

11.10.2018 | Категория: Web-мастеру и не только | Автор: ManHunter

Растягивание фона изображения на PHP

Чтобы не таскать с собой кучу пластиковых карточек, я пользуюсь программой на смартфоне, куда их все можно легко добавить. Для предустановленных брендов в программе есть свои логотипы, для отсутствующих можно загрузить какие-нибудь свои. Все хорошо и удобно, но речь сегодня не об этом. При загрузке логотипа программа пытается автоматически заполнить подложку фоновым цветом, который определяется из цвета загружаемого изображения. И вот это действие меня заинтересовало.

Читать статью целиком »
Просмотров: 1862 | Комментариев: 0

Исследование защиты программы DzSoft PHP Editor

19.09.2018 | Категория: Темная сторона Силы | Автор: ManHunter

Скриншот программы DzSoft PHP Editor

DzSoft PHP Editor - редактор PHP-скриптов и HTML страничек. В наличии имеется практически весь нужный инструментарий для разработки: подсветка синтаксиса, шаблоны, встроенный FTP-клиент, поддержка юникода, просмотр результатов в браузере и всякое такое. У каждого программиста для работы наверняка есть свой привычный, отобранный годами инструментарий, но может быть и этот редактор кому-нибудь пригодится. Лично мне в DzSoft PHP Editor не нравится то, что за программу требуется выкладывать деньги.

Читать статью целиком »
Просмотров: 3795 | Комментариев: 7

Как узнать индекс качества сайта (ИКС) Яндекса

17.09.2018 | Категория: Web-мастеру и не только | Автор: ManHunter

Как узнать индекс качества сайта (ИКС) Яндекса

В конце августа 2018 года Яндекс заменил тИЦ (тематический индекс цитирования) на ИКС (индекс качества сайта). Значение тИЦ зависело только от количества и качества ссылок на сайт, а новый индекс качества сайта - это показатель того, насколько полезен ваш сайт для пользователей с точки зрения Яндекса. При расчете индекса качества учитываются размер аудитории сайта, степень удовлетворенности пользователей, уровень доверия к сайту со стороны пользователей и Яндекса, а также другие данные сервисов Яндекса. По понятным причинам точную формулу и порядок подсчета ИКС Яндекс не раскрывает, чтобы предотвратить попытки накрутки этого показателя. Значение индекса качества сайта регулярно обновляется, а вот тематический индекс цитирования больше не будет ни рассчитываться, ни отображаться.

Читать статью целиком »
Просмотров: 2519 | Комментариев: 2

01 ... 06 07 08 09 10 11 12 ... 25
Наверх
Powered by PCL's Speckled Band Engine 0.2 RC3
© ManHunter / PCL, 2008-2025
При использовании материалов ссылка на сайт обязательна
Время генерации: 0.11 сек. / MySQL: 3 (0.0082 сек.) / Память: 4.5 Mb
Наверх