> 백엔드 개발 > C++ > C/C++ 모듈 방정식 풀이 프로그램

C/C++ 모듈 방정식 풀이 프로그램

PHPz
풀어 주다: 2023-08-26 16:37:03
앞으로
1455명이 탐색했습니다.

C/C++ 모듈 방정식 풀이 프로그램

수학에서 모듈 방정식은 모듈 문제라는 의미에서 모듈로을 만족하는 대수 방정식입니다. 즉, 모듈 공간에 여러 함수가 주어지면 모듈 방정식은 이들 사이의 방정식, 즉 모듈 아이덴티티입니다.

"모듈식" 방정식이라는 용어의 가장 일반적인 사용법은 타원 곡선의 모듈식 문제와 관련이 있습니다. 이 경우 모듈러스 공간 자체는 1차원입니다. 이는 모듈 곡선 함수 영역에서 임의의 두 유리 함수 FG가 모듈 방정식 P(F, G) = 0 을 충족한다는 것을 의미합니다. 여기서 P는 두 변수의 0이 아닌 다항식입니다. 복소수에 대해. F와 G의 적절한 비축퇴 선택에 대해 방정식 P(X,Y) = 0은 실제로 모듈러 곡선을 정의합니다.

방금

B ל(A mod X)

형식의 이상한 수학적 표현을 봤습니다. 이는 B가 A mod X와 합동임을 의미합니다. 예를 들어

21 ל 5( mod 4)

기호 같음은 "동등함"을 의미합니다. 위의 방정식에서 21과 5는 동일합니다. 이는 21 모듈로 4 = 1이 5 모듈로 4 = 1과 같기 때문입니다. 또 다른 예는 51 eq 16(mod 7)

입니다. 이 문제에는 두 개의 정수 a와 b가 있고 모듈러 방정식 (A mod X)=B를 따르는 x의 가능한 값의 개수를 찾아야 합니다. 여기서 X의 모듈러 방정식 해.

예를 들어

Input: A = 26, B = 2
Output: X can take 6 values
로그인 후 복사

X가 {3, 4, 6, 8, 12, 24} 중 하나와 같을 수 있다고 설명합니다. 왜냐하면 이러한 값 중 하나의 모듈러스가 2i와 같기 때문입니다. 예를 들어, (26 mod 3) = (26 mod 4) = (26 mod 6) = (26 mod 8) = .... = 2

방정식 A mod X = B

condition

이 있습니다.

if (A = B) 그러면 A가 항상 X보다 큰 값은 무한히 많아집니다.

만약 (A < B)라면 X가 모듈러 방정식을 수용하는 것은 불가능합니다. < B) 那么 X 不可能容纳模方程。

이제 마지막 사례(A > B)만 남았습니다.

이제 이 경우에는 A(즉, 피제수)와 B(즉, 나머지)가 주어진 제수인

Divisor = Divisor * Quotient + Remainder

X 관계를 사용합니다.

Now

A = X * 몫 + B

몫을 Y

∴ A = 값,

X를 (A - B)

로 나누도록 모든 X를 취해야 합니다.

∴ 가장 큰 문제는 약수의 수가 X가 취할 수 있는 가능한 값이라는 것입니다.

우리는 A mod X의 해 값이 X > B가 되는 모든 X를 취하는 (0에서 X – 1)이 될 것이라는 것을 알고 있습니다.

이 방법으로 (A – B)의 약수의 수가 B보다 크고 X의 모든 가능한 값이 A mod X = 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;
   }
}
로그인 후 복사

위 내용은 C/C++ 모듈 방정식 풀이 프로그램의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:tutorialspoint.com
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿