Diophantische vergelijkingen hebben wiskundigen betoverd sinds Diophantus van Alexandrië eerst voorgesteld het oplossen van een vergelijking van de vorm ax + bx = c . In deze vorm is de vergelijking bekend als een lineaire Diophantine vergelijking. Deze vergelijking heeft alleen een oplossing wanneer c is de grootste gemene deler van a en b of c bij een veelvoud is van de grootste gemene deler van a en b . Anders zijn er geen oplossingen voor deze vergelijking . Ontwikkeld door professor Jim Carlson van de Universiteit van Illinois in Urbana /Champagne , het korte programma hieronder toont de kracht van Python voor wiskundige taken. Wat je nodig hebt Python 2.6 of hoger Toon Meer Aanwijzingen 1 Open een terminal sessie en roepen de Python-interpreter met het volgende commando : Mijn - iMac : ~ me $ python - v Dit zal een lange lijst van alle python -modules beschikbaar zijn in uw installatie terug te keren en aan het einde zal het u vertellen welke versie van python op uw computer is geïnstalleerd . kopen van 2 Maak een nieuwe definitie van een functie in Python door het invoeren van de volgende code op de Python prompt . Naar aanleiding van professor Carlson , zullen we noemen dit " isolve " : >>> def isolve ( a , b , c ) : De dubbele punt zal vertellen Python niet meteen interpreteren als u de return toets in te drukken , zodat u meer ruimte voor uw programma . 3 Maak twee variabelen , q en r , dat zal staan voor het quotiënt en de rest van de vergelijking variabelen a en b , en dan roepen de Python -functie DIVMOD , die zal vinden en verdeel twee getallen en tonen hun deler en een eventuele restwaarde . De code moet er zo uitzien : ... q , r = DIVMOD ( a , b ) op Twitter 4 Maak een if-statement dat snel zal uitvoeren een oplossing voor de vergelijking als hun is geen rest . Typ het volgende : ... Als r == 0 : ... terug ( [ 0 , c /b ] ) op Twitter 5 Maak een andere verklaring voor het geval dat er een rest: ... anders : ... sol = isolve ( b , r , c ) op Twitter ... u = sol [ 0 ] ... v = sol [ 1 ] ... terug ( [ v, u - q * v ] ) op Twitter Dit zal zetten b en r in de DIVMOD exploitant , terug hun waarden als de variabelen u en v en vervolgens terug te geven als de oplossing set [ v , en het product van q en v afgetrokken u] . De volledige code voor dit programma volgt : >>> def isolve ( a , b , c ) : ... q , r = DIVMOD ( a , b ) op Twitter ... Als r == 0 : ... terug ( [ 0 , c /b ] ) op Twitter ... anders : ... sol = isolve ( b , r , c ) op Twitter ... u = sol [ 0 ] ... v = sol [ 1 ] ... terug ( [ v, u - q * v ] ) op Twitter Let goed op de insprong na de if en de else statements . Python zal niet deze code de return toets uit te voeren zonder de juiste inspringen . Press 6 nog een keer terug te brengen van de Python prompt . Voer de isolve functie en drie waarden voor z , y en c en druk op " Return . " Moet je zien : >>> isolve ( 5 , 17 , 103 ) op Twitter [ 721 , -206 ] < br > |