채널톡 아이콘

인프런 커뮤니티 질문&답변

태태님의 프로필 이미지

작성한 질문수 3

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

1-O

1-o 모듈러 연산 질문

해결된 질문

작성

·

22

0

"모듈러 연산은 마지막에 한 번만 수행하는 것과 중간중간 수행하는 것이 결과적으로 동일하다."
라는 설명은, 아래 모듈러 연산의 성질을 이용하여 acnt, b1로 가정했을 때를 의미하는 것인가요?

1. [(a mod n)*(b mod n)] mod n = (a*b) mod n

"덧셈과 곱셈으로 이루어진 연산에서 cnt %= n을 수행하면 된다" 라는 설명이 다소 헷갈려 질문드립니다.

답변 2

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 태태님 ㅎㅎ

acnt, b1로 가정했을 때를 의미하는 것인가요?

-> A, B 가 cnt, 1 가 아니여도 모듈러 연산은 됩니다. 혹시 다른 것을 물어보시는 걸까요?

 

감사합니다.

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

태태님이 문의하신 모듈러 연산의 성질은 알고리즘 문제에서 매우 중요하며, 특히 수학적인 계산에서 자주 활용됩니다. 요청하신 개념은 모듈러 연산의 기본적인 성질이라고 볼 수 있습니다.

  1. 모듈러 연산의 기본 성질:

    • 모듈러 연산은 (a * b) % n 에서 abn으로 나눈 나머지로 계산해도 최종 결과는 동일합니다. 이는 [(a mod n) * (b mod n)] mod n = (a * b) mod n이라는 법칙 때문입니다.
    • 따라서, 큰 수의 곱셈이나 덧셈을 다룰 때, 계산 중간에 모듈러 연산을 적용하면 오버플로를 방지하고 최적의 연산 속도를 유지할 수 있습니다.
  2. 덧셈 예시:

    • (a + b) % n = [(a % n) + (b % n)] % n 입니다. 이 성질을 이용하면 큰 수의 연산을 할 때도 중간 결과를 n으로 나눈 나머지를 사용하는 방법으로 결과를 동일하게 유지할 수 있습니다.

태태님께서 궁금해하시는 점은 주어진 cnt에 대해 중간중간 모듈러 연산을 수행하면 마지막에 한 번만 수행하는 것과 결과적으로 동일하다는 것입니다. 이는 위에서 설명한 모듈러 연산의 성질 덕분입니다.

질문에서의 상황에 맞는 관련 강의 내 설명을 참고하거나 추가적인 도움이 필요하시다면 해당 게시판에서 더 많은 답변을 찾아보시는 것도 추천드립니다.

관련하여 참고할 수 있는 유사한 질문들:
- 모듈러 연산 설명 오류가 있는 것 같습니다!! - 이 게시물은 모듈러 연산의 정의에 관해 추가적인 설명을 제공합니다.
- 1-O 의 코드가 직관적이지 않은 것 같습니다. - 모듈러 연산의 실제 코드 적용에 대한 다른 수강생의 질문과 답변을 포함하고 있습니다.

저는 태태님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해 드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.