История изменений
Исправление quasimoto, (текущая версия) :
а конструктивно?
Нужно просто поддержать это геометрическое наблюдение технически — взять y |-> h(y), протащить по оси x, будут точки (x, y, h(y)), и воздействовать на эту поверхность матрицами вращения переводящими (1, 0, 0) в (1/sqrt(3), 1/sqrt(3), 1/sqrt(3)), получится система:
a(x, y) = -h(y) / sqrt(6) - y / sqrt(2) + x / sqrt(3)
b(x, y) = -h(y) / sqrt(6) + y / sqrt(2) + x / sqrt(3)
c(x, y) = sqrt(2/3) h(y) + x / sqrt(3)
для любой h решение, если оно существует, в виде c(a, b) будет искомой бинарной операцией. Для примера:
h(y) c(a, b)
0 (a + b) / 2
ky + r (a + b) / 2 + sqrt(3) k (b - a) / 2 + sqrt(3/2) r
k|y| + r (a + b) / 2 + sqrt(3) k |a - b| / 2 + sqrt(3/2) r
y^2 (a + b) / 2 + sqrt(3/8) (a^2 + b^2) - sqrt(3/2) a b
и т.д.
каждую из которых, опять же, можно двигать, вращать, гнуть и ломать (так они друг в друга и переходят, можно допустить).
Исходная версия quasimoto, :
а конструктивно?
Нужно просто поддержать это геометрическое наблюдение технически — взять y |-> h(y), протащить по оси x, будут точки (x, y, h(y)), и воздействовать на эту поверхность матрицами вращения переводящими (1, 0, 0) в (1/sqrt(3), 1/sqrt(3), 1/sqrt(3)), получится система:
a(x, y) = -h(y) / sqrt(6) - y / sqrt(2) + x / sqrt(3)
b(x, y) = -h(y) / sqrt(6) + y / sqrt(2) + x / sqrt(3)
c(x, y) = sqrt(2/3) h(y) + x / sqrt(3)
для любой h решение, если оно существует, в виде c(a, b) будет искомой бинарной операцией. Для примера:
h(y) c(a, b)
0 (a + b) / 2
kx + r (a + b) / 2 + sqrt(3) k (b - a) / 2 + sqrt(3/2) r
k|x| + r (a + b) / 2 + sqrt(3) k |a - b| / 2 + sqrt(3/2) r
y^2 (a + b) / 2 + sqrt(3/8) (a^2 + b^2) - sqrt(3/2) a b
и т.д.
каждую из которых, опять же, можно двигать, вращать, гнуть и ломать (так они друг в друга и переходят, можно допустить).