C++ Equation diophantiennes
Résolu/Fermé
azerty0
Messages postés
1274
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
-
2 févr. 2008 à 19:34
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 - 5 févr. 2008 à 15:04
azerty0 Messages postés 1274 Date d'inscription samedi 27 octobre 2007 Statut Membre Dernière intervention 5 septembre 2013 - 5 févr. 2008 à 15:04
A voir également:
- C++ Equation diophantiennes
- Editeur d'équation - Télécharger - Vie quotidienne
- Écrire un programme qui résout une équation du second degré - Forum Pascal
- Equation de bellman ✓ - Forum Algorithmes / Méthodes
- Résolution d'équation du second degré - Forum C
- Equation sinequanone - Télécharger - Calcul & Conversion
3 réponses
azerty0
Messages postés
1274
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
4 févr. 2008 à 13:17
4 févr. 2008 à 13:17
up
ghiz
Messages postés
39
Date d'inscription
lundi 28 août 2006
Statut
Membre
Dernière intervention
16 août 2008
18
4 févr. 2008 à 17:58
4 févr. 2008 à 17:58
bonjour,
c qoi une equation diophantienne? à consiste à quoi?
c qoi une equation diophantienne? à consiste à quoi?
azerty0
Messages postés
1274
Date d'inscription
samedi 27 octobre 2007
Statut
Membre
Dernière intervention
5 septembre 2013
75
5 févr. 2008 à 15:04
5 févr. 2008 à 15:04
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; }