Trong toán học, một phương trình mô-đun là một phương trình đại số được thỏa mãn bởi moduli , theo nghĩa của vấn đề moduli. Nghĩa là, cho một số hàm trên một không gian mô-đun, một phương trình mô-đun là một phương trình giữ giữa chúng, hay nói cách khác là một danh tính cho mô-đun.
Việc sử dụng thuật ngữ phương trình mô-đun thường xuyên nhất liên quan đến các bài toán moduli cho đường cong elliptic. Trong trường hợp đó, bản thân không gian moduli có chiều một. Điều đó ngụ ý rằng bất kỳ hai hàm hợp lý F và G , trong trường chức năng của đường cong mô-đun, sẽ thỏa mãn một phương trình mô-đun P (F, G) =0 với P một đa thức khác 0 của hai biến trên các số phức. Để có sự lựa chọn không thoái hóa phù hợp của F và G , phương trình P (X, Y) =0 sẽ thực sự xác định đường cong mô-đun.
Bạn vừa thấy một loại biểu thức toán học kỳ lạ có dạng
B ≡ (A mod X)
Điều này nói rằng B đồng dư với A modulo X. Hãy lấy một ví dụ,
21 ≡ 5 (mod 4)
Một biểu tượng tương đương có nghĩa là "Tương đương". Trong phương trình trên, 21 và 5 là tương đương. Điều này là do 21 modulo 4 =1 bằng 5 modulo 4 =1. Một ví dụ khác là 51 ≡ 16 (mod 7)
Trong bài toán này, chúng ta có hai số nguyên a và b và chúng ta phải tìm số giá trị x có thể tuân theo phương trình mô-đun (A mod X) =B trong đó X nghiệm của phương trình mô-đun.
Ví dụ
Input: A = 26, B = 2 Output: X can take 6 values
Giải thích
X có thể bằng bất kỳ trong số {3, 4, 6, 8, 12, 24} vì A mô đun bất kỳ giá trị nào trong số này bằng 2 i. e., (26 mod 3) =(26 mod 4) =(26 mod 6) =(26 mod 8) =.... =2
Ta có phương trình A mod X =B
Điều kiện
nếu (A =B) thì sẽ có vô số giá trị trong đó A luôn lớn hơn X.
nếu (A
Bây giờ chỉ còn lại trường hợp cuối cùng đó là (A> B).
Bây giờ, trong trường hợp này, chúng ta sẽ sử dụng quan hệ
Cổ tức =Số chia * Thương + Phần còn lại
X tức là các số chia cho A tức là Cổ tức và B tức là phần còn lại.
Bây giờ
A =X * Thương số + B
Để cho Thương số được biểu diễn dưới dạng Y
∴ A =X * Y + B
A - B =X * Y
∴ Để nhận các giá trị tích phân của Y,
chúng ta cần lấy tất cả X sao cho X chia hết (A - B)
∴ X là ước của (A - B)
tìm các ước của (A - B) là vấn đề chính và số ước như vậy là các giá trị mà X có thể nhận.
chúng ta biết rằng các giá trị nghiệm A mod X sẽ từ (0 đến X - 1) lấy tất cả các X sao cho X> B.
Theo cách này, chúng ta có thể kết luận bằng cách nói rằng số ước của (A - B) lớn hơn B, với tất cả các giá trị X có thể thỏa mãn A mod X =B
Ví dụ
#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; } }