Показать сообщение отдельно
Старый 16.11.2015, 11:38   #4
Paul Kellerman
Gold Member
 
Регистрация: 25.06.2005
Адрес: F000:FFF0
Сообщений: 1,804
По умолчанию

Похоже аффтар из принципа не читает книги по общей алгебре.
Следует срочно познакомиться с базовыми понятиями: группа,
кольцо, поле и изучить свойства этих алгебраических структур.
То, что мутит автор - это группа из N натуральных чисел с одной
бинарной операцией сложения и с нейтральным элементом по
сложению "N". Сложение в группе по сути - сумма по модулю N
с небольшой поправкой, что если остаток = 0, он меняется на N:

function Add(X,Y);
begin
Result:= (X + Y) mod N;
if Result = 0 then Result:= N;
end;

Вычитание - это то же сложение только с аддитивно обратным
вычитателя, который дополняет вычитатель до нейтрального N.

function Sub(X,Y);
begin
Result:= (X + N - Y) mod N;
if Result = 0 then Result:= N;
end;

Пусть для примера N = 10:

Add(2, 10) = (2 + 10) mod 10 = 2
Sub(4, 6) = (4 + 10 - 6) mod 10 = 8
Add(10,10) = 10, т.к. (10 + 10) mod 10 = 0
Sub(10,10) = 10, т.к. (10 + 10 - 10) mod 10 = 0
Sub(5, 5) = 10, т.к. (5 + 10 - 5) mod 10 = 0

Модулярной арифметике как минимум 50 лет, если не больше.

Последний раз редактировалось Paul Kellerman; 16.11.2015 в 12:45.
Paul Kellerman вне форума   Ответить с цитированием
Реклама