LINUX.ORG.RU

История изменений

Исправление 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
и т.д.

каждую из которых, опять же, можно двигать, вращать, гнуть и ломать (так они друг в друга и переходят, можно допустить).