Алгоритм и программа генерации лотерейных билетов
Требуется разработать алгоритм быстрой (в течение нескольких часов) генерации десятков тысяч лотерейных билетов:
Билет представляет собой матрицу из 9 столбцов и 18 строк.
Билет разделен по вертикали на 6 полей.
Каждое поле представляет собой матрицу из 9 столбцов и 3 строк:
- первое поле - 1,2,3 строки
- второе поле - 4,5,6 строки
- третье поле - 7,8,9 строки
- четвертое поле - 10,11,12 строки
- пятое поле - 13,14,15 строки
- шестое поле - 16,17,18 строки
Нумерация строк ведется сверху вниз.
В ячейках билета расположены 90 уникальных чисел от 1 до 90.
В каждой строке билета расположено ровно 5 чисел.
В каждом столбце расположены все числа из определенного диапазона:
- в первом столбце - числа из диапазона 1,2,3,4,5,6,7,8,9
- во втором столбце - числа из диапазона 10,11,12,13,14,15,16,17,18,19
- в третьем столбце - числа из диапазона 20,21,22,23,24,25,26,27,28,29
- в четвертом столбце - числа из диапазона 30,31,32,33,34,35,36,37,38,39
- в пятом столбце - числа из диапазона 40,41,42,43,44,45,46,47,48,49
- в шестом столбце - числа из диапазона 50,51,52,53,54,55,56,57,58,59
- в седьмом столбце - числа из диапазона 60,61,62,63,64,65,66,67,68,69
- в восьмом столбце - числа из диапазона 70,71,72,73,74,75,76,77,78,79
- в девятом столбце - числа из диапазона 80,81,82,83,84,85,86,87,88,89,90
Комбинация чисел в каждой из строк билета должна быть уникальной во всей совокупности сгенерированных билетов. Во всех сгенерированных билетах не должно быть строк с такой же комбинацией из 5 чисел.
Комбинация чисел в каждом поле билета должна быть уникальной во всей совокупности сгенерированных билетов. Во всех сгенерированных билетах не должно быть полей с таким же набором из 15 чисел. Последовательность чисел в комбинации не играет роли. {N1,N2,N3,N4,N5,N6,N7,N8,N9,N10,N11,N12,N13,N14,N15}={N15,N14,N13,N12,N11,N10,N9,N8,N7,N6,N5,N4,N3,N2,N1}
Пример билета (см. UK Bingo):