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

C/C++-Modul-Gleichungslösungsprogramm

PHPz
Freigeben: 2023-08-26 16:37:03
nach vorne
1432 Leute haben es durchsucht

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
Nach dem Login kopieren

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 < B), dann ist es für X unmöglich, modulare Gleichungen zu berücksichtigen. < B) 那么 X 不可能容纳模方程。

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;
   }
}
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage