Diofantisk ligninger har trollbundet matematikere siden Diofant av Alexandria først foreslått å løse en ligning på formen ax + bx = c . I denne form er ligningen kjent som en lineær Diofantisk ligning . Denne ligningen har bare en løsning når c er den største felles divisor av A og B , eller når c er et multiplum av den største felles divisor av a og b . Ellers er det ingen løsninger for denne ligningen . Utviklet av professor Jim Carlson ved University of Illinois i Urbana /Champagne , viser kortprogram under kraften av Python for matematiske oppgaver. Du trenger
Python 2.6 eller høyere
Vis flere instruksjoner
en
Åpne en terminal sesjon og påkalle Python tolk med følgende kommando:
< p > Min - iMac: ~ meg $ python -v
Dette vil returnere en lang liste over alle Python-moduler er tilgjengelige i din installasjon , og på slutten vil den fortelle deg hvilken versjon av Python er installert på datamaskinen.
2
Opprett en ny definisjon av en funksjon i Python ved å skrive inn følgende kode i Python ledeteksten. Etter Professor Carlson , vil vi kaller dette " isolve " : en
>>> def isolve ( a, b , c ) : en
Tykktarmen vil fortelle Python ikke umiddelbart tolke når du treffer retur -tasten slik at du har mer plass for programmet.
3
Lag to variabler , q og r , som vil stå for kvotienten og resten ligningen variablene a og b , og start deretter Python funksjon divmod , som vil finne og dele to tall og vise sin divisor og resten , hvis noen. Koden skal se slik ut : en
... q , r = divmod ( a, b )
4
Lag en if setning som vil raskt sende ut en løsning til ligningen når deres er ingen rest . Skriv inn følgende : en
... hvis r == 0 : en
... returnere ( [ 0 , c /b] )
5
Lag en else statement for de tilfeller hvor det er en rest : en
... annet : en
... sol = isolve ( b , r, c )
... u = sol [ 0 ]
... v = sol [ 1 ]
... returnere ( [ v, u - q * v ] )
p Dette vil sette b og r inn i divmod operatør, returnere sine verdier som variablene u og v og deretter returnere dem som løsningen sett [v , og et produkt av q og v subtrahert fra U] . Den komplette koden for dette programmet følger : en
>>> def isolve ( a, b , c ) : en
... q , r = divmod ( a, b )
... hvis r == 0 : en
... returnere ( [ 0 , c /b] )
... annet : en
... sol = isolve ( b , r, c )
... u = sol [ 0 ]
... v = sol [ 1 ]
... returnere ( [ v, u - q * v ] )
betaler nær oppmerksomhet til innrykk etter hvis og else-påstandene . Python vil ikke utføre denne koden uten riktig innrykk.
6
Trykk avkastningen knappen en gang til for å bringe tilbake Python prompt. Skriv inn isolve funksjon og tre verdier for z , y og c , og trykk " Return". Du bør se denne : en
>>> isolve ( 5 , 17, 103 )
[ 721 , -206 ]