équations diophantiennes ont enchanté les mathématiciens depuis Diophante d'Alexandrie d'abord proposé la résolution d'une équation de la forme ax + bx = c . Sous cette forme, l'équation est connue comme une équation diophantienne linéaire. Cette équation a seulement une solution lorsque c est le plus grand commun diviseur de a et b ou lorsque c est égal à un multiple du plus grand commun diviseur de a et b . Sinon, il n'y a pas de solutions pour cette équation. Développé par le professeur Jim Carlson de l'Université de l'Illinois à Urbana /Champagne , le programme court ci-dessous montre la puissance de Python pour des tâches mathématiques. Choses que vous devez
Python 2.6 ou supérieur
Afficher plus Instructions
1
Ouvrez une session de terminal et invoquer l'interpréteur Python avec la commande suivante:
< p > Mon - iMac : ~ $ me python -v
Ce sera de retour d'une longue liste de tous les modules Python disponibles dans votre installation et à la fin , il vous dira quelle version de Python est installé sur votre ordinateur.
2
créer une nouvelle définition d'une fonction en Python en entrant le code suivant à l'invite de Python. Après professeur Carlson, nous appellerons cette " isolve ":
>>> def isolve (a, b , c):
Le côlon dira Python ne pas interpréter immédiatement lorsque vous appuyez sur la touche de retour de sorte que vous avez plus d'espace pour votre programme.
3
Créer deux variables , Q et R , qui se tiendront pour le quotient et le reste des variables de l'équation a et b , puis appeler la fonction divmod Python, qui va trouver et diviser deux nombres et afficher leur diviseur et le reste , le cas échéant . Le code devrait ressembler à ceci :
... q, r = divmod (a, b )
4
Créer une instruction if qui va afficher rapidement une solution à l'équation lorsqu'il leur a pas de reste . Tapez la commande suivante :
... si r == 0 :
... retourner ( [ 0, c /b] )
5
Créer une instruction else pour le cas où il ya un reste :
... autre :
... sol = isolve ( b , r, c)
... u = sol [0]
... v = sol [1]
... retourner ( [v , u - q * v] )
Cela mettra b et r dans l'opérateur divmod , retourner leurs valeurs que les variables u et v , puis les retourner comme l'ensemble de la solution [v , et le produit de q et v soustrait u ] . Le code complet de ce programme suit :
>>> def isolve (a, b , c):
... q, r = divmod (a, b )
... si r == 0 :
... retourner ( [ 0, c /b] )
... autre :
... sol = isolve ( b , r, c)
... u = sol [0]
... v = sol [1]
... retourner ( [v , u - q * v] )
une attention particulière à la mise en retrait après le si et le else . Python ne sera pas exécuter ce code sans l' indentation correcte .
6
Appuyez sur la touche de retour une fois de plus pour ramener l'invite Python. Entrez la fonction isolve et trois valeurs pour z , y et c et appuyez sur «retour». Vous devriez voir ceci:
>>> isolve (5, 17 , 103)
[ 721, -206 ]