Я возился с modulo-операцией в python, и я понимаю, что он вернет то, что осталось.
Но что, если первое число меньше второго?
например
2% 5 ответ равен 2.
Как это работает?
2/5 =.4
Я возился с modulo-операцией в python, и я понимаю, что он вернет то, что осталось.
Но что, если первое число меньше второго?
например
2% 5 ответ равен 2.
Как это работает?
2/5 =.4
Помогает ли это
22 % 5 = 2
17 % 5 = 2
12 % 5 = 2
7 % 5 = 2
2 % 5 = 2
Возможно, это
22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7 / 5 = 1 + 2/5
2 / 5 = 0 + 2/5
пять переходит в 2 нулевых раза.
5 * 0 = 0
2-0 = 2.
ответ 2
2, деленное на 5 (целочисленное деление), равно 0 с остатком от 2.
2 = 0 x 5 + 2
например, 2% 5 ответ равен 2. Как это работает? 2/5 =.4!
Modulo по сути производит целочисленный результат, тогда как разделение может быть целым или с плавающей запятой. Ваше наблюдение, что 2/5 равно 0.4, означает, что вы думаете о плавающей точке. В этом случае сама .4 остальная, выраженная по-разному. Неотъемлемой частью "0,4" является "0", а остальная часть - ".4". Остальная часть операции целочисленного деления - это точно то же самое, что и дробная (или "десятичная", в разговорной терминологии) часть операции с плавающей запятой, просто выраженная по-разному.
Дробная часть вашего примера 0.4, может быть выражена как 0,4 или 2/5 (две пятых); в любом случае это одно и то же. Заметим, что когда он записывается как 2/5, знаменатель (делитель) дробной части совпадает с знаменателем (делителем) исходной задачи, а числитель (дивиденд) дробной части - это то, что называется "остаток" в целочисленном делении. Как бы вы ни смотрели на это, дробная часть частного и остатка представляет одно и то же (часть дивиденда, которая не может быть разделена равномерно на divisor), просто выраженный по-разному.
На самом деле ужинам легко найти результаты по модулю, когда первое число меньше. Результат всегда равен первому (меньшему) числу
3 % 5 = 3
5 % 10 = 5
78 % 112 = 78
Попробуйте сами.
Вы можете думать об этом как 2/5 = 0 с остатком 2 из 5.
Если первое число меньше, то ответ снова - это первое число.
Поскольку второе число больше, оно "входит" в первое число ноль раз, а остаток представляет собой целое число.
редактировать: возвращаясь к этой теме, я должен был вспомнить, для чего этот оператор. Я ссылался на эту другую тему здесь:
Числитель в остальном - это ваш модульный ответ, независимо от того, является ли числитель больше или меньше знаменателя.
12 % 5 = 2 , because 12 / 5 = 2 and **2**/5
9 % 2 = 1 , because 9 / 2 = 4 and **1**/2
Это может иметь смысл.
5 % 89 = 5 , because 5 / 89 = 0 and **5**/89
5 % 365 = 5 , because 5 / 365 = 0 and **5**/365
5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
Еще одна вещь, которую следует отметить, состоит в том, что если первое число (a) является отрицательным числом, ответ всегда является разницей второго номера с первым числом (n-a).
Пример: a% n
Если оба числа были отрицательными, ответ всегда будет отрицательным числом, равным меньшему числу.
a% b = a, если a < б
a%b = a/b=c,
c*b=d,
a-d=modulo;
Это то, что делает python, в то время как mod два числа или так я думаю. По модулю между меньшим числом и большим числом всегда будет меньшее число.
MOD не работает с десятичным... MOD (A, B) u хочет получить результат, где A
Нет числа, которое умножило бы 5
, чтобы приблизить вас к 2
.
Другими словами, x
должно быть 0
для удовлетворения уравнения: 5*x + r = 2
.
Чтобы понять модульную арифметику, я предлагаю вам перейти в Академию Хана и прочитать их пост об этом. У них также есть интерактивные вопросы практики на той же странице. Вот ссылка: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
Короче:
Используйте следующее уравнение:
A = BQ + R
А это дивиденд
B является делителем
Q является частным
R - остаток, и является результатом для модуля.
Q = (A/B)
Имейте в виду, что Q всегда идет к ближайшему наименьшему целому числу. Так что если Q = 0,2, то Q = 0,0. Если Q = -1.2, то Q = -2.0.
На ваш вопрос:
Q = (2/5) = 0,4, поэтому Q = 0.
Вставьте это в 'A = BQ + R':
2 = 5 * 0 + R
Итак, R = 2.
Надеюсь это поможет. Как я уже сказал, вы можете прочитать больше об Академии Хана. Вот ссылка: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-is-modular-arithmetic
Модуль (%) находит остаток (то, что у вас осталось) после того, как вы полностью разделите одно число на другое.
Если вы попытаетесь 2% 5, ответ будет 2, потому что 5 входит в 2, 0 раз. Таким образом, вы остаетесь с исходным значением, которое равно 2.
Вот еще один способ подумать об этом: если у вас было 5 целых яблок и вы поделили (поделили) их поровну между двумя своими двоюродными братьями, то каждый из них получит 2 яблока, и у вас останется 1 яблоко в руке.
С другой стороны (без каламбура), если вы попытались полностью (не дробно!) Разделить 2 яблока между своими пятью кузенами, вы не сможете этого сделать, и у вас останется 2 яблока в руке.