6014

Продолжение поста «Сколько выиграют 100500 билетов известной российской лотереи?»4

Провел свой эксперимент. Давайте еще раз проговорим в чем он заключался.

1. Я не покупал эти билеты - я спарсил их. Это как зайти на сайт лотереи и выписать все билеты. Но программисты ленивые (привет ЛЛ) и поэтому я написал программу, которая их выписала за меня.

2. Так же я написал программу, в которую забиваешь бочонки и она показывает сколько билетов выиграло среди тех, которые я спарсил.

3. Я хочу посмотреть имеет ли смысл покупать больше билетов, чтобы увеличить шанс выиграть.

Я спарсил 100500 билетов, что эквивалентно 15+ млн. рублей. Проверил их в очередном розыгрыше, посчитал солько бы выиграл, если бы реально их купил.

В первом туре не выиграл ни один билет, как во втором, третьем и четвертом. А потом как поперло )). И куча билетов оказались выиграшными. И в итоге я бы выиграл 3 702 464 руб, если бы купил все эти билеты. Математика такая: около 25% затраченных средств я вернул бы обратно.

Вывод: Покупать больше билетов не имеет смысла!

Тут все выпавшие бочонки и сколько билетов выиграло на каком из них: https://github.com/oparinpv/stoloto/blob/main/Выпавшие бочонки.xlsx

Тут все билеты, которые могли бы выиграть с номерами и суммами: https://github.com/oparinpv/stoloto/blob/main/Выигравшие билеты.xlsx

Далее пойдет техническая часть. Если вам интересен сам код и проблемы, с которыми я столкнулся при написании кода - читайте далее.

Писал весь код на 1С. Конечно мог писать и на java и на php, но на 1С мне было проще и быстрее. И исходники приложу ниже в виде расширения для 1С.

Проблема №1.

Когда парсишь билеты - сайт отдает примерно 25 000 билетов относительно легко, а дальше начинает отдавать те билеты, которые были ранее. Хотя алгоритм повторяет поведении кнопки "Другие билеты" на сайте. Спустя сутки проблема уходит и опять парсишь 25 000 билетов.

Проблема №2.

Между вытаскиванием бочонков в третьем туре проходит 5-10 сек, а у меня запрос отрабатывал 12-25 сек. на проверку соответствия всех вытащенных бочонков билетам в базе данных. В итоге после 50 бочонков я не успел их проверить в режиме онлайн и пришлось ждать выложенных результатов, чтобы проверить их все. А я проверял всего 100к билетов. Сейчас-то понятно, что там стоит сервер гораздо мощнее моего бука, но как они выходили из этой ситуации в 90-х? Я предполагаю, что там работал целый отдел из 50-100 человек. И все проданные билеты делились между этими людьми. И каждый проверял свой список билетов, вводя выпавший номер в его ЭВМ.

Для тех, кому интересно повторить эксперимент - расширение для 1С, которое парсит, хранит и проверяет результаты: https://github.com/oparinpv/stoloto/blob/main/РусскоеЛото.cfe

Для тех, кто хочет проверить корректность моих подсчетов и/или составить более оптимальный запрос проверки - база данных 1С с билетами, которые я спарсил: https://github.com/oparinpv/stoloto/blob/main/Билеты Столото 18.02.24.dt

Вы смотрите срез комментариев. Показать все
3
Автор поста оценил этот комментарий

У тебя просто алгоритмы говно. 100k билетов - ерунда, алгоритм должен отрабатывать мгновенно

раскрыть ветку (4)
8
Автор поста оценил этот комментарий

Напишите ответным постом как надо

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Постом не буду, как минимум в комментариях уже предложили способ, но я бы вместо дерева отсортировал бы массив билетов по условию.

Билет a < билета b, если минимальное несовпадающее чисто в билете a < в билете b.

Например, билет a числа 1 2 3 7, билет b числа 1 2 5 7.

Минимально несовпадающее число (разница множеств) - число 3, оно есть в a и его нет в b

А дальше поиск выигрышных билетов - обычный бинарный поиск.

Сложность алгоритма O(n * log2n)

Билет можно хранить и как 2 битовые маски по 64 или 1 на 128. Разница - операция xor

Если поиск нужно делать по k комбинациям и k < log2n, то даже сортировать не нужно, тогда сложность будет O(n * k)

0
15926535897932384626
Автор поста оценил этот комментарий
0
Автор поста оценил этот комментарий

Вот, написал. #comment_299641941

Этот алгоритм должен отрабатывать мгновенно даже на компах 90-х.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества