lunes, 20 de enero de 2020

Comentarios sobre las respuestas no deseadas de las instrucciones "residuo" y "cociente" de muchas herramientas de cálculo

Las instrucciones básicas de muchas herramientas de cálculo no dan el resultado esperado al utilizar las instrucciones al uso para efectuar calcular el resto y el cociente de una división entera si el dividendo o bien el divisor son, en general, negativos. Probando algunas de estas instrucciones con el lenguaje de programación/herramienta de cálculo Python me he dado cuenta de ello. También lo he comprobado con la calculadora TI Voyage 200 y con el programa de cálculo simbólico MAXIMA, con los mismos resultados incorrectos de acuerdo con el teorema de la división entera (TDE), que recordemos que afirma lo siguiente:

Sean dos números enteros $a$ ( dividendo ) y $b\neq 0$ ( divisor ), entonces existen otros dos números enteros $q$ (cociente) y $r$ (resto), únicos, tales que:
i) $a=bq+r$
ii) $0\le r \prec |b|$

Por tanto, hay que tener muy en cuenta estos resultados inesperados en los cálculos con programas y herramientas de cálculo en los que se hagan uso de las instrucciones 'cociente' y 'resto' al trabajar con números enteros. No obstante, todo va bien si el dividendo y el divisor son positivos, incluso si el dividendo es negativo y el divisor positivo, pero se obtienen respuestas incorrectas.

-oOo-

He hecho las siguientes pruebas, por si queréis reproducirlas:

Toda va bien ...
Python responde con los resultados correctos del cociente y el resto si el dividendo y el divisor son positivos, incluso si el dividendo es menor que el divisor; y también si el dividendo es negativo y el divisor es positivo. Así, por ejemplo, según el TDE, si a:=9 y b:=5, entonces $r=4$ y $q=1$ ( lápiz y papel ), y, mediante Python, se obtienen estos resultados: para a//b (cociende de a/b), 1 y para a%b (resto de a/b ), 4. Así, pues, todo va bien con números enteros positivos. También se obtienen los resultados correctos si $a\prec b$ ( el dividendo es menor que el divisor ): el cociente ha de ser cero, q=0, y el resto ha de ser igual al divisor, r=b; en efeto, pongamos que $a:=1$ y $b:=2$, con Python obtenemos también en este caso lo que se espera a//b es 0 y de a%b, 2. Incluso si el dividendo es negativo y el divisor postivo, también se obtiene lo correcto; por ejemplo, si $a:=-9$ y $b:=5$, el cociente, según el TDE, ha de ser -2 y el resto 1, y, así es, en efecto: haciendo a//b se obtiene -2 y haciendo a%b, 1, como debe ser.

Pero se obtienen respuestas inesperadas en otros casos ...
Ahora bien, Python da respuestas incorrectas -- como también las da MAXIMA, así como la calculadora TI Voyage 200 ( No lo he probado de momento con otras herramientas ) -- para el resto y el cociente en los otros casos, cuando el dividendo es positivo y el divisor es negativo, y cuando ambos son negativos. Por ejemplo, según el TDE, si a:=9 y b:=-5, entonces r=4 y q=-1; y, sin embargo, estas no son las respuestas de Python: haciendo a//b se obtiene como respuesta -2 (cociente) y haciendo a%b, -1 (resto). Veamos a continuación otro ejemplo de la incorrección de los resultados obtenidos, para a:=-9 y b:=-5, según el TDE, r=1 y q=-2; ahora bien, con Python, a//b responde 1 ( y no -2) y a&b, -4, en lugar de 1.

$\square$

jueves, 9 de enero de 2020

La regla de oro de la ciencia de los datos: correlación no implica causalidad

En clase hemos visto muchas veces que "correlación no implica causalidad". Hemos dado algunos ejemplos, ya clásicos, al respecto. En el número de diciembre de 2019 de la revista Investigación y Ciencia ( n.º 519, p. 8), el periodista gráfico Alberto Cairo ( Universidad de Miami ) hace hincapié en ello, mostrando un ejemplo más: analizando una correlación entre el porcentaje de obesidad y la esperanza de vida al nacer en diversas muestras de una población. Muestra una vez más, de manera gráfica, que la detección de una correlación no garantiza en modo alguno una supuesta relación de causalidad.$\square$