IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Distributions Discussion :

Calculer les coefficients de Bezout


Sujet :

Distributions

  1. #1
    Invité
    Invité(e)
    Par défaut Calculer les coefficients de Bezout
    Je dois souvent calculer les coefficients de bezout de 2 entiers. Or, je dois recourir à un outil externe à latex pour le faire et je me trompe (parfois) en les recopiant ce qui est assez genant. Comme l'algorithme permettant de trouver ces coefficients se rapporche de celui du calcul du pgcd, je voudrais savoir s'il serait possible à unbonpetit (ou un autre expert) d'écrire une macro \bezout qui admet 2 entiers en entrée et qui affiche en sortie l'identité de bezout, c'est à dire "a*u + b*v = d" où d est le pgcd de a et b et u et v les coefficients cherchés.

    L'idéal serait que la macro fonctionne pour a et b relatifs.

    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Voilà, il s'agit de l'algorithme classique habituel avec affectations simultanées et sans compteurs tex. J'ai également permis que les deux coefficients ainsi que le pgcd puisse être appelés après l'affichage à l'aide des macros \coeffA, \coeffB et \thePGCD :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    \documentclass{article}
    \makeatletter
    \def\bezout#1#2{%
    	\bezout@i{#1}10{#2}01\bezout@ii
    	\ensuremath{\coeffA\times\z@test{#1}{(#1)}{#1}\z@test\coeffB{}+\coeffB\times\z@test{#2}{(#2)}{#2}=\thePGCD}}
    \def\bezout@i#1#2#3#4#5#6{%
    	\edef\reserved@a{\d@nxp\thePGCD{#1}\d@nxp\coeffA{#2}\d@nxp\coeffB{#3}%
    	\d@nxp\@r@{\number\numexpr#4}\d@nxp\coeffA@{\number\numexpr#5}\d@nxp\coeffB@{\number\numexpr#6}}%
    	\reserved@a}
    \def\bezout@ii{%
    	\unless\ifnum\@r@=\z@
     		\edef\@q{\numexpr(2*\z@test\thePGCD-{}\thePGCD-\z@test\@r@-{}\@r@+1)/(\z@test\thePGCD-{}2*\@r@)\relax}%
    		\bezout@i\@r@\coeffA@\coeffB@{\thePGCD-\@q*\@r@}{\coeffA-\@q*\coeffA@}{\coeffB-\@q*\coeffB@}\expandafter\bezout@ii
    	\fi}
    \def\d@nxp{\def\noexpand}
    \def\z@test#1#2#3{\ifnum#1<\z@#2\else#3\fi}
    \makeatother
    \begin{document}
    \'Egalit\'e de Bezout : \bezout{39}{15}
     
    Les coefficients sont $\coeffA${} et $\coeffB${} et le PGCD est $\thePGCD$.
    \bigskip
     
    \'Egalit\'e de Bezout : \bezout{1897}{879}
     
    Les coefficients sont $\coeffA${} et $\coeffB${} et le PGCD est $\thePGCD$.
    \end{document}

  3. #3
    Invité
    Invité(e)
    Par défaut
    Comme d'habitude, code impénétrable qu'il m'est inutile d'essayer de comprendre mais code qui fonctionne très bien.

    Juste une petite requete encore : les coefficients u et v s'affichent avant a et b alors que je voulais qu'il s'affichent après. J'ai eu beau modifier la ligne 5 (j'ai quand même compris que c'était là que se faisait l'affichage sans vraiment comprendre ce qui s'y passe), je n'arrive pas à obtenir ce que je veux.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Voici la ligne 5 correctement modifiée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    \ensuremath{#1\times\z@test\coeffA{(\coeffA)}\coeffA\z@test{#2}{}+#2\times\z@test\coeffB{(\coeffB)}\coeffB=\thePGCD}

  5. #5
    Invité
    Invité(e)
    Par défaut
    Merci, j'avais écrit un truc approchant, mais je m'étais perdu en route et ça ne fonctionnaite pas.

Discussions similaires

  1. Calculer les coefficients de distorsion
    Par yan dans le forum OpenCV
    Réponses: 1
    Dernier message: 02/08/2007, 20h28
  2. Réponses: 1
    Dernier message: 10/01/2006, 20h35
  3. Réponses: 2
    Dernier message: 02/08/2005, 13h53
  4. Déterminer les coefficients moyens d'une équation linéaire
    Par Oliveuh dans le forum Algorithmes et structures de données
    Réponses: 8
    Dernier message: 11/01/2005, 23h23
  5. [MFC]Calculer les FPS
    Par inerti@ dans le forum MFC
    Réponses: 6
    Dernier message: 19/03/2003, 18h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo