Как работает модуль Divison

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

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

    Результатом модульного деления является остаток от целочисленного деления данных чисел.

    Это значит:

     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 

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

     16 % 6 = 4 

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

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

     16 / 6 = 2 

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

     2 * 6 = 12 

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

     16 - 12 = 4 

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

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

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

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

    Это именно то, что делает modulo:

     15 / 12 = 1, remainder 3 

    Вы найдете этот пример лучше объясненным в wikipedia: Wikipedia Modulo Article

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

     [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 на b .

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

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

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

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

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

    то, что всего 6, приблизит вас к 17, это будет 12, потому что если вы перейдете через 12, у вас будет 18, что больше того, что вопрос 17 мода 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, эрго 13% 12 = 1.


    Это помогает думать о модуле как о «цикле».

    Другими словами, для выражения n % 12 результат всегда будет <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} 

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

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

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

    А – дивиденд; B – дивизор; Q – фактор, а R – остаток

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

    Примеры

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

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

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

    См. Как работает hash-таблица для получения дополнительной информации

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

     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? Является 2 16 % 7 = 2

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

    Interesting Posts

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

    Современный способ установки флагов компилятора в кросс-платформенном проекте cmake

    Какие команды для tc-формирования, очереди и планирования?

    Запуск приложения с пользовательской комбинацией клавиш

    Как создать сетку составного компонента JSF?

    Как получить динамический массив размера c ++

    Основная версия 52 – новее, чем 51, самая высокая основная версия, поддерживаемая этим компилятором

    Жесткий диск не работает?

    Ошибки разрешения файла

    Видео, созданное с помощью изображений, воспроизводится только в VLC, но нет других игроков

    Когда метод имеет слишком много параметров?

    Как правильно обновить угловую 2 (npm) до последней версии?

    Как я могу перемещать или принудительно устанавливать программу в другое место, даже если оно не поддерживается?

    Неконстантная ссылка связана с временной ошибкой Visual Studio?

    Как заставить renderdocui.exe запустить GTAVLauncher.exe, а скрипт hook v dll находится в каталоге игр?

    Давайте будем гением компьютера.