C++ Equation diophantiennes
Résolu
azerty0
Messages postés
1322
Statut
Membre
-
azerty0 Messages postés 1322 Statut Membre -
azerty0 Messages postés 1322 Statut Membre -
Bonsoir a tous,
Je suis en train de créer un programme qui résoud les equations diophantiennes. Pour le moment, il effectue lalgorythme d'Euclide et me donne le PGCD.
Le programme passe en compil, mais il plante dans ma fonction resoud_equations... Le programme ferme.
Jespère que quelqun saura maider...
Je suis en train de créer un programme qui résoud les equations diophantiennes. Pour le moment, il effectue lalgorythme d'Euclide et me donne le PGCD.
Le programme passe en compil, mais il plante dans ma fonction resoud_equations... Le programme ferme.
#include <iostream> #include <string> #include <vector> using namespace std; int saisie(vector <int> &a, vector <int> &b) { cout << "Veuillez rentrer les deux nombres que vous avez choisis : " << endl << endl << "a = "; cin >> a[0]; cout << "b = ";; cin >> b[0]; return 0; } int resoud_equation(vector <int> &a, vector <int> &b, vector <int> &c, vector <int> &d) { int x=0; while((a[0]%b[0])!=0) { c.push_back(1); c[x]=int(a[x]/b[x]); d.push_back(1); d[x]=a[x]-(int(a[x]/b[x])*b[x]); a.push_back(1); b.push_back(1); x++; a[x]=b[x-1]; b[x]=d[x-1]; } cout << "PGCD(" << a[0] << "," << b[0] << " = " << c[x]; return x; } int main() { cout << "Ce programme est crée afin de résoudre des équations diophantiennes du type : au + bv = 1." << endl; vector <int> a(1); vector <int> b(1); vector <int> c(0); vector <int> d(0); saisie (a, b); resoud_equation(a,b,c,d); system("PAUSE"); return 0; }
Jespère que quelqun saura maider...
A voir également:
- C++ Equation diophantiennes
- Editeur d'équation - Télécharger - Vie quotidienne
- Formule équation - Télécharger - Études & Formations
- Equation sinequanone - Télécharger - Calcul & Conversion
- Pourquoi je ne peux pas insérer une équation dans word - Forum Microsoft Office
- Écrire un programme qui résout une équation du second degré - Forum C
3 réponses
salut,
résoudre une equa diophantienne, ca revient a trouver u et v appartenant a Z tel que : 1 = au + bv
Voici le programme que j'ai terminé.
résoudre une equa diophantienne, ca revient a trouver u et v appartenant a Z tel que : 1 = au + bv
Voici le programme que j'ai terminé.
#include <iostream> #include <string> #include <vector> using namespace std; int saisie(vector <int> &a, vector <int> &b) // saisie des premières valeurs a tester. { cout << "Veuillez rentrer les deux nombres que vous avez choisis : " << endl << endl << "a = "; cin >> a[0]; cout << "b = ";; cin >> b[0]; cout << endl; return 0; } int resoud_equation(vector <int> &a, vector <int> &b, vector <int> &c, vector <int> &d) { int x=0; while((a[x]%b[x])!=0) { c.push_back(1); c[x]=int(a[x]/b[x]); // on cherche les quotients d.push_back(1); d[x]=(a[x]%b[x]); // le reste de chaque division euclidienne a.push_back(1); b.push_back(1); x++; a[x]=b[x-1]; // algo d'Euclide : nouveau dividende b[x]=d[x-1]; // algo d'Euclide : nouveau diviseur } cout << "PGCD(" << a[0] << "," << b[0] << ") = " << b[x] << endl << endl; // remontée de l'algorythme d'Euclide : if(b[x]==1) { int V(0), W(1), var; x--; while(x>=0) { var = W; W = ((-W)*c[x])+V; V = var; x--; } cout << "Equation diophantienne : " << a[0] << " (" << V << ") + " << b[0] << " (" << W << ") = 1"; } else cout << "Le PGCD de "<< a[0] << " et " << b[0] << " est different de 1, on ne resoud pas l'equation diophantienne."; return x; } int main() { cout << "Ce programme est cree afin de resoudre des equations diophantiennes du type :" << endl << "au + bv = 1." << endl; vector <int> a(1); // nombre a vector <int> b(1); // nombre b vector <int> c(0); // quotients de chacune des divisions de a par b vector <int> d(0); // reste de chacunes des divisions de a par b saisie (a, b); resoud_equation(a,b,c,d); // pour le moment, je me contente deffectuer lalgorythme deuclide et de garder toutes mes valeurs. cout << endl << endl; system("PAUSE"); return 0; }