Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Program penyelesaian persamaan modul C/C++

Program penyelesaian persamaan modul C/C++

PHPz
PHPzke hadapan
2023-08-26 16:37:031375semak imbas

Program penyelesaian persamaan modul C/C++

Dalam matematik, persamaan modular ialah persamaan algebra yang memenuhi modulo dalam erti kata masalah modular. Iaitu, memandangkan pelbagai fungsi pada ruang moduli, persamaan modular ialah persamaan di antara mereka, atau dengan kata lain, identiti modular.

Penggunaan istilah persamaan "modular" yang paling biasa adalah berkaitan dengan masalah modular lengkung elips. Dalam kes ini, ruang moduli itu sendiri adalah satu dimensi. Ini bermakna mana-mana dua fungsi rasional F dan G dalam domain fungsi lengkung modular akan memenuhi persamaan modular P(F, G) = 0 di mana P ialah polinomial bukan sifar bagi dua pembolehubah atas nombor kompleks. Untuk pilihan tidak merosot yang sesuai bagi F dan G, persamaan P(X,Y) = 0 sebenarnya akan mentakrifkan lengkung modular.

Anda baru sahaja melihat ungkapan matematik pelik dalam bentuk

B ≡ (A mod X)

Ini bermakna B adalah kongruen dengan A mod X. Mari kita ambil contoh,

21 ≡ 5( mod 4)

Simbol sama bermaksud "setara". Dalam persamaan di atas, 21 dan 5 adalah setara. Ini kerana 21 modulo 4 = 1 adalah sama dengan 5 modulo 4 = 1. Contoh lain ialah 51 eq 16(mod 7)

Dalam masalah ini kita mempunyai dua integer a dan b dan kita perlu mencari bilangan kemungkinan nilai x yang mengikuti persamaan modular (A mod X)=B, di mana persamaan modular Penyelesaian X.

Sebagai contoh

Input: A = 26, B = 2
Output: X can take 6 values

menerangkan bahawa

Contohnya, (26 mod 3) = (26 mod 4) = (26 mod 6) = (26 mod 8) = .... = 2

Kami mempunyai persamaan A mod X = B

keadaan

jika (A = B) Maka akan terdapat bilangan nilai yang tidak terhingga di mana A sentiasa lebih besar daripada X.

jika (A

Kini hanya tinggal kes terakhir (A > B).

Sekarang, dalam kes ini, kita akan menggunakan hubungan

Divisor = Divisor * Quotient + Remainder

X, iaitu pembahagi yang diberi A (iaitu dividen) dan B (iaitu baki).

Now

A = X * Quotient + B

Biarkan hasil bahagi dinyatakan sebagai Y

∴ A = Nilai,

Kita perlu mengambil semua X supaya X dibahagikan dengan (A - B)

∴ Masalah utama ialah bilangan pembahagi adalah kemungkinan nilai yang boleh diambil oleh X.

Kita tahu bahawa nilai penyelesaian A mod X adalah dari (0 hingga X – 1) mengambil semua X sedemikian sehingga X > B.

Dengan cara ini kita boleh membuat kesimpulan bahawa bilangan pembahagi (A – B) adalah lebih besar daripada B, dan semua kemungkinan nilai X boleh memenuhi A mod X = B

Contoh

#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;
   }
}

Atas ialah kandungan terperinci Program penyelesaian persamaan modul C/C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam