NumPy
ScyPy ( ScyPy es un conjunto de paquetes específicos que se basan en los de NumPy )
SymPy ( ScyPy es sistema CAS, que viene como un conjunto de paquetes específicos de cálculo simbólico basados en Python )
Más vídeos similares, aquí
ENUNCIADO. Sean dos matrices cuadradas de orden $3$: $A=(a_{ij})_{3 \times 3}$ y $B=(b_{ij})_{3 \times 3}$. Sabemos que el producto $A\,B$, viene dado por $\displaystyle A\,B=(c_{ij})_{3 \times 3}=\sum_{k=1}^{3} a_{ik}\cdot b_{kj}$ para $i=1,2,3$ y $j=1,2,3$. Escríbase un programa en Python para multiplicar dos de esas matrices, elegidas libremente.
SOLUCIÓN
def multiplicar_matrices(A, B): C = [[0, 0, 0], [0, 0, 0], [0, 0, 0]] for i in range(3): for j in range(3): for k in range(3): C[i][j] += A[i][k] * B[k][j] return C # Ejemplo de matrices de orden 3 A = [[1, 0, -1], [2, 1, 3], [-2, 0, -1]] B = [[4, 1, 0], [5, -5, 0], [3, 2, 1]] # Llamada a la función para multiplicar las matrices C = multiplicar_matrices(A, B) # Imprimir el resultado C for fila in C: print(fila)
Puesta en marcha del programa y resultado:
>>> %Run multiplicardosmatricesdeorden3.py [1, -1, -1] [22, 3, 3] [-11, -4, -1]$\diamond$
Aquí tenéis un algoritmo básico y el código del programa correspondiente en lenguaje Python [1]
def es_primo(numero): if numero < 2: return False for i in range(2, int(numero ** 0.5) + 1): if numero % i == 0: return False return True # Ejemplo de uso: numero = int(input("Ingrese un número: ")) if es_primo(numero): print(numero, "es un número primo.") else: print(numero, "no es un número primo.")
Y para encontrar los números primos mayores o iguales que $2$ y menores que $1000$, podéis escribir y hacer funcionar el siguiente programa en vuestro intérprete de Python (los hay que podéis utilizar en línea, sin instalar software de desarrollo en vuestro ordenador como, por ejemplo, éste [3]: https://www.tutorialspoint.com/online_python_compiler.php):
def es_primo(numero): if numero < 2: return False #la búsqueda acaba en la raíz cuadrada del número introducido más una unidad for i in range(2, int(numero ** 0.5) + 1): if numero % i == 0: return False return True primos = [] for num in range(2, 1001): if es_primo(num): primos.append(num) print("Números primos hasta 1000:") print(primos)
Al poner en marcha el programa, a cuyo archivo le he dado el nombre de numerosprimos.py,
>>> %Run numerosprimos.py
Nota: el símbolo >>> indica el prompt de la cónsola de vuestro entorno de desarrollo (fuera de línea, he utilizado el IDE Thonny [2] (habiendo instalado préviamente Python [1]), que es software libre, y es de fácil uso)
Podéis comprobar que se obtiene (rápidamente, en pocos segundos) ...
Números primos hasta 1000:
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149, 151, 157, 163, 167, 173, 179, 181, 191, 193, 197, 199, 211, 223, 227, 229, 233, 239, 241, 251, 257, 263, 269, 271, 277, 281, 283, 293, 307, 311, 313, 317, 331, 337, 347, 349, 353, 359, 367, 373, 379, 383, 389, 397, 401, 409, 419, 421, 431, 433, 439, 443, 449, 457, 461, 463, 467, 479, 487, 491, 499, 503, 509, 521, 523, 541, 547, 557, 563, 569, 571, 577, 587, 593, 599, 601, 607, 613, 617, 619, 631, 641, 643, 647, 653, 659, 661, 673, 677, 683, 691, 701, 709, 719, 727, 733, 739, 743, 751, 757, 761, 769, 773, 787, 797, 809, 811, 821, 823, 827, 829, 839, 853, 857, 859, 863, 877, 881, 883, 887, 907, 911, 919, 929, 937, 941, 947, 953, 967, 971, 977, 983, 991, 997]
>>>
$\diamond$
El siguiente ejemplo de elaboración de programas empleando Python es muy sencillito. Puedes implementarlo en tu ordenador —instalando previamente el intérprete y algún enterno de programación de Python—, o si dispones de de una Raspberry Pi. Si dispones de alguna calculadora programable en este lenguaje (por ejemplo la calculadora NumWorks), a cuyo emulador en línea puede acceder siguiendo este enlace: https://www.numworks.com/simulator/. Te irás acostumbrando poco a poco de servirte de este efectivo recurso: investigar y poder resolver problemas mediante este recurso numérico (escribiendo algoritmos).
def factorial(n): resultado = 1 for i in range(1, n+1): resultado *= i return resultado print(factorial(5)) # imprime 120 (5! = 1 * 2 * 3 * 4 * 5)
$\diamond$