Nwlapcug.com


Come scrivere un programma in Python per equazioni diofantee



Equazioni di Diophantine hanno incantato matematici poiché Diofanto di Alessandria propose di risolvere un'equazione della forma ax + bx = c. In questa forma, l'equazione è conosciuta come un'equazione diofantea lineare. Questa equazione ha una soluzione solo quando c è il massimo comun divisore di a e b o quando c è un multiplo di massimo comun divisore di a e b. in caso contrario, non esistono soluzioni per questa equazione. Sviluppato dal Professor Jim Carlson dell'Università dell'Illinois a Urbana/Champagne, il breve programma riportato di seguito mostra la potenza di Python per mansioni matematiche.

Istruzioni

1

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

Verrà restituito un lungo elenco di tutti i moduli Python disponibili nell'installazione e alla fine ti dirà quale versione di Python è installato sul tuo computer.

2

Creare una nuova definizione di una funzione Python immettendo il codice riportato di seguito al prompt di Python. In seguito il Professor Carlson, chiameremo questa "isolve":

isolve(a,b,c) def:
I due punti verranno dirà Python non interpretare immediatamente quando si preme il tasto return, modo che avete più spazio per il vostro programma.

3

Creare due variabili, q e r, che stand per il quoziente e resto le variabili dell'equazione un e b e quindi richiamare il divmod di funzione di Python, che troverete e divide due numeri e visualizzarne i divisore e il resto, se qualsiasi. Il codice dovrebbe risultare come questo:
... q, r = divmod(a,b)

4

Creare un'istruzione if istruzione che produrrà rapidamente una soluzione dell'equazione quando non c'è nessun resto. Digitare quanto segue:

... se r = = 0:
... ritorno ([0, c/b])

5

Creare un'istruzione else per il caso dove c'è un resto:

... altro:
... sol = isolve(b,r,c)
... u = sol [0]
... v = sol [1]
... ritorno ([v, u - q * v])
Questo mettere nell'operatore divmod b e r, restituire loro i valori come le variabili u e v e poi restituirle come l'insieme delle soluzioni [v e il prodotto di q e v sottratto da u]. Segue il codice completo per questo programma:

isolve(a,b,c) def:
... 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 per il rientro dopo l'if ed else istruzioni. Python non eseguirà questo codice senza il rientro appropriato.

6

Premere il pulsante return ancora una volta a riportare il prompt di Python. Immettere la funzione isolve e tre valori per z, y e c e premere "Return". Dovreste vedere questo:

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