Этот набор должен обладать тем свойством, что комбинации XOR каждого подмножества не должны приводить к значению 0.
ИМХО, это ограничило бы максимальное количество подмножеств до 64 (принцип Пиджона); для> 64 подмножеств всегда будет ( непустое ) подмножество, которое XOR обнуляется. Для небольших подмножеств свойство может быть выполнено.
Чтобы проиллюстрировать мою мысль: рассмотрим систему из 64 уравнений над 64 неизвестными переменными. Затем добавьте еще одно уравнение. Тот факт, что уравнения и переменные являются логическими значениями, не делает проблему другой.
- EDIT / UPDATE--: поскольку приложение выглядит как игра "connect-four", вы можете вместо этого перечислить все возможные конфигурации. Невозможность кодирования невозможных конфигураций платы сэкономит достаточно места для кодирования, чтобы вместить любую допустимую позицию платы в 64 бита:
Кодирование цветных камней как {A, B}, а не как {X}, конфигурации (hight = 6) столбца может быть одним из:
X
X X
X X X
X X X X
X X X X X
_ A A A A A A <<-- possible configurations for one pile
--+--+--+--+--+--+--+
1 1 2 4 8 16 32 <<-- number of combinations of the Xs
-2 -5 <<-- number of impossible Xs
(и аналогично для B вместо A). Числа под кучами - это число возможных вариантов для X наверху, отрицательные числа - количество запрещенных / невозможных конфигураций. Для столбца с одним A и 4 X, каждое значение для X является действительным, * кроме 3 * A (игра уже закончилась бы). То же самое для самой правой стопки: нижние 3X не могут быть всеми A, а X не может быть B для всех X.
Это приводит к 1 + 2 * (63-7): = 113.
(1 для пустой доски, 2 для количества цветов). Итак: 113 - это число конфигураций для одного столбца, хорошо вписывающихся в 7 бит. Для 7 столбцов нам понадобится 7 * 7: = 49 бит. (мы могли бы сохранить один бит для зеркальной симметрии L / R, возможно даже один для цветовой симметрии, но это только усложнит ситуацию, ИМХО).
Там еще много места для кодирования потрачено впустую (столбцы не независимы, число As на плате равно количеству B, или еще один, и т. Д.), Но я не Не думаю, что их будет легко избежать. К счастью, в этом нет необходимости.