Come scrivere un programma in Python per diofantee equazioni

April 15

Come scrivere un programma in Python per diofantee equazioni


equazione diofantea hanno incantato i matematici da Diofanto di Alessandria proposto per la prima soluzione di un'equazione della forma ax + bx = c. In questa forma, l'equazione è nota come equazione diofantea lineare. Questa equazione ha solo una soluzione quando c è il massimo comun divisore di ae b o quando c è un multiplo del massimo comun divisore di ae b. Altrimenti, non esistono soluzioni per questa equazione. Sviluppato dal professor Jim Carlson della University of Illinois a Urbana / Champagne, il programma corto in basso mostra la potenza di Python per compiti matematici.

istruzione

1 Aprire una sessione di terminale e richiamare l'interprete Python con il seguente comando:
My-iMac: ~ me $ python -v

Ciò restituirà una lunga lista di tutti i moduli Python disponibili nella propria installazione e alla fine vi dirà che è installata la versione di Python sul computer.

2 Creare una nuova definizione di una funzione in Python inserendo il codice seguente al prompt di Python. In seguito il professor Carlson, chiameremo questo "isolve":

def isolve (a, b, c):
I due punti dirà Python non interpretare immediatamente quando si preme il tasto di ritorno in modo da avere più spazio per il vostro programma.

3 Creare due variabili, q e r, che rimarrà per il quoziente e resto le variabili equazione A e B, e poi richiamare la funzione Python divmod, che troverà e dividere due numeri e visualizzare il loro divisore e il resto, se presente. Il codice dovrebbe essere simile a questo:
... Q, r = divmod (a, b)

4 Creare un'istruzione if che sarà presto in uscita una soluzione dell'equazione quando il loro non è un resto. Digitare quanto segue:

... Se r == 0:
... Ritorno ([0, c / b])

5 Crea un else per il caso in cui vi è un resto:

... altro:
... Sol = isolve (b, r, c)
... U = sol [0]
... V = sol [1]
... Ritorno ([v, u - q * v])
Questo metterà b ed r nell'operatore divmod, restituire loro valori variabili u e v e poi li versa la soluzione set [v, ed il prodotto di q e V sottratto u]. Il codice completo per questo programma segue:

def isolve (a, b, c):
... Q, r = divmod (a, b)
... Se r == 0:
... Ritorno ([0, c / b])
... altro:
... Sol = isolve (b, r, c)
... U = sol [0]
... V = sol [1]
... Ritorno ([v, u - q * v])
Prestare particolare attenzione al rientro dopo il caso e le else. Python non esegue questo codice senza la corretta indentazione.

6 Premere il pulsante di ritorno ancora una volta per riportare il prompt di Python. Inserire la funzione isolve e tre valori per z, Y e C e premere il tasto "Return". Si dovrebbe vedere questo:

isolve (5, 17, 103)
[721, -206]