Определение знака числа в системе остаточных классов
Определе́ние зна́ка числа́ в систе́ме оста́точных кла́ссов, метод определения того, является ли данное число положительным (больше 0) или отрицательным (меньше 0). Определение знака числа в системе остаточных классов (СОК) – немодульная операция, как следствие, является вычислительно сложной.
Чаще всего СОК используется для распределённого представления чисел где – диапазон СОК, а – модули СОК, поэтому отрицательные числа в СОК вводятся искусственно и только при необходимости. Идея введения отрицательных чисел в СОК заключается в том, чтобы сдвинуть диапазон на полдиапазона влево. Тогда возникнут отрицательные числа, однако c учётом того, что для любого натурального выполнено появляется возможность использовать для представления отрицательных чисел в СОК вторую половину исходного, «не сдвинутого» диапазона. Подобное представление существенно облегчает применение алгоритмов выполнения как модульных, так и немодульных операций в СОК, т. к. при таком представлении все действия выполняются в рамках исходного диапазона и алгоритмы не нужно адаптировать для обработки отрицательных значений. Достаточно просто иметь в виду, что результат той или иной операции, значение которого попало во вторую половину диапазона, является на самом деле отрицательным и, согласно формуле выше, может быть получен вычитанием из него величины диапазона
Учитывая вышесказанное, знак числа в СОК определяется следующим образом (Ananda Mohan. 2016):
Исходя из способа введения отрицательных чисел в СОК, напрашивается очевидный метод определения знака числа в СОК: нужно при помощи китайской теоремы об остатках (или любого другого метода) восстановить позиционное представление числа (перевести число из СОК в позиционную, например десятичную, систему счисления) и сравнить его с серединой диапазона, т. е. величиной Если полученное значение окажется меньше середины диапазона, то число неотрицательное; если же оно больше или равно середине диапазона, то число отрицательное и для получения истинного значения необходимо вычесть из полученного позиционного представления величину
Однако самый очевидный способ определения знака числа в СОК далеко не самый эффективный. Обратный перевод (восстановление позиционного представления числа, представленного в СОК) относится к классу немодульных ресурсозатратных операций. Известны другие, более эффективные способы определения знака числа в СОК, существенным образом зависящие от того, является ли диапазон СОК чётным (Бабенко. 2022).
Отрицательные числа не являются естественными для СОК и вводятся искусственно при необходимости, поэтому операция определения знака числа в СОК в приложениях используется крайне редко. Однако эффективная реализация данной операции открывает возможности для расширения функционала приложений, таких, например, как построенные на СОК гомоморфные шифры или свёрточные нейронные сети, сохраняющие конфиденциальность.