mod   Modular Arthmetic   모듈러 연산, 모듈로 연산

(2021-08-29)

Modulo operator, 모듈러 연산자, Modular Arithmetic Expression, 모듈러 연산식


1. 모듈러 연산 (Modular Arthmetic) 이란?

  ㅇ 유한개 원소 만으로 산술 연산을 하는 것

  ㅇ 모듈로 n 연산 (Modulo-n Operation)
     - 0 부터 n-1 까지의 제한된 정수 n개 만을 사용하는 연산
        . n 이상은 다시 순환 됨 (즉, n => 0, n+1 => 1, ... 등)
        . 이렇게, 순환되는 주기 n을, 모듈로(Modulo 또는 Modulus,모듈러스) 라고 함

  ㅇ 모듈러 연산자  :  ( mod n )  
     - 그 결과값이, 항상 n 보다 작은 양의 정수 값이 됨 (0 포함)
     - 단, 결과값이 음수이면, 모듈로 값을 더해서 양수로 만듬   ☞ 아래 3항 例) 참조


2. 나눗셈 관계식, 모듈러 연산의 비교나눗셈 관계식
     - a = q x n + r (a : 피제수, n : 제수, q : 몫, r : 나머지) 
     - 결국, 2개 입력(a,n)과 2개 출력(q,r)을 갖는 4개 수 사이의 연산 관계식

     * 대부분의 프로그래밍 언어에서는, /는 몫을 구하고, %을 나머지 연산 기호로 씀

  ㅇ 모듈러 연산
     - 어떤 수를 수 n(divisor,modulus)으로 나눠 그 나머지(residue)를 구하는 연산
     - 이때, 몫(quotient)은 전혀 관심을 두지 않고 오로지 나머지에 만 관심을 둠
     - 결국, 2개의 입력(제수 n 및 피제수 a)과 1개 출력(나머지 r)을 생성하는 이항 연산

     * 한편, 대부분의 프로그래밍 언어에서는, 모듈러 연산을 지원 않고,
        . 모듈러 연산에 관한 로직을 별도로 구현해야 함
     * 즉, 모듈러 연산은, 
        . 수치 연산 결과의 즉각 활용을 위한 일반적인 프로그래밍 목적과는 달리,
        . 수학정수론,추상대수학을 이용하여, 암호화,부호화 등의 응용 영역을 갖음


3. 모듈러 연산의 例

  ㅇ 例)  11 (mod 3) = 2  또는  2 (mod 3) = 11 (mod 3)
     -  입력 11에 대해, 3을 법으로하여 mod 연산을 하면, 출력은 2 임
     -  11 이나 2 를 3 으로 나누면 나머지 2 가 되는 것이 같음 즉, 합동 임

  ㅇ 例)  −5 (mod 3) = 1
     -  나머지가 -2가 되나, 나머지는 음수가 될 수 없으므로, 모률로 값인 3 만큼 더해서 1이 됨
     -  즉, ...,-6(0),-5(1),-4(2),-3(0),-2(1),-1(2),0(0),1(1),2(2),3(0),4(1),5(2),...


4. 모듈러 2 연산, 모듈로 n 연산

  ※ ☞ mod-2 (모듈러-2 덧셈, 모듈러-2 곱셈), mod-n 참조


5. 모듈러 연산식, 합동식의 비교

  ㅇ (모듈러 연산식) b (mod n) = a,  (합동식) a ≡ b (mod n)

     -  b : 피제수 (dividend), 정수  ← 입력
     -  mod : 모듈러 연산자 (modulo operator)  ← 연산자
     -  n : 법 (法,모듈로,Modulus,Divisor), 양의 정수  ← 입력
     -  = : 등호 (Equivalence)
     -  ≡: 합동 (Congruence)
     -  a : 나머지 (Residue,Reminder), 0을 포함한 양의 정수  ← 결과

  ※ 위 관계식은 아래 표현들과 동치/동등 임

     -  `정수 a,b의 차 (a - b)가 양의 정수 n 으로 나누어 떨어짐`
        .  즉,  n | (a - b)  (☞ 약수 참조)
     -  `정수 a,b가, 양의 정수 n 으로 나누었을 때, 같은 나머지 r를 갖음`
        .  즉,  a = p n + r, b = q n + r 
     -  `n을 법(法,Modulus)으로하여 a는 b와 합동`
        .  `a is congruent to b modulo n`
        .  `two integers a,b both are congruent modulo n`
        .  `a와 b는 (mod n)에 대해 합동 또는 동치 임`
     -  a = b + k n  
        . 나눗셈관계식으로써, k는 임의 정수
     -  `n을 법으로하는 a와 n을 법으로하는 b와 같음`
        . (a mod n) = (b mod n)



Copyrightⓒ   차재복 (Cha Jae Bok)