Я смущен логикой 1% 2
будет 1. Потому что из того, что я знаю, 1/2 - , так что для этого нет остатка.Почему 1% 2 равно 1?
ответ
2 * 0 0 , следовательно, остаток 1
если вопрос состоит в нахождении M% N
мы находим наименьшее или равно д, таких, что п * (некоторое целое число) = Q и д = < м мы затем найти (MQ), который является остатком ..
%
возвращает остаток от a/b
:
>>> 1 % 2
1
>>> 1/2
0
>>> 1 - 0
1
Кроме того, выражение по модулю может быть выражена как:
r = a - nq
где д floor(a/n)
. Итак:
>>> import math
>>> 1 - 2 * math.floor(1/2)
1.0
Ahh yeah ~~ спасибо за терпение, объясняющее этот глупый вопрос ~ –
@ErikaSawajiri Ха-ха, у всех нас есть тот момент: p – TerryA
Конечно, есть остаток. Сколько 2-х вы можете выбраться из 1? 0 из них, с 1 слева.
Что оператор %
делает:
a % b
равно значение c
таких как 0 <= c < b
и существует ряд k
так, что b * k + c = a
.
% - оператор modulo. Он возвращает остаток после деления левой стороны на правую сторону. Так как 2 делит нулевые моменты на 1, остаток равен единице.
В общем случае, если a и b - целые положительные числа и < b, то a% b == a.
Аргументы не обязательно должны быть целыми. Более подробно можно получить в справочной документации Python (http://docs.python.org/2/reference/expressions.html):
Значение% (по модулю) оператор дает остаток от деления первого аргумента на второй. Числовые аргументы сначала преобразуются в общий тип. Аргумент zero right вызывает исключение ZeroDivisionError. Аргументами могут быть числа с плавающей запятой, например, 3,14% 0,7 равно 0,34 (поскольку 3,14 равно 4 * 0,7 + 0,34.) Оператор по модулю всегда дает результат с тем же знаком, что и его второй операнд (или нуль); абсолютное значение результата строго меньше абсолютного значения второго операнда [2].
Целочисленное деление и операторы по модулю связаны следующим образом: x == (x/y) * y + (x% y). Целочисленное деление и модуль также связаны со встроенной функцией divmod(): divmod (x, y) == (x/y, x% y). Эти значения не сохраняются для чисел с плавающей запятой; аналогичные тождества имеют место, где x/y заменяется на пол (x/y) или пол (x/y) - 1 [3].
Ok, ответ был размещен как в 6 раз уже, просто добавив это для полноты картины, если есть один способ понять, по модулю (%
), это преобразование от основания 10 к основанию 2, 1 не могут быть разделены на 2, поэтому мы оставляем его в покое (получите остаток от 1). Вы можете представить, что двоичные числа в третьем столбце являются результатами операции по модулю.
например. 9 (основание 10) - (основание 2).
2 | 9 | 1
2 | 4 | 0
2 | 2 | 0
2 | 1 | 1
- 1. Почему FrameLength равно -1?
- 2. Почему ~ -1 равно 0 и ~ 1 равным -2?
- 3. Почему _XBEGIN_STARTED равно -1?
- 4. Java Строка конкатенация дает выход как 2 равно 11 на CONCAT 1 + 1 + "равно" + 1 + 1
- 5. Почему "echo [# 10]" равно 1?
- 6. Почему «1» - «1» возвращает 2?
- 7. Почему - ~ x равно x + 1?
- 8. 1 предположительно не равно 1
- 9. Почему 1 | 0,2 | 0 равно 2 в JavaScript?
- 10. Как это сделать? Если n равно 3, верните `1 + .. 1 + 2 + .. 1 + 2 + 3 + ..` "
- 11. Почему toList (1, 2) == [2]
- 12. Почему короткий (-1) не равно -1 в C#
- 13. Почему значение 1 ** Inf равно 1, а не NaN?
- 14. Почему unsigned int 0xFFFFFFFF равно int -1?
- 15. Почему значение в столбце всегда равно 1?
- 16. Почему (1-x) (1 + x) предпочтительнее (1-x^2)?
- 17. Python: `1 + 1j == (1 + 1j)` но `1 + 1j.imag == 2`, почему?
- 18. Почему сложность (1/2 + 1/3 + 1/5 + ...) = loglogN?
- 19. Почему memcmp возвращает -1, хотя равно
- 20. Почему INT_MAX минус INT_MIN равно -1?
- 21. Почему 0,1 * 10-1 не равно 0?
- 22. Почему {10 + '1'} + 10 равно 10?
- 23. 1 + 1/2 + 1/3 + --- + 1/n =?
- 24. Rails Rspec integer равно string ("1" == 1)
- 25. Как-то 1 не равно 1 (PHP)
- 26. UINT_MAX + 1 равно что?
- 27. Почему 1 === 1 === 1 false?
- 28. Почему (список + 1 2) принимает значение ('(+ 1 2) 1 2) в Common Lisp
- 29. (false - NOT (0)) равно 1?
- 30. Почему 0 && 1 равно 1, а 1 && 0 - 0 в рубине?
Знаете ли вы, что возвращает оператор модуля? – squiguy
3/2 - 1 остаток 1. 2/2 равно 1 остатка 0. 1/2 равно 0 остатка 1. 0/2 равно 0 остатка 0. – Patashu
https://en.wikipedia.org/wiki/Modulus_operator – BrenBarn