Не, мне в первую очередь интересно, как бы по-эффективней проверить корректность таблицы умножения именно для группы. Петли, конечно, забавные штуки, но они легко получаются из таблиц для нормализованных
латинских квадратов, а последних
МНОГО даже для небольших порядков множеств. Группы по сравнению — иголки в стоге сена.
Я вот тут, например, обнаружил, что даже проверку равенства
![$$a(ba)=(ab)a$$ $$a(ba)=(ab)a$$](https://dxdy-02.korotkov.co.uk/f/d/3/6/d36ff5cdb6dba93d15162d8fd7f9959b82.png)
выкинуть нельзя. Правда, в примере выше оно всегда работает, контрпример должен быть таким:
Код:
1 2 3 4 5
2 1 4 5 3
3 5 2 1 4
4 3 5 2 1
5 4 1 3 2
тогда
![$$(4*4)*4=2*4=5\ne 3=4*2=4*(4*4)$$ $$(4*4)*4=2*4=5\ne 3=4*2=4*(4*4)$$](https://dxdy-04.korotkov.co.uk/f/3/7/8/3785c50f7311a3e966f583a34f211f3082.png)
Пока моя рабочая идея заключается в том, чтобы рассмотреть некоторое подмножество
A петли
L, для которого бинарная операция ассоциативна, добавить к нему новый элемент
![$b\in L\setminus A$ $b\in L\setminus A$](https://dxdy-01.korotkov.co.uk/f/c/d/a/cda08775b7e5bbe5ab339829ba7ee22f82.png)
. Если проверку ассоциативности на множестве
![$A\cup\left\{b\right\}$ $A\cup\left\{b\right\}$](https://dxdy-02.korotkov.co.uk/f/9/a/a/9aa653c2587e206a545bcf2fdcea0d0182.png)
можно сделать за линейное время, то в целом задача имеет квадратичную сложность, если же промежуточная проверка требует квадратичное время, то ничего не поделаешь, вся задача будет порядка
![$O\left(N^3\right)$ $O\left(N^3\right)$](https://dxdy-02.korotkov.co.uk/f/1/0/e/10ef2eb28fd2e4335ae1a6498a889e1882.png)
, но может хотя бы получится коэффициент по-меньше получить.
Вопрос в том, можно ли распространить ассоциативность на новый элемент, воспользовавшись ассоциативностью имеющихся и минимальным числом проверок?