Понимание мод оператора в математике против программирования - PullRequest
1 голос
/ 14 апреля 2019

Насколько я понимаю, в математике оператор мод является результатом остатка евклидова деления.Где 0 ≤ r <| b |, означая, что результат всегда будет положительным. </p>

В программировании, однако, есть операторы на многих языках, которые могут использоваться для обозначения либо оператора остатка, либо оператора по модулю, которые отличаются суважение к тому, как они обрабатывают отрицательные значения.

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

Согласно Операция по модулю с отрицательными числами

"При использовании оператора остатка знак результата совпадает со знаком дивиденда, а при операторе по модулю знак результата совпадает с делителем."

Значит, оператор мод в программировании не имеет в виду оператор мод в математике?

Является ли знак ответа основным отличительным фактором между оператором мода и оператором остатка в программировании?

1 Ответ

0 голосов
/ 14 апреля 2019

Математически модуль является частью теории групп и идеи множества.Вы можете генерировать все числа в наборе путем сложения с модулем.Поэтому, если ваш набор имеет модуль 10 целых чисел, вы считаете 0-9, а затем начинаете с нуля. В модуле отсутствует понятие отрицательного числа.

В программировании остаток - это то, какая часть остается после выполнения.разделение.Таким образом, если вы разделите 3 на 10, у вас останется 0 и остаток от 3. Если вы разделите -3 на 10, вы получите 0 с остатком -3, а не -1 остаток 7. Но математический модуль7.

Те, кто разработал целочисленное деление, которое мы сейчас используем, решили, что более логично округлять в сторону 0, а не округлять в сторону отрицательной бесконечности, поэтому по необходимости отрицательное деление приведет к отрицательному остатку.

Если вы хотите преобразовать остаток в модуль, вам нужно добавить свой модуль к любым отрицательным остаткам, чтобы отобразить их в нужном диапазоне.

...