Марковские цепи
и их применение для генерации вариантов для версии: dropdownafterПочему мы обратились к теме цепей Маркова? Основной толчёк в данном направлении возник после получения информации, что для обучения голосового помошника Алиса, разработчики Яндекса используют цепи Маркова. А почему-бы и нам не воспользоваться этим инструментом?!
Обратимся к Википедии. Она сообщает нам, что Цепь Маркова это последовательность случайных событий с конечным или счётным числом исходов, характеризующаяся тем свойством, что, говоря нестрого, при фиксированном настоящем будущее независимо от прошлого.
* Смотри Википедию — свободную энциклопедию
Тиражная лотерея, такая как 4 из 20, вполне подходит под это определение
- в предположении, что
- выпадение номеров - случайный процесс;
- тираж - дискретное состояние;
- периодичность проведения тиражей - дискретное время;
- число исходов - конечное и счётное (таблица всех вариантов);
- последний тираж - это наше (фиксированное) настоящее;
- следующий тираж не зависит от результатов прошлых тиражей;
Примером такого функционала можно считать генератор текстов. Для которого слова являются прототипом наших номеров. Набор слов любого генератора ограничен словарём. Используя словарь генератор строит фразы - в нашем случае фраза, это тираж (вариант из 4 цифр), а словарь ограничен номерами от 1 до 20. Что бы генератор текстов был в состоянии сгенерировать текст, более-менее похожий на тот, что создаёт человек, ему "скармливают" тексты, когда-то написанные людьми. Это произведения самых известных писателей и журналистов. Генератор, разбирая тексты, анализирует слова по частоте и применимости (какие слова сочетаются друг с другом), с каких слов начинаются предложения и так далее и тому подобное.
Образно выражаясь, в терминах генератора текста, наш генератор , должен выдавать две фразы по четыре слова в каждой. Словарный запас 20 слов. В каждой фразе слово может использовано только один раз.
Тираж 4 из 20 представляет собой два набора чисел, по четыре числа в каждом. Пусть первый набор представляет собой таблицу (слева) с колонками a1,a2,a3,a4. Второй набор таблицу (справа) с колонками b1,b2,b3,b4.

Выпадающие после...
Марковские цепи, генератор текстов - слишком "пугающие" названия для многих людей. Применительно к нашему случаю, с тиражами лотерей, будем использовать термин - "Выпадающие после". Так как основная идея методов, упомянутых выше, проанализировать статистику появления номера (слова) после появления слова (номера) на предидущем шаге. Те есть мы отвечаем на вопрос: "Какие номера выпадают в колонке а(N), после выпадения номера X в колонке а(N-1)?"
Вариантов начала тиражной комбинации ("фразы") у нас всего 20 (от 1 до 20). Комбинация начинается с появления номера в колонке a1.
- Наши действия:
- Собираем номера, выпадавшие в колонке а1, в заданном диапазоне тиражей и группируем (сортируем) их по частоте выпадения. Получаем список (A1), максимум из 20 номеров.
- Выбираем из этого списка (A1) какой-то номер (x1) и собираем номера, выпадавшие после него в колонке а2, в заданном диапазоне тиражей и группируем (сортируем) их по частоте выпадения. Получаем список (A2), максимум из 20 номеров.
- Выбираем из списка (A2) какой-то номер (x2) и собираем номера, выпадавшие после него в колонке а3, в заданном диапазоне тиражей и группируем (сортируем) их по частоте выпадения. Получаем список (A3), максимум из 20 номеров.
- Выбираем из списка (A3) какой-то номер (x3) и собираем номера, выпадавшие после него в колонке а4, в заданном диапазоне тиражей и группируем (сортируем) их по частоте выпадения. Получаем список (A4), максимум из 20 номеров.
- Выбираем из списка (A4) какой-то номер (x4). Тиражная комбинация собрана - x1, x2, x3, x4.
Аналогичные манипуляции проводим со второй частью (b) лотерейной комбинации. В результате получаем полную комбинацию - a1,a2,a3,a4 + b1,b2,b3,b4.
Стоит отметить, что возможна связь между номером в колонке a4 и выпадающими после в колонке b1. Этот факт будет учтён в виде отдельной опции в приложении, при подборе выриантов по схеме "Выпадающие после".
Связь же между номером в колонке b4 (текущего тиража) и выпадающими после (в следующем тираже) в колонке a1 будем считать маловероятной, по этому её решено не рассматривать и не учитывать в приложении.
Стартовый экран
в горизонтальной ориентации
2.jpg)
в портретной ориентации
2.jpg)
Сервис подбора лотерейной комбинации с помощью подсказок о том, какие номера выпадали в следующем столбце (канале, колонки слева направо А2,А3,А4,Б1,Б2,Б3,Б4) если в предидущей вы выбираете какой-то определённый номер. Первоначально колонки заполнены номерами (от 1 до 20), отсортированными по рейтингу (частоте выпадения) в соответствующей колонке (канале) в заданном (в настройках) диапазоне тиражей.
Кнопки
Перезагрузить колонки / каналы
Помощь, справка
Первая тиражная таблица, слева, лотереи 4х20, представлена колонками А1,А2,А3,А4. Вторая колонками Б1,Б2,Б3,Б4.
Колонки пролистываются независимо друг от друга. В них собраны номера лотереи, отсортированные по частоте выпадения, рейтингу, в заданном диапазоне тиражей.
Нажатие на заголовок колонки выполняет обратную сортировку номеров по их рейтингу.
Нажатие на номер выполняет отбор номеров и их сортировку в колонке справа при условии, что в предидущей колонке в тиражах был выбранный вами номер.
Переход от таблицы слева (А) к таблице справа (Б)
Подбор лотерейной комбинации для таблицы слева.
Переход от таблицы справа (Б) к таблице слева (А)
Подбор лотерейной комбинации для таблицы справа.
Связь А4 с Б1