Сообщение Re[3]: Разные базы для позиционной системы счисления от 13.02.2022 20:53
Изменено 13.02.2022 21:03 kov_serg
Re[3]: Разные базы для позиционной системы счисления
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, kov_serg, Вы писали:
_>>Еще есть вариант использовать остатки от деления на простые числа (модульную арифметику)
_>>например берём простые числа 2,3,5,7,11,13=(p1,p2,p3,p4,p5,p6)
_>>и используем вектор (a1,a2,a3,a4,a5,a6)
_>>который складывается и умножается так
A>А теперь придумай, как в этой системе сделать деление и сравнение, и нобелевка у тебя в кармане.
Деление делается элементарно как и умножение, через обратное число
a*b=1 % p
b=a^(p-2) %p
b — обратное к a
Правда вместо дробей будут получаться более экзотические числа. Зато можно мнимую единицу ввести например и много других чудес прямо из коробки.
для сравнения придётся приводить в обычную систему. т.к. тут нет привычного порядка как в часах какой час из 12 левее, а какой правее?
Например если у нас 3 простых числа, то число z можно представить в виде 3х чисел a1,a2,a3
a1=z%p1
a2=z%p2
a3=z%p3
А получить обратно z:
z= (a1*q1 + a2*q2 + a3*q3) % Q
А z можно уже сравнивать обычным способом
где Q=p1*p2*p3
коэф q:
q1=(b1*Q/p1) % Q = (b1*p2*p3) % Q
q2=(b2*Q/p2) % Q = (p1*b2*p3) % Q
q3=(b3*Q/p3) % Q = (p1*p2*b3) % Q
и коэф bi для вычисления qi
b1=(Q/p1)^(p1-2) % p1 = (p2*p3)^(p1-2) % p1
b2=(Q/p2)^(p2-2) % p2 = (p1*p3)^(p2-2) % p2
b3=(Q/p3)^(p3-2) % p3 = (p1*p2)^(p3-2) % p3
причем для q будут вот такие свойства
qi*qi % Q = qi
qi*qj % Q = 0
qi % pi = 1
qi % pj = 0
q1+q2+q3 % Q = 1
A>Здравствуйте, kov_serg, Вы писали:
_>>Еще есть вариант использовать остатки от деления на простые числа (модульную арифметику)
_>>например берём простые числа 2,3,5,7,11,13=(p1,p2,p3,p4,p5,p6)
_>>и используем вектор (a1,a2,a3,a4,a5,a6)
_>>который складывается и умножается так
A>А теперь придумай, как в этой системе сделать деление и сравнение, и нобелевка у тебя в кармане.
Деление делается элементарно как и умножение, через обратное число
a*b=1 % p
b=a^(p-2) %p
b — обратное к a
Правда вместо дробей будут получаться более экзотические числа. Зато можно мнимую единицу ввести например и много других чудес прямо из коробки.
для сравнения придётся приводить в обычную систему. т.к. тут нет привычного порядка как в часах какой час из 12 левее, а какой правее?
Например если у нас 3 простых числа, то число z можно представить в виде 3х чисел a1,a2,a3
a1=z%p1
a2=z%p2
a3=z%p3
А получить обратно z:
z= (a1*q1 + a2*q2 + a3*q3) % Q
А z можно уже сравнивать обычным способом
где Q=p1*p2*p3
коэф q:
q1=(b1*Q/p1) % Q = (b1*p2*p3) % Q
q2=(b2*Q/p2) % Q = (p1*b2*p3) % Q
q3=(b3*Q/p3) % Q = (p1*p2*b3) % Q
и коэф bi для вычисления qi
b1=(Q/p1)^(p1-2) % p1 = (p2*p3)^(p1-2) % p1
b2=(Q/p2)^(p2-2) % p2 = (p1*p3)^(p2-2) % p2
b3=(Q/p3)^(p3-2) % p3 = (p1*p2)^(p3-2) % p3
причем для q будут вот такие свойства
qi*qi % Q = qi
qi*qj % Q = 0
qi % pi = 1
qi % pj = 0
q1+q2+q3 % Q = 1
Re[3]: Разные базы для позиционной системы счисления
Здравствуйте, alpha21264, Вы писали:
A>Здравствуйте, kov_serg, Вы писали:
_>>Еще есть вариант использовать остатки от деления на простые числа (модульную арифметику)
_>>например берём простые числа 2,3,5,7,11,13=(p1,p2,p3,p4,p5,p6)
_>>и используем вектор (a1,a2,a3,a4,a5,a6)
_>>который складывается и умножается так
A>А теперь придумай, как в этой системе сделать деление и сравнение, и нобелевка у тебя в кармане.
Деление делается элементарно как и умножение, через обратное число
a*b=1 % p
b=a^(p-2) %p
b — обратное к a
Правда вместо дробей будут получаться более экзотические числа. Зато можно мнимую единицу ввести например и много других чудес прямо из коробки.
для сравнения придётся приводить в обычную систему. т.к. тут нет привычного порядка как в часах какой час из 12 левее, а какой правее?
Например если у нас 3 простых числа, то число z можно представить в виде 3х чисел a1,a2,a3
a1=z%p1
a2=z%p2
a3=z%p3
А получить обратно z:
z= (a1*q1 + a2*q2 + a3*q3) % Q
или немного преобразовав так:
z = ( (a1-a3)*q1 + (a2-a3)*q2 + a3) % Q
А z можно уже сравнивать обычным способом
где Q=p1*p2*p3
коэф q:
q1=(b1*Q/p1) % Q = (b1*p2*p3) % Q
q2=(b2*Q/p2) % Q = (p1*b2*p3) % Q
q3=(b3*Q/p3) % Q = (p1*p2*b3) % Q
и коэф bi для вычисления qi
b1=(Q/p1)^(p1-2) % p1 = (p2*p3)^(p1-2) % p1
b2=(Q/p2)^(p2-2) % p2 = (p1*p3)^(p2-2) % p2
b3=(Q/p3)^(p3-2) % p3 = (p1*p2)^(p3-2) % p3
причем для q будут вот такие свойства
qi*qi % Q = qi
qi*qj % Q = 0
qi % pi = 1
qi % pj = 0
q1+q2+q3 % Q = 1
A>Здравствуйте, kov_serg, Вы писали:
_>>Еще есть вариант использовать остатки от деления на простые числа (модульную арифметику)
_>>например берём простые числа 2,3,5,7,11,13=(p1,p2,p3,p4,p5,p6)
_>>и используем вектор (a1,a2,a3,a4,a5,a6)
_>>который складывается и умножается так
A>А теперь придумай, как в этой системе сделать деление и сравнение, и нобелевка у тебя в кармане.
Деление делается элементарно как и умножение, через обратное число
a*b=1 % p
b=a^(p-2) %p
b — обратное к a
Правда вместо дробей будут получаться более экзотические числа. Зато можно мнимую единицу ввести например и много других чудес прямо из коробки.
для сравнения придётся приводить в обычную систему. т.к. тут нет привычного порядка как в часах какой час из 12 левее, а какой правее?
Например если у нас 3 простых числа, то число z можно представить в виде 3х чисел a1,a2,a3
a1=z%p1
a2=z%p2
a3=z%p3
А получить обратно z:
z= (a1*q1 + a2*q2 + a3*q3) % Q
или немного преобразовав так:
z = ( (a1-a3)*q1 + (a2-a3)*q2 + a3) % Q
А z можно уже сравнивать обычным способом
где Q=p1*p2*p3
коэф q:
q1=(b1*Q/p1) % Q = (b1*p2*p3) % Q
q2=(b2*Q/p2) % Q = (p1*b2*p3) % Q
q3=(b3*Q/p3) % Q = (p1*p2*b3) % Q
и коэф bi для вычисления qi
b1=(Q/p1)^(p1-2) % p1 = (p2*p3)^(p1-2) % p1
b2=(Q/p2)^(p2-2) % p2 = (p1*p3)^(p2-2) % p2
b3=(Q/p3)^(p3-2) % p3 = (p1*p2)^(p3-2) % p3
причем для q будут вот такие свойства
qi*qi % Q = qi
qi*qj % Q = 0
qi % pi = 1
qi % pj = 0
q1+q2+q3 % Q = 1