답변:
모듈로 (mod, %)는 나머지 연산자입니다.
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 개의 바나나가 있고 나머지 6 명이 바나나를 6 명이 공유 할 때 남은 바나나가 없기 때문에 행복해야합니다.
이제 바나나 7 명과 그룹 6 명에 7 mod 6 = 1
대해 6 명씩 바나나 1 개를 주었으므로 나머지는 1 명입니다.
들어 12 mod 6
육명에서 공유 바나나 또는 12, 각각 두 개의 바나나를 가질 것이며, 나머지는 0이다.
불과 몇 분 전에 이것에 대해서도 혼란 스러웠습니다. 그런 다음 한 장의 종이에 오랫동안 손을 댔습니다.
그것은 컴퓨터가이 문제를 겪는 한입니다. 컴퓨터는 거기서 멈추고 2를 반환하는데, 이는 "%"(mod)가 요구하는 것이므로 의미가 있습니다.
우리는 십진수를 넣고 계속 진행하도록 훈련 받았으므로 이것이 처음에는 반 직관적 일 수 있습니다.
누군가 저에게 연락하여 질문에 대한 의견에 대한 답변을 자세하게 설명해달라고 요청했습니다. 그래서 여기 다른 사람을 도울 수 있도록 그 사람에게 내가 대답 한 내용이 있습니다.
모듈로 연산은 나머지 유클리드 분비물 (실수가 아닌 정수로만 작동)을 제공합니다. A = B * C + D (D <B)와 같은 A가있는 경우 A를 B로 유클리드 나누기의 몫은 C이고 나머지는 D입니다. 2를 4로 나누면 몫은 0이고 나머지는 2입니다.
자르지 못하는 A 개체가 있다고 가정합니다. 그리고 같은 양의 객체를 B 사람들에게 배포하려고합니다. B 개 이상의 객체가있는 한 각 객체에 1을 부여하고 반복합니다. B 개 미만의 개체가 남아 있으면 나머지 개체를 중지하고 유지합니다. 작업을 반복 한 횟수는 숫자 C라고 부르겠습니다. 마지막에 유지하는 객체의 수는 D라고합시다.
2 개의 물건과 4 명의 사람이 있다면. 이미 4 개 미만의 개체가 있습니다. 따라서 각 사람은 0 개의 객체를 얻고 2를 유지합니다.
이것이 2 모듈로 4가 2 인 이유입니다.
모듈로는 수학 나누기 표현식의 나머지로, 정수로 표현됩니다.
따라서 화면의 너비가 100 픽셀이고 위치에 20을 더한 위치 90의 화면에 픽셀이 있다고 가정하면 위치 10으로 줄 바꿈됩니다. 이유는 90 + 20 = 110이므로 110 % 100 = 10입니다.
나를 이해하기 위해 모듈러스는 분수의 정수 표현이라고 생각합니다. 또한 식을 거꾸로하고 나머지를 분수로 처리 한 다음 제수에 더하면 원래의 답이됩니다.
예 :
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
모듈로에 응답하려면 x % y
두 가지 질문을합니다.
A- 잔여없이 몇 번이나 y
들어갑니다 x
? 2 % 4의 경우 0입니다.
B- 당신이 그것을 다시 얻기 위해 얼마나 더해야 x
합니까? 0에서 2로 돌아가려면 2-0, 즉 2가 필요합니다.
이것들은 하나의 질문에 요약 될 수 있습니다 :로 나누기 위해 x
by 의 나눗셈의 정수 -ish 결과에 얼마를 더해야 합니까?y
x
정수 -ish는 정수만을 의미하며 관심있는 분수는 아닙니다.
모듈로는 정수만 다루기 때문에 분수 분할 나머지 (예 : .283849)는 모듈로에 관심이 없습니다.
시각적으로 생각할 수 있도록 특정 예제에서 12 대신 4로만 움직이는 시계 문자판을 그려보십시오. 시계에서 4에서 시작하여 (0에서 시작하는 것과 같음) 시계 방향으로 돌아 가면 2 "시간", 당신은 2에 착륙합니다. 6시 방향으로 시계 방향으로 돌아가는 것처럼 2 "시간"도 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")
2 = 0 * 4 + 2
.