mod 연산 관련 질문

mod 연산 관련 질문

작성일 2015.03.04댓글 1건
    게시물 수정 , 삭제는 로그인 필요

저는 외국 코딩 사이트 (codeforces) 에서 활동하다 조합(combination)을 구해야 하는 문제를 보았습니다. (코딩은 컴퓨터 프로그래밍을 통해 수학 문제를 푸는 것입니다)
조합을 구하는 공식 ()은 저도 알고 있지만, 이 문제에서는 n과 r의 범위가 100000 이하로 굉장히 커서 일반적인 공식으로는 답을 구할 수가 없었습니다.
그런데 다른 사람의 풀이를 보니 다음과 같이 구했습니다.
(문제에서는 답이 너무 크기 때문에 조합을 구해 1000000007로 나눈 나머지를 구하라고 했습니다.) 
(f(i)=i!, finv(i) = 1/i!, inv()는 finv()를 구하기 위해 필요함)
저는 여기서 정수가 아닌 수에 대해 mod 연산을 하는 것이 가능한지가 궁금했습니다. 또한 inv(i)와 finv(i)를 구하는 공식(점화식)이 어떻게 만들어졌는지도 궁금해졌습니다.

중고등학생 범위에서 최대한 알기 쉽게 설명해주세요.


#mod 연산 #mod 연산자 #mod 연산 법칙 #mod 연산 분배법칙 #mod 연산 빠르게 #mod 연산 음수 #mod 연산 계산기 #mod 연산 나머지 #mod 연산 방법 #오라클 mod 연산

profile_image 익명 작성일 -

1. 먼저 Z_n을 나머지로 나눈 나머지 집합이라고 하면, 즉

Z_n={0,1,...,n-1}

이 집합에서는 modulo에  대해 삼칙연산(더하기,빼기, 곱하기)을 할수 있읍니다.

2. 1번에서 n=p (prime)이 소수이 경우 사칙연산(더하기, 빼기, 곱하기, "나누기")를 할수 있읍니다. 
(Technically, Z_p (p:prime) is called a field in which operations +,-,x,/. are available. 
See "field" in mathematics (e.g., wikipedia)).  

예를 들어 자연수 a와 소수 p에 대해 ax=1 mod p가 되는 자연수 x 를 구할 수 있읍니다. 이 x가 coding에서 
x=inv(a) mod p 입니다. 이러한 x를 구하는 알고리즘은 보통 유클리드 나누기 방법(Euclid division algorithm: a very fast algorithm)을 사용합니다. coding의 첫줄에서 사용되었읍니다.  주어진 문제에서 

X=1000000007은 소수입니다. 그래서 이 방법을 사용할 수 있습니다.

3. m이 큰수 일때 m!은 아주아주 큰 수이지만 즉 컴퓨터 알고리즘도 버거워하는 수이지만 

m!  mod n

은 그다지 컴퓨터 관점에서 큰수가 아닙니다. n보다 작은 수이니까요. 이러한 아이디어가 coding에 사용되었읍니다.

4. mod (소수)와 유클리드 알고리즘에 대해서 좀더 자세한 것은 

http://en.wikipedia.org/wiki/Modular_multiplicative_inverse

참고 하시기 바랍니다.

mod 연산 관련 질문

... 그리고 제가 이해한 mod 연산은 a mod b = a / b 의 나머지 인데 제가 잘못이해한건가요? 아니면 ed = 1 mod 160 이 e * d를 한 결과물이 160을 나누고 1이 남는다 라는...

mod 연산 관련 질문입니다.

음수와 음수, 양수와 양수, 음수와 양수, 양수와 음수에 대한 mod 연산과 그... 모듈로 연산에 대한 수학적 이론관련 문서를 보면서 좀 혼동이 오네요....

mod 연산 관련 질문

... , inv()는 finv()를 구하기 위해 필요함) 저는 여기서 정수가 아닌 수에 대해 mod 연산을 하는 것이 가능한지가 궁금했습니다. 또한 inv(i)와 finv(i)를 구하는...

mod 연산 관련 질문드려요

n이 2보다 큰 정수 일 때 a + b = 0(mod n) 이 성립한다고 하면 a = -b(mod n)으로 바꿀 수 있나요? 만약 가능하면 왜 그런지 설명해주시면 감사하겠습니다. a+b=nk라고 하면 a...

mod 연산 관련질문

... (a_key * 평문 + b_key) mod n = 암호문 y 라고 했을때, 여기서 (a_key * 평문 + b_key) mod n 이 mod 연산을 하기 전 으로 돌아가기위한 방법이 있을까요?? 제가 아는 mod(모듈러)...

mod26 관련 질문

사진 맨아래쪽에 111 128 mod 26이 이 화면 다음에 7 24로 바뀌는데 어떻게 해서 저런 값이 나오는거죠?~ mod,모듈러연산은 어떤수÷mod뒤에 붙어있는수(여기서는26)...

합동식, 모듈러 연산 질문

... mod7과 mod365를 이용하는 것에 대해서도 자세히 써주셨으면... 내공냠냠, 질문관련없는 답변, 전부 신고 하겠습니다. 합동식이라고 하지말고 모듈러 연산식이라고...