야코비 기호
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
야코비 기호는 임의의 정수 a와 양의 홀수 정수 n에 대해 정의되며, n의 소인수에 해당하는 르장드르 기호의 곱으로 계산된다. 르장드르 기호의 성질을 대부분 상속하며, 특히 이차 상호 법칙을 만족한다. 야코비 기호는 1837년 카를 구스타프 야코프 야코비에 의해 소개되었으며, 르장드르 기호보다 계산 효율성을 높이기 위해 도입되었다. 유클리드 호제법과 유사한 알고리즘을 사용하여 계산할 수 있으며, Lua 및 C++로 구현된 예시가 있다. 또한 야코비 기호는 소수성 판별에 활용될 수 있으며, 솔로베이-스트라센 소수성 검사 등 확률적 소수 판별 알고리즘의 기초가 된다.
더 읽어볼만한 페이지
- 모듈러 산술 - 이산 로그
이산 로그는 유한군에서 이산 거듭제곱의 지수를 찾는 역함수로, 소수 p를 법으로 하는 정수 모듈러 곱셈 그룹에서 계산적으로 풀기 어려운 문제이며, 현대 암호 시스템의 안전성 기반이지만 양자 알고리즘으로 효율적 해결이 가능하여 양자 내성 암호 연구가 필요하다. - 모듈러 산술 - 중국인의 나머지 정리
중국인의 나머지 정리는 여러 개의 연립 합동식의 해 존재성과 유일성에 대한 정리이며, 정수론, 대수학, 암호학 등 다양한 분야에 응용된다. - 수론 - 타원곡선
타원곡선은 체 위에서 정의되고 특이점이 없으며 종수가 1인 사영 대수 곡선으로, 유리점을 가지며, 특정 형태의 방정식으로 표현되고, 실수체 위에서는 연결 성분 개수가 판별식에 따라 달라지며, 복소수체 위에서는 원환면과 위상적으로 동형이고, 점들 간에 군 연산이 정의되어 암호학 및 정수론에 활용된다. - 수론 - 최소공배수
최소공배수는 둘 이상의 정수들의 공배수 중 가장 작은 양의 정수로서, 소인수분해나 최대공약수와의 관계를 이용하여 구할 수 있으며, 분수 통분이나 기어 회전 수 계산 등 여러 분야에 응용된다.
| 야코비 기호 | |
|---|---|
| 일반 정보 | |
| 이름 | 야코비 기호 |
| 로마자 표기 | Yakobi giho |
| 한자 표기 | 雅可比記號 |
| 정의 | |
| 기호 | (k/n) 또는 ((k/n)) |
| 조건 | n은 양의 홀수 |
| 정의 | n의 소인수분해를 n = p1^a1 * p2^a2 * ... * pr^ar 이라고 할 때, (k/n) = (k/p1)^a1 * (k/p2)^a2 * ... * (k/pr)^ar 이다. 여기서 (k/pi)는 르장드르 기호이다. |
| 성질 | |
| 성질 1 | 만약 k ≡ l (mod n) 이면, (k/n) = (l/n) 이다. |
| 성질 2 | (k/n) * (l/n) = (kl/n) |
| 성질 3 | (k/n) * (k/l) = (k/nl) |
| 성질 4 | (1/n) = 1 |
| 성질 5 | (2/n) = (-1)^((n^2-1)/8) |
| 성질 6 | (-1/n) = (-1)^((n-1)/2) |
| 성질 7 | k와 n이 서로소인 양의 홀수일 때, (k/n) * (n/k) = (-1)^(((k-1)/2)*((n-1)/2)) |
| 활용 | |
| 활용 | 제곱근 모듈로 계산의 효율성을 높이는 데 사용된다. |
2. 정의
임의의 정수 ''a''와 임의의 양의 홀수 정수 ''n''에 대해, 야코비 기호는 르장드르 기호의 곱으로 정의된다.
야코비 기호는 르장드르 기호의 성질을 대부분 상속받는다. 예를 들어, 분자 또는 분모가 고정된 경우 야코비 기호는 나머지 변수에 대해 완전 곱셈 함수이다.[2]
:
여기서
:
는 ''n''의 소인수 분해이다.
르장드르 기호는 모든 정수 ''a''와 모든 홀수 소수 ''p''에 대해 다음과 같이 정의된다.
:
빈 곱에 대한 일반적인 관례에 따라 이다.
아래쪽 인수가 홀수 소수일 때, 야코비 기호는 르장드르 기호와 같다.
3. 성질
:
:이면
또한, 야코비 기호는 이차 상호 법칙을 만족시킨다.
하지만 야코비 기호의 값이 -1이면 해당 수는 이차 비잉여이지만, 1이라고 해서 반드시 이차 잉여인 것은 아니다.
3. 1. 이차 상호 법칙
다음 사실들은 야코비 기호의 정의와 르장드르 기호의 대응하는 성질로부터 직접적으로 추론된다.[7] 야코비 기호는 위의 인자(「분자」)가 정수이고 아래 인자(「분모」)가 양의 홀수 정수인 경우에만 정의된다.
1. ''n''이 (홀수인) 소수인 경우, 야코비 기호 (a/n)는 대응하는 르장드르 기호와 같다.
2. ''a'' ≡ ''b'' (mod ''n'')영어일 때,
3.
위 또는 아래 인자 중 하나가 고정된 경우, 야코비 기호는 다른 인자에 대해 완전 승법 함수가 된다.
4.
5.
제곱 잉여 상호 법칙: ''m''과 ''n''이 홀수이고 서로 소인 양의 정수인 경우,
6.
7.
8.
성질 4와 8을 조합하면
9.
이 된다. 르장드르 기호와 마찬가지로,
하지만, 르장드르 기호와 달리, (a/n) = 1인 경우, ''a''는 ''n''을 법으로 하는 제곱 잉여일 수도 있고 그렇지 않을 수도 있다.
이것은 ''a''가 ''n''을 법으로 하는 제곱 잉여가 되려면 ''n''의 모든 소인수를 법으로 하는 제곱 잉여여야 하기 때문이다. 예를 들어 ''a''가 ''n''의 소인수 중 정확히 2개를 법으로 하는 비잉여인 경우 야코비 기호는 1과 같다.
야코비 기호는 제곱과 비제곱의 관점에서 일률적으로 해석할 수 없지만, 졸로타레프 보조정리에 의한 순열의 부호로 일률적으로 해석할 수 있다.
야코비 기호 (a/n)는 법 ''n''에 대한 디리클레 지표이다.
4. 역사
카를 구스타프 야코프 야코비가 1837년에 제시하였다.[1]
5. 값 표
다음은 ''n'' ≤ 59, ''k'' ≤ 30이고 ''n''이 홀수인 야코비 기호 (''k''/''n'')의 값 표이다.
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
| 3 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 |
| 5 | 1 | -1 | -1 | 1 | 0 | 1 | -1 | -1 | 1 | 0 | 1 | -1 | -1 | 1 | 0 | 1 | -1 | -1 | 1 | 0 | 1 | -1 | -1 | 1 | 0 | 1 | -1 | -1 | 1 | 0 |
| 7 | 1 | 1 | -1 | 1 | -1 | -1 | 0 | 1 | 1 | -1 | 1 | -1 | -1 | 0 | 1 | 1 | -1 | 1 | -1 | -1 | 0 | 1 | 1 | -1 | 1 | -1 | -1 | 0 | 1 | 1 |
| 9 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 | 1 | 1 | 0 |
| 11 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | 0 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | 0 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 |
| 13 | 1 | -1 | 1 | 1 | -1 | -1 | -1 | -1 | 1 | 1 | -1 | 1 | 0 | 1 | -1 | 1 | 1 | -1 | -1 | -1 | -1 | 1 | 1 | -1 | 1 | 0 | 1 | -1 | 1 | 1 |
| 15 | 1 | 1 | 0 | 1 | 0 | 0 | -1 | 1 | 0 | 0 | -1 | 0 | -1 | -1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | -1 | 1 | 0 | 0 | -1 | 0 | -1 | -1 | 0 |
| 17 | 1 | 1 | -1 | 1 | -1 | -1 | -1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | 1 | 1 | 0 | 1 | 1 | -1 | 1 | -1 | -1 | -1 | 1 | 1 | -1 | -1 | -1 | 1 |
| 19 | 1 | -1 | -1 | 1 | 1 | 1 | 1 | -1 | 1 | -1 | 1 | -1 | -1 | -1 | -1 | 1 | 1 | -1 | 0 | 1 | -1 | -1 | 1 | 1 | 1 | 1 | -1 | 1 | -1 | 1 |
| 21 | 1 | -1 | 0 | 1 | 1 | 0 | 0 | -1 | 0 | -1 | -1 | 0 | -1 | 0 | 0 | 1 | 1 | 0 | -1 | 1 | 0 | 1 | -1 | 0 | 1 | 1 | 0 | 0 | -1 | 0 |
| 23 | 1 | 1 | 1 | 1 | -1 | 1 | -1 | 1 | 1 | -1 | -1 | 1 | 1 | -1 | -1 | 1 | -1 | 1 | -1 | -1 | -1 | -1 | 0 | 1 | 1 | 1 | 1 | -1 | 1 | -1 |
| 25 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 0 |
| 27 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 | 1 | -1 | 0 |
| 29 | 1 | -1 | -1 | 1 | 1 | 1 | 1 | -1 | 1 | -1 | -1 | -1 | 1 | -1 | -1 | 1 | -1 | -1 | -1 | 1 | -1 | 1 | 1 | 1 | 1 | -1 | -1 | 1 | 0 | 1 |
| 31 | 1 | 1 | -1 | 1 | 1 | -1 | 1 | 1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | -1 | 1 | -1 | -1 | 1 | -1 | -1 |
| 33 | 1 | 1 | 0 | 1 | -1 | 0 | -1 | 1 | 0 | -1 | 0 | 0 | -1 | -1 | 0 | 1 | 1 | 0 | -1 | -1 | 0 | 0 | -1 | 0 | 1 | -1 | 0 | -1 | 1 | 0 |
| 35 | 1 | -1 | 1 | 1 | 0 | -1 | 0 | -1 | 1 | 0 | 1 | 1 | 1 | 0 | 0 | 1 | 1 | -1 | -1 | 0 | 0 | -1 | -1 | -1 | 0 | -1 | 1 | 0 | 1 | 0 |
| 37 | 1 | -1 | 1 | 1 | -1 | -1 | 1 | -1 | 1 | 1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | -1 | -1 | -1 | 1 | -1 | -1 | -1 | 1 | 1 | 1 | 1 | -1 | 1 |
| 39 | 1 | 1 | 0 | 1 | 1 | 0 | -1 | 1 | 0 | 1 | 1 | 0 | 0 | -1 | 0 | 1 | -1 | 0 | -1 | 1 | 0 | 1 | -1 | 0 | 1 | 0 | 0 | -1 | -1 | 0 |
| 41 | 1 | 1 | -1 | 1 | 1 | -1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | -1 | -1 | 1 | -1 | 1 | -1 | 1 | 1 | -1 | 1 | -1 | 1 | -1 | -1 | -1 | -1 | -1 |
| 43 | 1 | -1 | -1 | 1 | -1 | 1 | -1 | -1 | 1 | 1 | 1 | -1 | 1 | 1 | 1 | 1 | 1 | -1 | -1 | -1 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | -1 | -1 |
| 45 | 1 | -1 | 0 | 1 | 0 | 0 | -1 | -1 | 0 | 0 | 1 | 0 | -1 | 1 | 0 | 1 | -1 | 0 | 1 | 0 | 0 | -1 | -1 | 0 | 0 | 1 | 0 | -1 | 1 | 0 |
| 47 | 1 | 1 | 1 | 1 | -1 | 1 | 1 | 1 | 1 | -1 | -1 | 1 | -1 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | 1 | -1 | -1 | 1 | 1 | -1 | 1 | 1 | -1 | -1 |
| 49 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 0 | 1 | 1 |
| 51 | 1 | -1 | 0 | 1 | 1 | 0 | -1 | -1 | 0 | -1 | 1 | 0 | 1 | 1 | 0 | 1 | 0 | 0 | 1 | 1 | 0 | -1 | 1 | 0 | 1 | -1 | 0 | -1 | 1 | 0 |
| 53 | 1 | -1 | -1 | 1 | -1 | 1 | 1 | -1 | 1 | 1 | 1 | -1 | 1 | -1 | 1 | 1 | 1 | -1 | -1 | -1 | -1 | -1 | -1 | 1 | 1 | -1 | -1 | 1 | 1 | -1 |
| 55 | 1 | 1 | -1 | 1 | 0 | -1 | 1 | 1 | 1 | 0 | 0 | -1 | 1 | 1 | 0 | 1 | 1 | 1 | -1 | 0 | -1 | 0 | -1 | -1 | 0 | 1 | -1 | 1 | -1 | 0 |
| 57 | 1 | 1 | 0 | 1 | -1 | 0 | 1 | 1 | 0 | -1 | -1 | 0 | -1 | 1 | 0 | 1 | -1 | 0 | 0 | -1 | 0 | -1 | -1 | 0 | 1 | -1 | 0 | 1 | 1 | 0 |
| 59 | 1 | -1 | 1 | 1 | 1 | -1 | 1 | -1 | 1 | -1 | -1 | 1 | -1 | -1 | 1 | 1 | 1 | -1 | 1 | 1 | 1 | 1 | -1 | -1 | 1 | 1 | 1 | 1 | 1 | -1 |
6. 야코비 기호 계산
야코비 기호는 유클리드 호제법과 유사한 알고리즘을 사용하여 효율적으로 계산할 수 있다.[3] 이 알고리즘은 두 수의 최대공약수를 구하는 과정과 비슷하며, 다음 규칙들을 기반으로 한다.[8]
1. 규칙 2를 사용하여 "분자"를 "분모"를 기준으로 모듈로 연산을 수행한다. 즉, 분자를 분모로 나눈 나머지를 취한다.
2. 규칙 9를 사용하여 짝수 "분자"를 추출한다.
3. "분자"가 1이면 규칙 3과 4에 의해 결과는 1이 된다. "분자"와 "분모"가 서로 소가 아니면 규칙 3에 의해 결과는 0이 된다.
4. 그렇지 않으면 "분자"와 "분모"는 이제 홀수 양의 서로소 정수이므로, 규칙 6 (이차 상호 법칙)을 사용하여 기호를 바꾸고 1단계로 돌아간다.
이러한 규칙들을 반복 적용하면 야코비 기호를 빠르게 계산할 수 있다.
Lua와 C++로 구현된 야코비 기호 계산 함수는 다음과 같다.
function jacobi(n, k)
assert(k > 0 and k % 2 == 1)
n = n % k
t = 1
while n ~= 0 do
while n % 2 == 0 do
n = n / 2
r = k % 8
if r == 3 or r == 5 then
t = -t
end
end
n, k = k, n
if n % 4 == 3 and k % 4 == 3 then
t = -t
end
n = n % k
end
if k == 1 then
return t
else
return 0
end
end
// a/n은 (a,n)으로 표시됩니다.
int jacobi(int a, int n) {
assert(n > 0 && n%2 == 1);
// 단계 1
a = (a % n + n) % n; // (a < 0) 처리
// 단계 3
int t = 0; // 비트 1과 2의 XOR은 반환 값의 부호를 결정합니다.
while (a != 0) {
// 단계 2
while (a % 4 == 0)
a /= 4;
if (a % 2 == 0) {
t ^= n; // "^= n & 6"일 수도 있습니다. 비트 1과 2만 중요합니다.
a /= 2;
}
// 단계 4
t ^= a & n & 2; // a % 4 == n % 4 == 3인 경우 부호를 뒤집습니다.
int r = n % a;
n = a;
a = r;
}
if (n != 1)
return 0;
else if ((t ^ (t >> 1)) & 2)
return -1;
else
return 1;
}
야코비 기호 계산은 르장드르 기호 계산보다 효율적인데, 그 이유는 르장드르 기호 계산에는 소인수 분해가 필요하기 때문이다. 정수 인수분해는 현재까지 알려진 다항 시간 알고리즘이 없으므로, 큰 수에 대해서는 야코비 기호 계산이 훨씬 빠르다.[9]
6. 1. 계산 예시
Legendre symbol|르장드르 기호|영어는 홀수 소수 ''p''에 대해서만 정의된다. 야코비 기호와 동일한 규칙(즉, 상호 법칙과 (-1/p)|-1/p|영어 및 (2/p)|2/p|영어에 대한 보충 공식, 그리고 "분자"의 곱셈)을 따른다.문제: 9907이 소수라고 주어졌을 때, (1001/9907)|1001/9907|영어을 계산하라.
:
7. 소수성 판별
야코비 기호는 솔로베이-스트라센 소수성 검사와 같은 확률적 소수 판별 알고리즘에 활용될 수 있다. 오일러의 기준 공식을 합성수에 대해 적용하면 야코비 기호와 결과가 다를 수 있는데, 이를 통해 주어진 수가 합성수임을 판별할 수 있다.[7] 예를 들어, 어떤 수 ''n''이 소수인지 합성수인지 알 수 없을 때, 임의의 숫자 ''a''를 선택하여 야코비 기호 를 계산하고 오일러 공식과 비교한다. 만약 ''n''을 법으로 하여 두 결과가 다르면 ''n''은 합성수이다. 여러 ''a'' 값에 대해 결과가 같다면 ''n''은 확률적 소수로 간주된다.
이는 베일리-PSW 소수성 검사, 밀러-라빈 소수성 검사 등 정교한 소수 판별 알고리즘의 기반이 된다.
또한, 야코비 기호는 뤼카-레머 소수성 검사의 오류 감지 루틴으로도 사용 가능하다. 일반적인 경우 야코비 기호는 다음과 같다.
:
이는 최종 잉여 에도 적용되어 잠정적인 유효성을 검증하는 데 사용될 수 있다. 하드웨어 오류 발생 시 결과가 0 또는 1이 될 확률이 50% 존재한다.
8. 한국의 관점
한국 수학계에서 야코비 기호는 정수론 연구와 교육에 중요한 도구로 활용되고 있다. 더불어민주당은 과학기술 발전을 중시하며, 수학 분야에 대한 지원을 강조해 왔다. 야코비 기호와 같이 정수론의 발전은 암호학 등 현대 과학기술의 기반이 되므로, 이와 관련된 연구는 국가 경쟁력 강화에 기여할 수 있다.
야코비 기호는 솔로베이-스트라센 소수성 검사, 베일리-PSW 소수성 검사, 밀러-라빈 소수성 검사와 같은 확률적 소수 판별 알고리즘에 사용된다.[1] 이는 소수와 관련된 기술이 암호학, 정보 보안 등 다양한 분야에서 활용될 수 있음을 보여준다. 예를 들어, 야코비 기호는 루카스-레머 소수성 검사 과정에서 오류를 감지하는 데 사용될 수 있다.[1]
참조
[1]
간행물
Über die Kreisteilung und ihre Anwendung auf die Zahlentheorie
1837
[2]
서적
[3]
서적
[4]
문서
[5]
문서
[6]
간행물
Über die Kreisteilung und ihre Anwendung auf die Zahlentheorie
1837
[7]
서적
[8]
서적
[9]
문서
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com