-
Cómo escribir un programa en Python para Ecuaciones diofánticas
-
ecuaciones diofánticas han encantado a los matemáticos desde Diofanto de Alejandría propuso por primera vez la solución de una ecuación de la forma ax + bx = c. En esta forma, la ecuación se conoce como una ecuación lineal Diophantine. Esta ecuación tiene solamente una solución cuando c es el máximo común divisor de a y b o cuando c es un múltiplo del mayor divisor común de a y b. De lo contrario, no hay soluciones para esta ecuación. Desarrollado por el profesor Jim Carlson, de la Universidad de Illinois en Urbana / Champagne, el programa corto de abajo muestra el poder de Python para tareas matemáticas.Instrucciones
1 Abra una sesión de terminal e invoque el intérprete de Python con el siguiente comando:
Mi Imac: ~ $ pitón me -vEsto devolverá una larga lista de todos los módulos de Python disponibles en su instalación y al final se le dirá que está instalada la versión de Python en su ordenador.
2 Crear una nueva definición de una función en Python introduciendo el código siguiente en el símbolo del pitón. Siguiendo el profesor Carlson, vamos a llamar a este "iSOLVE":
iSOLVE def (a, b, c):
El colon le dirá Python no interpretar inmediatamente cuando se pulse la tecla de retorno para que tenga más espacio para su programa.3 Crear dos variables, Q y R, que se mantengan de parte del cociente y el resto de la ecuación las variables a y b, y luego invocar el DIVMOD función de Python, que se encuentra y dividir dos números y mostrar su divisor y el resto, si lo hubiere. El código debería tener este aspecto:
... Q, r = DIVMOD (a, b)4 Crear una sentencia if que se hará de forma rápida salida de una solución a la ecuación cuando su no hay resto. Escriba lo siguiente:
... Si r == 0:
... De retorno ([0, c / b])5 Crear una declaración de otra persona para el caso en el que hay un resto:
... Otra cosa:
... Sol = iSOLVE (b, r, c)
... U = sol [0]
... V = Sol [1]
... De retorno ([v, u - q * v])
Esto pondrá B y R en el operador DIVMOD, volver a sus valores como las variables u y v y luego devolverlos como el conjunto solución [v, y el producto de Q y V resta de u]. El código completo de este programa sigue:iSOLVE def (a, b, c):
... Q, r = DIVMOD (a, b)
... Si r == 0:
... De retorno ([0, c / b])
... Otra cosa:
... Sol = iSOLVE (b, r, c)
... U = sol [0]
... V = Sol [1]
... De retorno ([v, u - q * v])
Prestar mucha atención a la sangría después del caso y las else. Python no ejecutará el código sin el sangrado adecuado.6 Pulse el botón de devolución una vez más para traer de vuelta el prompt de Python. Introduzca la función iSOLVE y tres valores de z, Y y C y pulse "Return". Usted debe ver esto:
iSOLVE (5, 17, 103)
[721, -206]