2013-05-01 6 views
10

간단한 질문인데 사과하지만 첫 번째 숫자가 두 번째 숫자보다 작 으면 모듈러스 분할 개념을 이해하는 데 문제가 있습니다. 예를 들어, 1 % 4 내 책은 나머지가 1이라고 말합니다. 나는 1이 1 %의 나머지임을 이해하지 못합니다.1/4는 0.25입니다. 모듈러스 부분을 잘못 생각하고 있습니까?첫 번째 숫자가 두 번째 숫자보다 작 으면 모듈레이션 나누기

답변

10

먼저 Java에서 %는 약간 다른 의미를 가진 나머지 (모듈러가 아닌) 연산자입니다. 그렇다면 분수 값이없는 것처럼 정수 전용 나누기 관점에서 생각해야합니다. 분할 할 수없는 항목을 저장하는 것으로 생각하십시오. 전체 용량 1의 저장소에 크기 4의 항목을 저장할 수 있습니다. 최대 항목 수를 저장 한 후 남은 용량은 1입니다. 마찬가지로 크기 13의 저장소에 크기 5의 2 개의 완전한 항목을 넣을 수 있으므로 13 % 5는 3이며 나머지 용량은 13 - 2*5 = 3입니다.

+0

이니 남은 구분은 이해합니다 첫 번째 숫자는 두 번째 숫자보다 큽니다. 그래서 나는 13 % 5가 3 인 방법을 얻었습니다. 이해가 안되는 것은 5 % 13 일 때의 답이 될 것입니다. –

+0

항목이 용량보다 큰 경우 저장소에 저장할 수 없습니다. 따라서 결과는 항상 사용되지 않은 채로 남아 있습니다 (즉, 첫 번째 숫자 - 아마도 '5 % 13'을 의미합니다). – misberner

+0

예 5 % 13을 의미했지만 그 반대가 아닙니다. 그래서 만약 당신이 5 % 13에 대한 대답이 5라고 말하면 어떻게됩니까? 그 맞습니까? –

4

1을 4로 나누면 나머지 1은 0이되고 나머지는 모두 나눗셈이됩니다.

+0

될 것입니다 무엇 40 %이면 –

+0

@ yanivx 동일 물건, 0 나머지 40이므로 4 –

2

숫자를 다른 숫자의 배수로 표현한 또 다른 방법입니다. 즉, a = n*b + r, 여기서 b>r>=0. 이런 의미에서 케이스는 1 = 0*4 + 1입니다. (편집 : 양수 만 이야기) 나는 당신이 %(Remainder)/(Division) 사업자 사이의 혼란 생각

0

.

%라고 말하면 나머지 0 또는 끝을 얻을 때까지 배당금을 나누어야합니다. 그리고 결국 당신이 얻는 것은 Remainder입니다. 당신이 /을 말할 때 제수가 1이된다 그리고 첫 번째 숫자는> 경우 당신이 얻을 최종 제품은, 계수에서 을 물건을 취소 Quotient

0

또 다른 좋은 방법을 호출 될 때까지

, 당신은 배당금을 분할 두 번째 숫자는 첫 번째 숫자가 두 번째 숫자보다 작아 질 때까지 첫 번째 숫자에서 두 번째 숫자를 뺍니다.

17 % 5 = ? 
17 - 5 = 12 
12 % 5 = ? 
12 - 5 = 7 
7 % 5 = ? 
7 - 5 = 2 
2 % 5 = 2 

따라서 17 % 5 12 % 5, 7 내지 5는 모두 2 의 답을이 때문에 5분의 2 = 0으로 나머지 2 (정수로 작업 할 때).

0

나는 "Jean-Bernard Pellerin"이 이미 말한 것에 좀 더 실제적인 예를 추가 할 것입니다.

1을 4로 나누면 0이되지만, 1을하면 왜 4가 될까요?

n = a/b (integer), and 
m = a % b = a - (b * n) 

그래서,

a b n = a/b b * n m = a%b 
1 4  0  0  1  
2 4  0  0  2 
3 4  0  0  3 
4 4  1  0  0 
5 4  1  4  1 

결론 :

는 기본적으로 인해이있는 < B 동안, % b의 결과가 "A"