ALGORITHME D'EUCLIDE

jparbel Messages postés 4 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 25 juin 2013 - 25 juin 2013 à 21:34
 Ipafet - 2 juil. 2013 à 18:25
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/55235-algorithme-d-euclide

<quote>Oui d'accord, tu utilises les fonctions déjà intégrées dans PHP mais moi je voulais le faire juste avec la boucle, c'était aussi pour montrer à des gens comment ça fonctionnait ! Je l'ai par la suite posté !
Dans tous les cas, je ne trouve pas l'erreur de 128 et 34 avec leurs multiplicateurs (j'ai cherché) !</quote>

Bonjour,

il ne s'agit pas d'une fonction intégrée à PHP : c'est "gmp_gcd" la fonction intégrée si je ne ma trompe pas.

Cependant, l'agorithme proposé par PMCOSTE fait appel à la récursivité : la fonction s'appelle elle même pour avec de nouveaux paramètres. L'exemple classique pour illustrer la récursivité, c'est le calcul de factoriel. Il doit y avoir plein d'exemple sur le net pour toutes sortes de langages.
Merci, en effet, erreur non présente sur mon fichier d'origine en local ! C'est quand j'ai commenté je pense... Je met a jours ça demain ;)
jparbel Messages postés 4 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 25 juin 2013
26 juin 2013 à 22:38
Je pense qu'en ligne 47 il faut remplacer $b par $a et ça devrait marcher !
Oui d'accord, tu utilises les fonctions déjà intégrées dans PHP mais moi je voulais le faire juste avec la boucle, c'était aussi pour montrer à des gens comment ça fonctionnait ! Je l'ai par la suite posté !
Dans tous les cas, je ne trouve pas l'erreur de 128 et 34 avec leurs multiplicateurs (j'ai cherché) !
pmcoste Messages postés 72 Date d'inscription mercredi 7 février 2007 Statut Membre Dernière intervention 25 juillet 2013 1
26 juin 2013 à 14:18
Bonjour,

Merci pour cette contribution, mais avec une recherche sur un moteur de recherche, on tombe sur une page avec un algo un peu plus simple :
http://snipplr.com/view/6441/
Il donne également le PPCM, ce qui va souvent avec !

function pgcd($a, $b) {
$a = abs($a);
$b = abs($b);
if ($a == 0) {
return $b;
}
elseif ($b == 0) {
return $a;
}
elseif ($a > $b) {
return pgcd($b, $a % $b);
}
else {
return pgcd($a, $b % $a);
}
}
Pas normal ! Si on prend les chiffres dans l'ordre inverse ça marche ! Est-ce que t'as une piste ? Pour le guider sur mon erreur ?
Merci d'avoir testé en tout cas !
jparbel Messages postés 4 Date d'inscription dimanche 24 septembre 2006 Statut Membre Dernière intervention 25 juin 2013
25 juin 2013 à 21:34
Juste pour info, si je cherche le PGCD de 128 et 34, j'obtiens 0, c'est mon premier essai, pas de chance !
Rejoignez-nous