C++ を使用してモジュラー方程式の解の数を求める

PHPz
リリース: 2023-08-27 21:01:06
転載
1016 人が閲覧しました

C++ を使用してモジュラー方程式の解の数を求める

この記事では、モジュラー方程式の解とは何かを説明し、モジュラー方程式の複数の解を見つけるプログラムも作成します。基本的な例は次のとおりです -

Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)
Input : X = 30 Y = 2
Output : 4, 7, 14, 28
Explanation : 30 mod 4 = 2 (equals Y),
   30 mod 7 = 2 (equals Y),
   30 mod 14 = 2 (equals Y),
   30 mod 28 = 2 (equals Y)
ログイン後にコピー

上の例で見たように、すべての整数は、X を除算した後の余り Y を与える解です。この例では、30 を 4、7、14、28 で割ると余りが 2 になり、これは Y と等しくなります。このようにモジュラー方程式を解きます。

解決方法

X を 1 から始まるすべての整数で割る簡単な方法を適用して、余り Y が得られるかどうかを確認するか、X - Y) をすべての整数で割ることができます。整数であり、(X - Y) を除算するが X ではない整数が解になります。モジュラー方程式のさまざまな解を見つける C プログラムを書いてみましょう。

#include <bits/stdc++.h>
using namespace std;
int numberofdivisor(int X, int Y){
    int N = (X - Y);
    int noOfDivisors = 1;
    for (int i = 1; i <= N/2; i++) {
        // if N is divisible by i
        if ((N % i) == 0) {
            // count if integer is greater than Y
            if (i > Y)
                noOfDivisors++;
        }
    }
    return noOfDivisors;
}
void numberofsolutions(int X, int Y){
    int noOfSolutions;
    if (X == Y)
        noOfSolutions = -1;
    if (X < Y)
        noOfSolutions = 0;
    if (X > Y)
        noOfSolutions = numberofdivisor(X, Y);
        if (noOfSolutions == -1) {
            cout << "X can take Infinitely many values"
            " greater than " << X << "\n";
    }
    else {
        cout << "Number of solution = " << noOfSolutions;
    }
}
// main function
int main(){
    int X,Y;
        cin >> X;
        cin >> Y;
    numberofsolutions(X, Y);
    return 0;
}
ログイン後にコピー

出力

入力として 0 を書き込むと、プログラムは次の出力を返します。

X can take Infinitely many values greater than 0
ログイン後にコピー

他の数値を入力すると、上記のようになります。プログラムは次のような出力を表示します (ここでは入力として 5 を指定しました) -

Number of solution = 2
ログイン後にコピー

上記コードの説明

ここで、プログラムを簡単に理解できるように、各関数を説明します。

main() 関数

main 関数では、X と Y の値を入力として受け取り、numberofsolutions() 関数を呼び出して考えられる解の数を見つけます。

Numberofsolutions() 関数

この関数は、被除数より大きい剰余が見つからないため、X と Y が X が Y より大きくなければならないという条件を満たすかどうかをチェックします。この関数は別の関数numberofdivisor()を呼び出し、Xの約数の数を取得し、その結果剰余Yが得られます。

Numberofdivisor() 関数

この関数は、1 から (X - Y)/2 までのループを実行し、各整数が割り切れるかどうかを確認することによって、X - Y の約数の数を見つけます。 integer は X を正確に割ってはなりません。

結論

モジュラー方程式の解は、X を除算して余り Y を得る整数です。これはさまざまな例からわかります。方程式にはいくつかの解が存在する可能性があるため、簡単な方法を適用してこれらの解を見つけます。

モジュラー方程式の解を計算する C プログラムを作成できます。同じプログラムを、C、Java、Python、またはその他のプログラミング言語などの他の言語で作成できます。この記事がモジュラー方程式の複数の解を見つける方法の概念を理解するのに役立つことを願っています。

以上がC++ を使用してモジュラー方程式の解の数を求めるの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:tutorialspoint.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!