Как Работает Модуль Цикл Работы


Я действительно не понимаю, как работает модульное деление. Я рассчитывал 27 % 16 и заканчивается 11 и я не понимаю, почему.

Я не могу найти объяснение в терминах непрофессионала в интернете. Может ли кто-нибудь рассказать на очень высоком уровне о том, что здесь происходит?

17 80

17 ответов:

результат a деление по модулю это остаток от целочисленное деление из приведенных цифр.

это значит:

27 / 16 = 1, remainder 11
=> 27 mod 16 = 11

другие примеры:

30 / 3 = 10, remainder 0
=> 30 mod 3 = 0

35 / 3 = 11, remainder 2
=> 35 mod 3 = 2

большинство объяснений пропустить один важный шаг, давайте заполнить пробел, используя другой пример.

учитывая следующее:

Dividend: 16
Divisor: 6

The функция модули выглядит так:

16 % 6 = 4

давайте определим, почему это так.

во-первых, проанализировать целочисленное деление, который похож на нормальное деление, за исключением любого дробного числа (a.k.a. остаток) является отброшено:

16 / 6 = 2

затем, умножение результат вышеуказанного деления (2) С делитель (6):

2 * 6 = 12

наконец, вычесть в результате умножения (12) из нашего дивиденды (16):

16 - 12 = 4

результат этого вычитания, 4 на остаток, это тот же результат нашего модуль выше!

возможно, пример с часами может помочь вам понять модуль.

привычным использованием модульной арифметики является ее использование в 12-часовых часах, в которых день разделен на два 12-часовых периода.

допустим, у нас есть в настоящее время на этот раз: 15:00
Но вы также можете сказать, что это 3 часа

это именно то, что делает модуль:

15 / 12 = 1, remainder 3

вы найдете этот пример лучше объяснить на Википедия: Википедия По Модулю Статья

простая формула для расчета модуля :-

[Dividend-{(Dividend/Divisor)*Divisor}]

Итак, 27 % 16: -

27- {(27/16)*16}

27-{1*16}

ответ= 11

Примечание:

все вычисления с целыми числами. В случае десятичного отношения часть после десятичного числа должна быть проигнорирована / усечена.

например: 27/16= 1.6875 должно быть принято как только 1 в вышеупомянутой формуле. 0.6875 это игнорируемый.

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

оператор модуля принимает оператор деления и возвращает все, что осталось от этого вычисления, "оставшиеся" данные, так сказать, такие как 13 / 5 = 2. Это означает, что осталось 3 или осталось от этого расчета. Зачем? потому что 2 * 5 = 10. Таким образом, 13 - 10 = 3.

оператор модуля делает все вычисления для вас 13 % 5 = 3.

модуль деления просто так: разделить два числа и вернуть только остаток

27 / 16 = 1 с 11 осталось, поэтому 27 % 16 = 11

то же самое 43 / 16 = 2 с 11 осталось так 43% 16 = 11 тоже

очень просто: a % b определяется как остаток от деления a by b.

посмотреть статья в Википедии для получения дополнительных примеров.

Я надеюсь, что эти простые шаги помогут:

20 % 3 = 2 
  1. 20 / 3 = 6; не включают .6667 – просто игнорировать его
  2. 3 * 6 = 18
  3. 20 - 18 = 2, который является остатком от деления

модуль деления дает вам остаток от деления, а не фактор.

Допустим, у вас есть 17 mod 6.

что в общей сложности 6 даст вам ближе всего к 17, это будет 12, потому что если вы перейдете через 12 у вас будет 18, что больше, чем вопрос 17 mod 6. Затем вы возьмете 12 и минус от 17, которые дадут вам ваш ответ, в этом случае 5.

17 mod 6=5

модуль деления довольно просто. Он использует остаток вместо частного.

    1.0833... <-- Quotient
   __
12|13
   12
    1 <-- Remainder
    1.00 <-- Remainder can be used to find decimal values
     .96
     .040
     .036
     .0040 <-- remainder of 4 starts repeating here, so the quotient is 1.083333...

13/12 = 1R1, ergo 13%12 = 1.


это помогает думать о модуле как о "цикле".

другими словами, для выражения n % 12, результат всегда быть

это означает последовательность для набора 0..100 на n % 12 - это:

{0,1,2,3,4,5,6,7,8,9,10,11,0,1,2,3,4,5,6,7,8,9,10,11,0,[...],4}

в этом свете модуль, а также его использование, становится много более ясный.

проще, когда ваше число после десятичной (0.xxx) коротко. Тогда все, что вам нужно сделать, это умножить это число на число после деления.

пример: 32 % 12 = 8

ты 32/12=2.666666667 Тогда вы бросаете 2 прочь, и сосредоточьтесь на 0.666666667 0.666666667*12=8

(опять же, только легко, когда число после десятичной короткая)

Я хотел бы добавить еще одно:

легко вычислить по модулю, когда дивиденд больше / больше, чем делитель

дивиденды = 5 делитель = 3

5 % 3 = 2

3)5(1
  3
-----
  2

но что, если делитель меньше делимого

дивиденды = 3 делитель = 5

3 % 5 = 3 ?? как

это потому, что, поскольку 5 не может разделить 3 напрямую, по модулю будет какой дивиденд это

Это просто, оператор модуля (%) возвращает остаток после целочисленного деления. Давайте возьмем пример вашего вопроса. Как 27 % 16 = 11? Когда вы просто делите 27 на 16 т. е. (27/16), то вы получаете остаток как 11, и именно поэтому ваш ответ 11.

выпишите таблицу, начиная с 0.

{0,1,2,3,4}

продолжить таблицу в строках.

{0,1,2,3,4}
{5,6,7,8,9}
{10,11,12,13,14}

все в столбце один кратно 5. Все в колонке 2 является a кратно 5 с 1 в качестве остатка. Теперь абстрактная часть: вы можете написать что (1) Как 1/5 или как десятичное расширение. Оператор модуля возвращает только столбец, или по-другому думая, он возвращает остаток на долго деление. Вы имеете дело с модулем (5). Другой модуль, различные стол. Подумайте о хэш-таблице.

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

A / B =Q остаток R

a-дивиденд; B-делитель; Q-частное, а R-остаток

иногда нас интересует только то, что остается, когда мы делим A на B. Для этих случаев существует оператор, называемый оператором по модулю (сокращенно mod).

примеры

16/5= 3 Remainder 1  i.e  16 Mod 5 is 1.
0/5= 0 Remainder 0 i.e 0 Mod 5 is 0.
-14/5= 3 Remainder 1 i.e. -14 Mod 5 is 1.

посмотреть Академия Хана Статья для получения дополнительной информации.

в информатике хэш-таблица использует оператор Mod для хранения элемента, где A будет значениями после хэширования, B будет размером таблицы, а R-количеством слотов или ключом, в который вставляется элемент.

посмотреть как работает хэш-таблица работает для получения дополнительной информации

это был лучший подход для меня для понимания оператора модуля. Я просто объясню вам на примерах.

16 % 3

когда вы делите эти два числа, остаток является результатом. Это путь, как я это делаю.

16 % 3 = 3 + 3 = 6; 6 + 3 = 9; 9 + 3 = 12; 12 + 3 = 15

Итак, что осталось до 16-это 1

16 % 3 = 1

вот еще один пример: 16 % 7 = 7 + 7 = 14 что будет в 16? Это 216 % 7 = 2

еще один:24 % 6 = 6 + 6 = 12; 12 + 6 = 18; 18 + 6 = 24. Так что остаток равен нулю, 24 % 6 = 0