Heim  >  Artikel  >  Backend-Entwicklung  >  C/C++-Modul-Gleichungslösungsprogramm

C/C++-Modul-Gleichungslösungsprogramm

PHPz
PHPznach vorne
2023-08-26 16:37:031372Durchsuche

C/C++-Modul-Gleichungslösungsprogramm

In der Mathematik ist modulare Gleichung eine algebraische Gleichung, die modulo im Sinne eines modularen Problems erfüllt. Das heißt, bei mehreren Funktionen auf einem Modulraum ist die Modulgleichung die Gleichung zwischen ihnen, oder mit anderen Worten, die Modulidentität.

Die häufigste Verwendung des Begriffs „modulare“ Gleichungen hängt mit dem Modulproblem elliptischer Kurven zusammen. In diesem Fall ist der Modulraum selbst eindimensional. Dies bedeutet, dass zwei beliebige rationale Funktionen F und G im Bereich der modularen Kurvenfunktionen die modulare Gleichung P(F, G) = 0 erfüllen, wobei P ein von Null verschiedenes Polynom der beiden Variablen ist über die komplexen Zahlen. Für geeignete nicht entartete Wahlen von F und G definiert die Gleichung P(X,Y) = 0 tatsächlich die Modulkurve.

Du hast gerade einen seltsamen mathematischen Ausdruck der Form

B ≡ (A mod X)

Das bedeutet, dass B mit A mod X kongruent ist. Nehmen wir ein Beispiel:

21 ≡ 5( mod 4)

Das Symbol gleich bedeutet „äquivalent“. In der obigen Gleichung sind 21 und 5 gleichwertig. Dies liegt daran, dass 21 Modulo 4 = 1 gleich 5 Modulo 4 = 1 ist. Ein weiteres Beispiel ist 51 eq 16(mod 7)

In diesem Problem haben wir zwei ganze Zahlen a und b und wir müssen die Anzahl der möglichen Werte von x finden, die der modularen Gleichung (A mod X)=B folgen, wobei die modulare Gleichung Lösung von X.

Zum Beispiel erklärt

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

das

Zum Beispiel: (26 mod 3) = (26 mod 4) = (26 mod 6) = (26 mod 8) = .... = 2

Wir haben die Gleichung A mod X = B

Bedingung

wenn (A = B) Dann wird es unendlich viele Werte geben, bei denen A immer größer als X ist.

Wenn (A

Jetzt ist nur noch der letzte Fall übrig (A > B).

In diesem Fall verwenden wir nun die Beziehung

Divisor = Divisor * Quotient + Rest

X, die der Divisor für A (d. h. Dividende) und B (d. h. Rest) ist.

Jetzt

A =

∴ Das Hauptproblem besteht darin, dass die Anzahl der Teiler die möglichen Werte sind, die X annehmen kann.

Wir wissen, dass der Lösungswert von A mod

Auf diese Weise können wir schließen, dass die Anzahl der Teiler von (A – B) größer als B ist und alle möglichen Werte von X A mod X = B erfüllen können.

Beispiel

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

Das obige ist der detaillierte Inhalt vonC/C++-Modul-Gleichungslösungsprogramm. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen