Matemáticas nativas
Cita con formato IEEE:
E. Bahit, "Matemáticas nativas", in
Python Aplicado, 4th ed., EBRC Publisher, 2022, pp.
189-207.
Cita con formato APA 7:
Bahit, E. (2022). Matemáticas nativas. In
Python Aplicado (4th ed., pp. 189-207). EBRC Publisher.
Cita en línea:
(Bahit, 2022)
La biblioteca estándar de Python ofrece siete módulos para dar soporte a operaciones numéricas, estadísticas, y matemáticas en general. Estos módulos se describen en la siguiente tabla.
| Módulo | Función | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| numbers | Se trata de un módulo que define pseudoclases abstractas para
tipos numéricos, pero que no están destinados a ser instanciados,
sino heredados12. La jerarquía de tipos definidos es
la siguiente:
|
||||||||||
| math | El módulo math provee un acceso directo a funciones matemáticas generales definidas en el estándar del lenguaje C. Algunas de sus funciones se describen a continuación. La documentación completa se encuentra disponible en https://docs.python.org/es/3/library/math.html | ||||||||||
| cmath | Similar a math pero con soporte para números complejos. | ||||||||||
| decimal | Es una alternativa al tipo float que ofrece mayor precisión en el cómputo aritmético y redondeo de números de coma flotante. | ||||||||||
| fractions | Módulo para realizar operaciones de cómputo con números racionales. | ||||||||||
| random | Módulo para generación de números pseudoaleatorios criptográficamente inseguros. | ||||||||||
| statistic | Funciones estadísticas. |
El módulo math
Algunas de las funciones destacadas de este módulo son las funciones
comb (combinatoria), factorial,
perm (permutaciones), gcd (máximo común
divisor), prod (producto), log (logaritmo),
pow (potencia), sqrt (raíz cuadrada),
sin, cos, y tan (seno, coseno, y
tangente, respectivamente). También retorna algunas constantes como
pi y e (número de Euler).
Combinaciones, factoriales y permutaciones
La teoría combinatoria formula las bases necesarias para poder realizar cuentas en situaciones complejas que no se resuelven con una simple suma.
Una combinación es cualquier selección de parte o de todos los objetos simultáneamente, a partir de un número de objetos dados.
Por ejemplo, ¿cuántas posibles combinaciones de dos letras existen a partir de las letras de la palabra hola? Se pueden combinar: ho, hl, ha, ol, oa, y la. Es decir, que para un total de 4 letras, tomadas de a 2 letras por vez, existe un total de 6 posibles combinaciones.
El número de combinaciones posibles para n objetos diferentes, seleccionando r objetos por vez, para r \le n está determinado por:
^{n}C_{r} = {n! \over {r!(n-1)!}}
Donde:
n! se denomina n factorial o factorial de n y se obtiene multiplicando todos los enteros positivos de n hasta el 1. Así, para n=7, n!=7 \times 6 \times 5 \times 4 \times 3 \times 2 \times 1 (en la práctica, se prescinde de la multiplicación por 1).
Dado que entre 0 y 1 el único entero positivo es 1, el factorial de 0 es 1, tal que 0! = 1.
^{n}C_{r} Se lee como combinaciones de n tomadas de r en r. También se denota con el binomio {n \choose r}.
Así, retomando el ejemplo de combinaciones de letras de la palabra hola tomadas de a 2 por vez, las 6 combinaciones posibles se obtendrían a partir de:
^{4}C_{2} = {4! \over {2!(4-2)!}}= {{4 \times 3 \times 2 \times 1} \over {2 \times 1 (4-2)!}} = {24 \over 2 \times 1 \times 2 \times 1} = {24 \over 4} = 6
La función math.comb(n, r) disponible desde
Python 3.8, retorna el número de combinaciones posibles
para n elementos tomados de r elementos por vez,
sin necesidad de tener que recurrir al factorial:
>>> from math import comb >>> comb(4, 2) 6
Sin embargo, en versiones anteriores, sí será necesario recurrir al
cálculo factorial, que podrá hacerse mediante la función
math.factorial(x) donde x es el número a
factorizar:
>>> from math import factorial >>> n = 4 >>> r = 2 >>> factorial(n) 24 >>> c = factorial(n) / (factorial(r) * factorial(n-r)) >>> c 6.0
En una combinación, el orden de los elementos es indistinto. Cuando el orden—y no la combinación— es importante, se aplican las leyes de la...