equações diofantinas encantaram os matemáticos desde Diofanto de Alexandria propôs pela primeira vez resolver uma equação da forma ax + bx = c . Nesta forma , a equação é conhecido como uma equação linear Diophantine . Esta equação tem apenas uma solução , quando c é o maior divisor comum de a e b , ou quando c é um múltiplo do maior divisor comum de a e b . Caso contrário , não há soluções para esta equação . Desenvolvido pelo professor Jim Carlson , da Universidade de Illinois em Urbana /Champagne, a curto programa abaixo mostra o poder do Python para tarefas matemáticas. Coisas que você precisa
Python 2.6 ou superior
Visualizar Mais instruções
1
Abra uma sessão de terminal e invocar o interpretador Python com o seguinte comando:
My- iMac: ~ me $ python -v
Isso irá retornar uma longa lista de todos os módulos Python disponíveis em sua instalação e no final ele vai dizer qual a versão do Python é instalado no seu computador.
2
Criar uma nova definição de uma função em Python , digitando o seguinte código no prompt do Python. Após Professor Carlson , vamos chamar isso de " isolve " :
>>> def isolve (a, b, c):
O cólon dirá Python para não interpretar imediatamente quando você pressione a tecla Enter para que você tenha mais espaço para o seu programa.
3
Criar duas variáveis, Q e R , que vai ficar para o quociente eo resto da variáveis da equação a e B e, em seguida, chamar a função divmod Python, que irá encontrar e dividir dois números e mostrar o seu divisor e restante, se houver . O código deve ser semelhante a este :
... q, r = divmod (a, b)
4
Criar uma instrução if que rapidamente saída de uma solução para a equação quando a sua não é resto . Digite o seguinte :
... se r == 0 :
... retorno ( [0, c /b] )
5
Crie uma instrução mais para o caso em que há um resto :
... outra coisa :
... sol = isolve (b, r, c)
... u = sol [0]
... v = sol [ 1]
... retorno ( [v , u - q * v] )
Isso vai colocá- b e r para o operador divmod , devolver os valores que as variáveis u e v e , em seguida, devolvê-los como a solução defina [ v, e o produto de q e v subtraído u ] . O código completo para este programa segue :
>>> def isolve (a, b, c):
... q , r = divmod ( a, b )
... se r == 0 :
... voltar ( [0, c /b] )
... outra coisa :
... sol = isolve (b, r, c)
... u = sol [0]
... v = sol [ 1]
... retorno ( [v , u - q * v] )
Preste muita atenção para o recuo após o caso eo else . Python não irá executar este código , sem o recuo adequado.
6
Pressione o botão de retorno mais uma vez para trazer de volta o prompt Python. Digite a função isolve e três valores para z , y e c e pressione "Return ". Você deve ver o seguinte:
>>> isolve (5 , 17, 103)
[ 721, -206 ]