Post

Modular Arithmetic

Modular Arithmetic 알고리즘에 대해 설명하는 페이지입니다.

Modular Arithmetic

Tags
Algorithm

Introduction

  • Definition
    • 모듈라 연산(Modular Arithmetic) 은 모듈로(Modulus) M에 도달하면 다시 0으로 돌아가는 정수들을 가지고 하는 연산을 말한다.

How to Use

  • 모듈라 덧셈, 뺄셈, 곱셈
    1
    2
    
    // 덧셈
    (a + b) % M = ((a % M) + (b % M)) % M
    
    1
    2
    
    //뺄셈
    (a - b) % M = ((a % M) - (b % M)) % M
    
    1
    2
    
    // 곱셈
    (a x b) % M = ((a % M) x (b % M)) % M
    
  • 모듈라 나눗셈
    • 모듈라 연산에서의 나눗셈 (a / b) 는 b로 나누는 대신 b의 곱셈 역원(Multiplicative inverse) 을 곱하는 방식으로 이루어진다.
    • b의 곱셈 역원은 항상 존재하는 것이 아니라, b가 M과 서로소일 때만 존재한다.
    • 프로그래밍 대회에서 출제되는 대부분의 문제에서는 M이 소수라는 사실을 고려하자.
      1
      2
      3
      
      // 나눗셈
      modInv(b, M) = b^(M - 2) % M
      (a / b) % M = (a x modInv(b, M)) % M
      

Examples

This post is licensed under CC BY 4.0 by the author.