Diophantine ligninger har fortryllet matematikere siden Diofant af Alexandria først foreslog at løse en ligning af formen ax + bx = c . I denne form , er ligningen kendt som en lineær diofantisk ligning . Denne ligning kun har en løsning, når c er den største fælles divisor af a og b , eller når c er et multiplum af den største fælles divisor af a og b . Ellers er der ingen løsninger til denne ligning . Udviklet af professor Jim Carlson fra University of Illinois i Urbana /Champagne , det korte program nedenfor viser magt Python til matematiske opgaver. Ting du skal
Python 2.6 eller højere
Vis Flere Instruktioner
1
Åbn en terminal session og påberåbe sig Pythonfortolkeren med følgende kommando : Hej
My- iMac: ~ mig $ python -v
Dette vil returnere en lang liste over alle de Pythonmoduler tilgængelige i din installation og i slutningen det vil fortælle dig , hvilken version af Python er installeret på din computer.
2
Opret en ny definition af en funktion i Python ved at indtaste følgende kode på Python prompt. Efter Professor Carlson , vil vi kalde denne " isolve " : Hej
>>> def isolve (a, b, c) : Hej
kolon vil fortælle Python ikke straks fortolke , når du rammer afkastet nøgle, så du har mere plads til dit program.
3
Opret to variabler , q og r , der vil stå for kvotienten og resten af ligningsvariable a og b og derefter påberåbe sig Python funktion divmod , som vil finde og dividere to tal og vise deres divisor og resten , hvis nogen. Koden skal se sådan ud : Hej
... q, r = divmod ( a, b)
4
Opret en hvis erklæring om, at der hurtigt vil udsende en løsning på ligningen, når deres er ingen resten . Indtast følgende : Hej
... hvis r == 0 : Hej
... returnere ( [0, c /b] )
5
Opret en ellers erklæring til det tilfælde, hvor der er en rest : Hej
... ellers : Hej
... sol = isolve ( b , r, c )
... u = sol [0]
... v = sol [1]
... returnere ( [ v, u - q * v] )
Dette vil sætte b og r ind i divmod operatør returnere deres værdier variablerne u og v og derefter returnere dem som løsningen sæt [ v, og produktet af q og v trækkes fra u ] . Den komplette kode til dette program følger : Hej
>>> def isolve (a, b, c) : Hej
... q, r = divmod ( a, b)
... hvis r == 0 : Hej
... returnere ( [0, c /b] )
... ellers : Hej
... sol = isolve ( b , r, c )
... u = sol [0]
... v = sol [1]
... returnere ( [ v, u - q * v] )
Vær meget opmærksom på indrykningen efter hvis og else udsagn. Python vil ikke udføre denne kode uden ordentlig indrykning.
6
Tryk på knappen RETURN én mere tid til at bringe tilbage Python prompt. Indtast isolve funktion og tre værdier for z, y og c og trykke på " Return ". Du bør se dette : Hej
>>> isolve (5 , 17, 103)
[ 721, -206 ]
< br >