본문 바로가기
728x90
반응형

전체 글249

[정수론] 디오판토스 방정식 (Diophantine equation) 디오판토스 방정식 ($ax + by = c$)정수를 계수로 갖는 방정식의 정수해를 구하는 문제를 디오판토스 방정식 (또는 부정방정식)이라 한다.요즘에도 그런지 모르겠는데, 필자가 고등학생일때 수학의 정석에 간단한 경우(상황이 특수한 경우)에 소개되어있다.정수론에서 보다 일반적인 방법으로 이 방정식을 푸는 방법을 소개한다.$a, b, c \in \mathbb{Z}$이고 (적어도 하나는 $0$이 아니다.) $d=\gcd(a, b)$라 하자. 이 때,(1) 방정식 $ax + by = c$의 해가 존재하기 위한 필요충분조건은 $d \mid c$ 이다.(2) $x_0, y_0$가 $ax + by = c$의 특수해(particular solution)일 때, 일반해는 다음과 같다.\[ x = x_0 + \bigg(.. 2024. 8. 19.
[정수론] 소수와 관련된 알고리즘 (소수 판정, 에라토스테네스의 체, 오일러 피 함수) 소수, 에라토스테네스의 체, 표준분해, 오일러 피 함수소수와 합성수 (primes and composites)소수: $1$과 자기 자신만을 약수로 가지는 수이다. 영어로 prime number라 하기 때문에 보통 $p$로 표기한다.합성수: $1$보다 큰 자연수 중에서 소수가 아닌 수. 약수의 개수가 3개 이상이다.※ $1$은 소수도 아니고 합성수도 아닌 수이다. $1$을 소수로 분류하면 소인수분해가 유일하지 않기 때문인 것으로 보인다.※ 소수(prime number)의 발음은 '소쑤'이고, 소수(decimal notation)의 발음은 '소:수'이다.  $p \le \sqrt{n}$인 모든 소수 $p$에 대하여 $p$의 배수가 되는 합성수들을 모두 제거한 나머지는 모두 소수이다.따라서 $n=46$의 소수.. 2024. 8. 11.
[정수론] 약수, 배수, 최대공약수, 최소공배수와 관련된 알고리즘 공약수와 최대공약수(GCD),  공배수와 최소공배수(LCM), 유클리드의 호제법 (Euclidean Algorithm)나눗셈 정리 (Division Algorithm)임의의 정수 $a, b\ (b \neq 0)$에 대하여 $a = bq + r$, $0 \le r  파이썬 코드에서는 간단히 구할 수 있다.q = a // br = a % b 약수와 배수 (divisor and multiple)두 정수 $a, b \ (b \neq 0)$에 대하여 $b=ac$를 만족하는 정수 $c$가 존재할 때, $b$를 $a$의 배수(multiple)라 하고 $a$를 $b$의 약수(divisor) 또는 인수(factor)라 한다. 이때 "$a$는 $b$를 나눈다" 또는 "$b$는 $a$에 의하여 나누어떨어진다" 라고 하고, .. 2024. 8. 10.
[정수론] 오일러의 정리, 페르마의 소정리, 중국인의 나머지 정리, 윌슨의 정리 정수론 4대 정리: 오일러의 정리, 페르마의 소정리, 중국인의 나머지 정리, 윌슨의 정리  정수론 4대정리에 대해 간단히 정리한다. 자세한 내용이나 증명은 이후 포스팅 할 예정이다.여기서는 정리의 내용과 간단한 활용방법에 대해 알아본다.페르마의 소정리 (Fermat's little theorem)정수 $a$, 소수 $p$에 대하여 다음이 성립한다.\[ a^p \equiv p \pmod{p} \]$a$가 $p$로 나누어지지 않는 경우에(즉 $p \nmid a$, $\gcd(p, a)=1$) 다음이 성립한다.\[ a^{p-1} \equiv 1 \pmod{p} \] 역은 성립하지 않는다. 즉, 소수가 아닌 합성수 $p$인 경우에도 $a^{p-1} \equiv 1 \pmod{p}$인 경우가 존재한다.이런 $p$.. 2024. 8. 6.
[conda] [PyG] torch geometric 설치 오류 (오래된 cuda version) Conda에서 pyg 설치하기 (CUDA 버전 맞추기)연구실 서버를 고쳐야 하는데 실험을 중단할 순 없으니 학과 서버를 대여하기로 했다.그래서 개발환경을 다시 설정해야하는데...연구실 GPU의 CUDA version이 달라서 완전히 똑같은 세팅을 할 순 없었다.  PyTorch 버전 확인하기구글에 torch cuda 11.1을 입력하면 Previous PyTorch Versions라고 공식 홈페이지를 찾을 수 있다. 최신 버전을 사용하기를 권장하지만, 실험 세팅이나 라이브러리 dependency 때문에 항상 최신버전을 사용할 수 없다.그런 개발자들을 위해 이곳 [1]에서 각자 환경에 맞는 torch를 찾으면 된다. cuda version이 11.1이지만, 정확히 11.1을 맞출 필요는 없다. (아마도) .. 2024. 7. 22.
최소 공통 조상 (Lowest Common Ancestor, LCA) 최소 공통 조상 (LCA) 알고리즘Problem Setup$N$개의 node로 이루어진 트리가 주어진다. (트리이므로 간선의 개수는 $N-1$개이다)$q$개의 query에 대하여 두 node사이의 거리를 계산한다. 위 그림은 백준 11437 LCA 문제이다. 1번 노드가 루트이다.6번과 11번 노드의 최소 공통 조상은 2번 노드이다. (1번 노드 역시 공통 조상이지만, 최소가 아니다.)10번과 9번 노드의 최소 공통 조상은 4번이다. 즉, LCA(10, 9) = 48번과 15번 노드의 최소 공통 조상은 1번이다. 즉, LCA(8, 15) - 1 루트노드에서 DFS/BFS 알고리즘을 통해 각 노드의 깊이를 계산하여 depth 배열에 저장한다.1의 depth는 0, 2와 3의 depth는 1, 4번~8번 노.. 2024. 7. 11.
728x90
반응형