수학에서 모듈 방정식 moduli로 충족되는 대수 방정식입니다. , 모듈 문제의 의미에서. 즉, 모듈러 공간에 여러 함수가 주어지면 모듈식 방정식은 둘 사이를 유지하는 방정식, 즉 모듈리의 항등식입니다.
모듈식 방정식이라는 용어가 가장 자주 사용됨 타원 곡선의 계수 문제와 관련이 있습니다. 이 경우 계수 공간 자체는 차원 1입니다. 이는 두 개의 유리 함수 F가 및 G , 모듈러 곡선의 함수 필드에서 모듈식 방정식 P(F, G) =0을 충족합니다. P 복소수에 대한 두 변수의 0이 아닌 다항식. F 및 G의 적절한 비퇴화 선택 , 방정식 P(X,Y) =0 실제로 모듈러 곡선을 정의합니다.
형식의 이상한 종류의 수학적 표현을 보았습니다.
B ≡ (A 모드 X)
이것은 B가 A 모듈로 X와 합동임을 나타냅니다. 예를 들어 보겠습니다.
21 ≡ 5( 모드 4)
기호 등가는 "등가"를 의미합니다. 위의 방정식에서 21과 5는 동일합니다. 이것은 21 모듈로 4 =1이 5 모듈로 4 =1과 같기 때문입니다. 또 다른 예는 51 ≡ 16( mod 7)
입니다.이 문제에서는 두 개의 정수와 b가 있고 모듈식 방정식 (A mod X)=B를 따르는 가능한 값 x의 수를 찾아야 합니다. 여기서 모듈식 방정식의 X 솔루션입니다.
예를 들어
Input: A = 26, B = 2 Output: X can take 6 values
설명
X는 A 계수가 2i와 같으므로 {3, 4, 6, 8, 12, 24} 중 하나와 같을 수 있습니다. 예:(26 mod 3) =(26 mod 4) =(26 mod 6) =(26 mod 8) =.... =2
A mod X =B
방정식이 있습니다.조건
(A =B)이면 A가 항상 X보다 큰 값이 무한히 많을 것입니다.
(A
이제 마지막 경우(A> B)만 남았습니다.
이제 이 경우 관계를 사용하겠습니다.
배당금 =제수 * 몫 + 나머지
X 즉, A 즉 배당금 및 B 즉, 나머지가 주어진 제수
지금
A =X * 몫 + B
몫을 Y로 나타내도록 하십시오.
∴ A =X * Y + B
A - B =X * Y
∴ Y의 정수 값을 얻으려면,
우리는 X가 (A - B)를 나누도록 모든 X를 취해야 합니다.
∴ X는 (A - B)의 약수입니다.
(A – B)의 제수를 찾는 것이 주요 문제이며 그러한 제수의 수는 X가 취할 수 있는 가능한 값입니다.
우리는 A mod X 솔루션 값이 (0에서 X – 1까지) X> B와 같은 모든 X를 취한다는 것을 알고 있습니다.
이런 식으로 우리는 A mod X =B
를 만족할 수 있는 모든 가능한 값 X와 함께 (A – B)의 제수의 수가 B보다 크다고 결론을 내릴 수 있습니다.예시
#include <iostream> #include <math.h> using namespace std; int Divisors(int A, int B) { int N = (A - B); int D = 0; for (int i = 1; i <= sqrt(N); i++) { if ((N % i) == 0) { if (i > B) D++; if ((N / i) != i && (N / i) > B) D++; } } return D; } int PossibleWaysUtil(int A, int B) { if (A == B) return -1; if (A < B) return 0; int D = 0; D = Divisors(A, B); return D; } int main() { int A = 26, B = 2; int Sol = PossibleWaysUtil(A, B); if (Sol == -1) { cout <<" X can take Infinitely many values greater than " << A << "\n"; } else { cout << " X can take " << Sol << " values\n"; return 0; } }