Diseña un sitio como este con WordPress.com
Comenzar

En Python, 3^5 es igual a 6

En muchos lenguajes de programación la instrucción a^b indica “a elevado a b”. La potencia de toda la vida, vaya. Así ocurre en R, por ejemplo. Sin embargo, en Python, esto se escribe como a**b (dos asteriscos).

Hoy en clase una alumna me preguntó algo en lo que no había caído antes:

-Julio, pero entonces ¿qué resultado devuelve a^b en Python? Porque no da error. ¡Da un número!

Ahí he pensado “¿en serio?¿Y no da error? No sé, a saber…”. Pero, antes de adelantarme, le he respondido:

-Ahora no te lo sé decir, lo miro y os lo comento en las historias de Instagram (@julio.mulero, por cierto).

Porque sí. No te sorprendas. Si quieres que se enteren de algo rápidamente, Instagram funciona a las mil maravillas.

Total, que he llegado a casa y me he puesto comprobarlo. Y, efectivamente, por ejemplo, 3^5 devuelve un número que no es “3 elevado a 5”, pero tampoco habría sabido deducirlo. ¿Qué narices es? Después de unas cuantas búsquedas, he llegado a lo que quería y, si quieres, te voy a contar por qué 3^5 = 6 en este lenguaje de programación.

Imagen

En primer lugar, debemos acudir a la representación binaria de los dos números (3 y 5) con los mismos cifras (poniendo ceros delante si es necesario). En particular, si tomamos tres cifras,

3 = 011 (en binario),

5 = 101 (en binario).

Imagen

En segundo lugar, vamos comparando las cifras (0 o 1) de cada número, posición a posición, y construiremos nuestro resultado. Si las dos cifras son iguales, nuestro resultado tendrá un 0. En caso contrario, tendrá un 1.

Imagen

Por ejemplo, las cifras más a la izquierda son:

Para el 3, un 0.

Para el 5, un 1.

Nuestro resultado tendrá un 1 en esa posición.

Imagen

Para las cifras en la posición intermedia:

El 3 tiene un 1.

El 5 tiene un 0.

Nuestro resultado tendrá un 1 en esa posición.

Imagen

Por último, las cifras más a la derecha son:

Para el 3, un 1.

Para el 5, un 1.

Nuestro resultado tendrá un 0 en esa posición.

Imagen

Es decir, en binario, el resultado buscado se escribe como:

110

Y aquí tenemos el 6.

6 = 110 (en binario).

Imagen

Ok, pues muy bien. Menuda locura. Al menos ya tenía la explicación por la que 3^5 vale 6 en Python.

Ahora bien, ¿qué es esto?

Bueno, sin entrar en muchos detalles, es un operador lógico bit a bit.

Un operador lógico actúa sobre dos operandos que pueden ser verdaderos o falsos y devuelve como resultado verdadero o falso. Habitualmente, 1 indica verdadero y 0, falso. 

Existen muchos operadores lógicos. Por ejemplo:

x AND y: Devuelve verdadero si x e y son verdaderos.

x OR y: Devuelve verdadero si al menos uno de los dos es verdadero.

x XOR y: Devuelve verdadero solo si exactamente uno de los dos es verdadero.

De aquí salen las típicas tablas de verdad, considerando las dos opciones posibles para x e y:

1: Verdadero.

0: Falso.

El resultado de x^y está relacionado con el operador XOR. En concreto, se aplica este operador bit a bit.

Por eso, para las cifras más a la izquierda (o intermedias), que son un 0 y un 1, el resultado es 1.

Y para las cifras más a la derecha, que son 1 y 1, el resultado es 0.

Imagen

En resumen, en Python,

3^5 = 6.

Y esto se debe a un operador lógico (XOR) bit a bit.

Así que hoy, último lunes lectivo del año 2021, he aprendido algo nuevo gracias a mis alumnos/as. Y ellos, desde este mediodía, lo tienen en Instagram y, desde este momento, en Twitter. No dejemos de atender sus dudas porque, al fin y al cabo, ellos/as son el mejor combustible para que nosotros y nosotras sigamos aprendiendo.

Anuncio publicitario

Deja una respuesta

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Crea un blog o un sitio web gratuitos con WordPress.com.

Subir ↑

La de Maldita Melena

Blog personal de Natalia Robles Mures

El sitio tranquilo

No sé vender mi producto

Messiánico de Alfredo N. Avila

Disfruta y comparte mis letras. Contenido diario... Sígueme para más inspiraciones literarias.

Qué vamos a hacer hoy

Matemáticas + Actividades en familia por Córdoba y en casa

Literatura de Japón

Tu portal de lectura asiática y mucho más.

Bits&Science

Ciencia natural y formal... con humor.

John Aranda

Blog de literatura, música, poesía y filosofía.

Letras & Poesía: Literatura Independiente

Plataforma que promueve el trabajo de escritores independientes

A %d blogueros les gusta esto: