Мне стыдно задавать такой простой вопрос. Мой срок не начинается еще две недели, поэтому я не могу спросить профессора, и ожидание убьет меня.
Почему 2 mod 4 = 2?
Мне стыдно задавать такой простой вопрос. Мой срок не начинается еще две недели, поэтому я не могу спросить профессора, и ожидание убьет меня.
Почему 2 mod 4 = 2?
Mod просто означает, что вы берете остаток после выполнения деления. Поскольку 4 переходит в 2 нулевых раза, вы получаете остаток от 2.
Modulo - это остаток, а не деление.
2 / 4 = 0R2
2 % 4 = 2
Знак %
часто используется для оператора modulo вместо слова mod
.
Для x % 4
вы получите следующую таблицу (для 1-10)
x x%4
------
1 1
2 2
3 3
4 0
5 1
6 2
7 3
8 0
9 1
10 2
Modulo (mod,%) - оператор Remainder.
2%2 = 0 (2/2 = 1 remainder 0)
1%2 = 1 (1/2 = 0 remainder 1)
4%2 = 0 (4/2 = 2 remainder 0)
5%2 = 1 (5/2 = 2 remainder 1)
Намного проще, если вы используете бананы и группу людей. Скажем, у вас есть 1 банан и группа из 6 человек, это вы бы сказали: 1 mod 6/1% 6/1 modulo 6. Вам нужно 6 бананов для каждого человека в группе, чтобы быть сытым и счастливым. Итак, если у вас тогда есть 1 банан и вам нужно поделиться им с 6 людьми, но вы можете делиться только тем, что у вас есть 1 банана для каждого члена группы, то есть 6 человек, тогда у вас будет 1 банан (остаток, который не предоставляется никому в группа), то же самое касается 2 бананов. Тогда у вас будет 2 банана в качестве остатка (ничего не используется). Но когда вы получаете 6 бананов, тогда вы должны быть счастливы, потому что тогда для каждого участника в группе из 6 человек есть 1 банан, а остальное - 0 или нет бананов, когда вы делили все 6 бананов на 6 человек. Теперь, для 7 бананов и 6 человек в группе, у вас тогда будет 7 mod 6 = 1, это потому, что вы дали 6 человек по 1 банану каждый, а 1 банан - это остаток. Для 12 модов 6 или 12 бананов, разделенных на 6 человек, каждый из них будет иметь два банана, а остальное - 0.
Надеюсь, вам понравится =)
2/4 = 0 с остатком 2
Кто-то связался со мной и попросил меня более подробно объяснить мой ответ в комментарии к вопросу. Итак, вот что я ответил этому человеку, если он может помочь кому-либо еще:
Операция modulo дает вам остальную часть евклидова (который работает только с целыми, а не с реальными числами). Если у вас такой A что A = B * C + D (с D < B), то частное от евклидова деления A через B есть C, а остаток равен D. Если вы разделите 2 на 4, то фактор 0, а остаток равен 2.
Предположим, что у вас есть объекты A (которые вы не можете разрезать). И вы хотите распределяет одинаковое количество этих объектов для людей B. Так долго как у вас больше B объектов, вы даете каждому из них 1 и повторяете. Когда у вас меньше объектов B, вы остановитесь и сохраните оставшиеся объекты. Количество времени, которое вы повторили операцию, давайте назовите это число C, является частным. Количество объектов, которые вы храните на конец, пусть называют его D, является остатком.
Если у вас есть 2 объекта и 4 человека. У вас уже меньше 4 объекты. Поэтому каждый человек получает 0 объектов, и вы сохраняете 2.
Вот почему 2 по модулю 4 равно 2.
Я тоже смутился об этом, всего несколько минут назад. Затем я сделал разделение долгое время на листе бумаги, и это имело смысл:
Что касается компьютера, который возьмет эту проблему. Компьютер останавливается там и возвращает 2, что имеет смысл с тех пор, о чем просит "%" (mod).
Мы были обучены вставлять десятичные числа и продолжать движение, поэтому это может быть неразумным вначале.
Оператор modulo вычисляет остальную часть деления двух целых операндов. Вот несколько примеров:
23 % 10 evaluates to 3 (because 23/10 is 2 with a remainder of 3)
50 % 50 evaluates to 0 (50/50 is 1 with a remainder of 0)
9 % 100 evaluates to 9 (9/100 is 0 with a remainder of 9)
mod означает переработку при делении на. Таким образом, 2, разделенные на 4, равны 0 с 2 оставшимися. Поэтому 2 mod 4 равен 2.
Modulo - это остаток, выраженный как целое число, выражения математического деления.
Итак, скажем, у вас есть пиксель на экране в позиции 90, где экран имеет ширину 100 пикселей и добавляет 20, он обернется в положение 10. Почему... потому что 90 + 20 = 110, поэтому 110% 100 = 10.
Чтобы понять это, я считаю, что modulo является целым представлением дробного числа. Кроме того, если вы выполняете выражение назад и обрабатываете остаток как дробное число, а затем добавляете его в делитель, он даст вам свой первоначальный ответ.
Примеры:
100
(A) --- = 14 mod 2
7
123
(B) --- = 8 mod 3
15
3
(C) --- = 0 mod 3
4
Реверсирован для:
2 14(7) 2 98 2 100
(A) 14 mod 2 = 14 + --- = ----- + --- = --- + --- = ---
7 7 7 7 7 7
3 8(15) 3 120 3 123
(B) 8 mod 3 = 8 + --- = ----- + --- = --- + --- = ---
15 15 15 15 15 15
3 3
(B) 0 mod 3 = 0 + --- = ---
4 4
Как и все упомянутые выше замечания, это факт, что его остаток.
Я просто хотел поставить 2 пенса на то, где я использую ключевое слово "mod" alot в xsl
Получить таблицу html со строками, которые имеют альтернативные цвета (красный, синий, красный, синий, красный и т.д.)
Я использую
<!-- if the rows position is a even number then give it a class of red -->
<xsl:if test="position() mod 2 = 0">
<xsl:attribute name="class">
red
</xsl:attribute>
</xsl:if>
.....
<tr>
<tr class="red">
<tr>
<tr class="red">
<tr>
<tr class="red">
Когда вы разделите 2 на 4, вы получите 0 с 2 оставшимися или оставшимися. Modulo - это просто остаток после деления числа.
Я думаю, вы запутались в том, как читается модульное уравнение.
Когда мы пишем уравнение деления, такое как 2/4
, мы делим 2 на 4.
Когда написано уравнение по модулю, такое как 2 % 4
, мы делим 2 by 4
(думаем 2 над 4) и возвращаем остаток.
MOD - оператор останова. Вот почему 2 mod 4 дает 2 в качестве остатка. 4 * 0 = 0, а затем 2-0 = 2. Чтобы сделать его более ясным, попробуйте сделать то же самое с 6 mod 4 или 8 mod 3.
Это алгоритм Евклида.
например
a mod b = k * b + c = > a mod b = c, где k - целое число, а c - ответ
4 mod 2 = 2 * 2 + 0 = > 4 mod 2 = 0
27 mod 5 = 5 * 5 + 2 = > 27 mod 5 = 2
поэтому ваш ответ
2 mod 4 = 0 * 4 + 2 = > 2 mod 4 = 2
Для:
2 mod 4
Мы можем использовать эту небольшую формулу, с которой я придумал, немного подумав, может быть, она уже определена где-то, что я не знаю, но работает для меня, и ее действительно полезно.
A mod B = C
где C - ответ
K * B - A = |C|
где K - сколько раз B вписывается в A
2 mod 4
будет:
0 * 4 - 2 = |C|
C = |-2| => 2
Надеюсь, это сработает для вас:)
Это называется модульной арифметикой.
a==b(mod m)
then m|(a-b)
a-b=km
a=b+km
So, 2=2+0*4
Чтобы ответить по модулю x % y
, вы задаете два вопроса:
A- Сколько раз y
входит в x
без остатка? Для 2% 4 это 0.
B- Сколько нужно добавить, чтобы получить от этого обратно до x
? Чтобы вернуться от 0 к 2, вам нужно 2-0, то есть 2.
Их можно суммировать в одном вопросе, например, так: Сколько вам нужно будет добавить к целочисленному результату деления x
на y
, чтобы вернуться к x
?
Под целочисленным пониманием подразумеваются только целые числа, а не дроби, представляющие интерес.
Остаток от дробного деления (например,. 283849) не представляет интереса по модулю, поскольку по модулю имеет дело только с целыми числами.
Для визуального способа подумать об этом, изобразите циферблат, который в вашем конкретном примере будет идти только до 4 вместо 12. Если вы начинаете с 4 на часах (что похоже на начало с нуля) и обходите он по часовой стрелке в течение 2 часов ", вы приземляетесь на 2, точно так же, как обойти его по часовой стрелке в течение 6 часов", вы также приземлитесь на 2 (6 mod 4 == 2, как 2 mod 4 == 2).
Это может быть хорошее время для упоминания функции modr(). Возвращает как целую, так и оставшуюся часть деления.
print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 % 3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
Если вы хотите прояснить свое представление о мод-операторе, я рекомендую вам посетить эту ссылку