У меня есть двенадцать элементов, пронумерованных от 1 до 12.
Я хочу создать двенадцать различных комбинаций, каждая из которых содержит три элемента, с тремя правилами:
- каждый элемент появляется точно в три разные комбинации
- никакие две комбинации не имеют более одного общего элемента
- (это правило более сложное; см. ниже)
Например, этот набор комбинации удовлетворяют правилам №1 и №2: [1,2,3], [1,4,9], [2,6,7], [3,8,9], [8,10,12], [ 1,11,12], [2,5,12], [3,5,7], [4,7,11], [6,8,11], [4,6,10], [5, 9,10].
Как видите, правила №1 и №2 гарантируют, что для каждой комбинации A существует шесть других комбинаций, которые разделяются A предмет с. Продолжая пример, если A равно [1,4,9], то он разделяет элемент с каждым из [1,2,3], [3,8,9], [4,7, 11], [4,6,10], [5,9,10] и [1,11,12].
Теперь что касается правила №3. . . для каждой комбинации A , я хочу разделить шесть «перекрывающихся» комбинаций на три пары ( B , C) так, чтобы A и B совместно используют один элемент, B и C совместно используют другой элемент, а A и C поделитесь третьим предметом. Продолжая пример, если A равно [1,4,9], то одна действительная тройка ( A , B , C) равно ([1,4,9], [1,2,3], [3,8,9]), где A и B оба содержат 1, B и C оба содержат 3, а A и C оба содержат 9. Общее разделение для [1,4 , 9] может быть ([1,4,9], [1,2,3], [3,8,9]), ([1,4,9], [4,7,11], [1 , 11,12]), ({[1,4,9], [4,6,10], [5,9,10]).
Как видите, это отлично работает для [ 1,4,9]. Но это работает не для всех комбинаций; например, если A равно [4,7,11], тогда возможны только две тройки ( A , B , C ). (И в другом направлении: если A равно [1,2,3], то есть четыре возможных тройки ( A , B , C).)
Итак, приведенный выше пример не удовлетворяет правилу № 3.
Возможно ли сгенерировать набор комбинаций, который выполняет удовлетворить всем трем правилам? Если да, то как?