Как уже упоминалось, есть несколько библиотек и несколько сообщений, доступных для начала. Я просто хотел дать вам два подхода к достижению вашей цели.
Для случая «составления списка комбинаций, которые еще не произошли»
Я понимаю эту цель, поскольку у вас есть история розыгрышей, и вы хотите сгенерировать набор случайных чисел, которые никогда не встречались в истории. В основном вам нужен сначала генератор случайных чисел и генерировать лотерейные номера. Затем возьмите этот набор чисел и
попытаться найти это в исторических данных. Если вы нашли его, просто начните сначала и сгенерируйте новый. Исходя из моего комментария к вопросу, у вас практически есть шанс, скажем (5200 / 47M), что вы найдете свои номера в списке истории. Повторяйте весь этот процесс, пока не получите достаточное количество.
Для случая «генерации списка комбинаций, которые уже произошли»
Вам нужно найти дубликаты в списке истории. Создайте Set<Integer>
из каждого исторического вхождения и начните добавлять его к еще одному набору Set<Set<Integer>>
.
Если набор номера, который вы добавляете, уже произошел во время обработки, вы получите ложное возвращение из метода add
этого последнего набора. Затем вы просто печатаете или запоминаете набор повторяющихся номеров.