Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cari bilangan penyelesaian kepada persamaan modular menggunakan C++

Cari bilangan penyelesaian kepada persamaan modular menggunakan C++

PHPz
PHPzke hadapan
2023-08-27 21:01:061020semak imbas

Cari bilangan penyelesaian kepada persamaan modular menggunakan C++

Dalam artikel ini kami akan menerangkan apakah penyelesaian persamaan modular dan kami juga akan menulis program untuk mencari penyelesaian berbilang persamaan modular. Berikut ialah contoh asas -

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)

Seperti yang kita lihat dalam contoh di atas, setiap integer ialah penyelesaian yang memberikan baki Y selepas membahagikan X. Dalam contoh ini, membahagikan 30 dengan 4, 7, 14, dan 28 memberikan baki 2, yang sama dengan Y. Kami akan menyelesaikan persamaan modular dengan cara ini.

Kaedah Penyelesaian

Kita boleh menggunakan kaedah mudah membahagi X dengan setiap integer bermula dari 1 dan semak sama ada ia memberikan baki Y atau kita boleh membahagi (X - Y) dengan setiap Integer, dan membahagi dengan (X - Y) tetapi bukan dengan integer X ialah penyelesaiannya. Mari kita tulis program C++ untuk mencari penyelesaian yang berbeza kepada persamaan modular.

Contoh

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

Output

Apabila kita menulis 0 sebagai input, program memberikan output seperti ini -

X can take Infinitely many values greater than 0

Apabila kita memasukkan nombor lain, program di atas menunjukkan output seperti ini (Di sini kita telah memberikan 5 sebagai Enter) -

Number of solution = 2

Penjelasan kod di atas

Sekarang kami menerangkan setiap fungsi supaya anda boleh memahami program dengan mudah.

fungsi utama()

Dalam fungsi utama, kami mengambil nilai X dan Y sebagai input dan mencari bilangan penyelesaian yang mungkin dengan memanggil fungsi numberofsolutions().

Fungsi Numberofsolutions()

Fungsi ini menyemak sama ada X dan Y memenuhi syarat bahawa X sepatutnya lebih besar daripada Y, kerana kita tidak dapat mencari baki yang lebih besar daripada dividen. Fungsi ini memanggil fungsi lain numberofdivisor() dan mendapat bilangan pembahagi X, menghasilkan baki Y.

Fungsi Numberofdivisor()

Fungsi ini mencari bilangan pembahagi bagi

Kesimpulan

Penyelesaian kepada persamaan modular ialah integer yang membahagi X dan mendapat baki Y yang kita ketahui daripada pelbagai contoh. Persamaan boleh mempunyai beberapa penyelesaian, jadi kami mencari penyelesaian ini dengan menggunakan kaedah mudah.

Kita boleh menulis program C++ untuk mengira penyelesaian kepada persamaan modular. Kita boleh menulis program yang sama dalam bahasa lain seperti C, Java, Python atau mana-mana bahasa pengaturcaraan lain. Mudah-mudahan anda mendapati artikel ini membantu dalam memahami konsep cara mencari pelbagai penyelesaian kepada persamaan modular.

Atas ialah kandungan terperinci Cari bilangan penyelesaian kepada persamaan modular menggunakan 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