Informática

Un ordenador hace exactamente lo que le has dicho, y lo bastante rápido como para que la diferencia entre un buen algoritmo y uno malo resulte imposible de ignorar. Aquí se ejecutan los dos y ves abrirse la brecha.

Newest in this category

Capítulos

Secuencias breves en lugar de herramientas sueltas. Cada paso entrega al siguiente algo concreto, así que conviene seguir el orden.

L1: fundamentos

Cómo ejecuta un programa un ordenador

COMPDe una puerta lógica a un programa en marcha. Con puertas NAND puedes construir cualquier circuito. Un sumador hecho de puertas también permite restar. El Little Man Computer reúne ese sumador y cien buzones: el programa ocupa la misma memoria que los números con los que trabaja. La máquina ejecuta lo que encuentre en la dirección que indica su contador de programa.

  1. 01Puertas lógicas
  2. 02Aritmética binaria
  3. 03El Little Man Computer
  4. 04Memoria y bytes
  5. 05La pila de llamadas
  6. 06Localidad de la caché

L1: fundamentos

Cómo se rompen los códigos

COMPCada cifrado de esta serie oculta las letras, pero deja otra cosa a la vista. La sustitución conserva el recuento de cada letra, el cifrado con palabra clave las alinea en columnas y una libreta de un solo uso empleada dos veces delata los espacios. Solo una clave aleatoria tan larga como el propio mensaje no revela absolutamente nada. El problema pasa a ser entonces cómo hacérsela llegar al destinatario, algo que las dos últimas páginas resuelven a la vista de todos.

  1. 01Cifrado por sustitución
  2. 02Cifrado de Vigenère
  3. 03Libreta de un solo uso
  4. 04Diffie–Hellman
  5. 05RSA

L2: escuela

Qué operaciones abarata una estructura de datos

COMPCada estructura responde con rapidez a una pregunta concreta y lo paga en otra parte. Un filtro de Bloom no guarda ninguna clave y aun así puede decir seguro que no; un árbol de prefijos resuelve consultas por prefijo que una tabla de dispersión no puede resolver; un montículo siempre sabe cuál es su clave mínima y poco más. La última página plantea qué página expulsar de la memoria. Para elegir la mejor habría que conocer el futuro.

  1. 01Filtro de Bloom
  2. 02Árbol de prefijos
  3. 03Montículo binario
  4. 04Reemplazo de páginas

L3: universidad

Proteger una transmisión: revocar un dispositivo y descubrir cuál fue

COMPDos mitades del mismo problema, en el orden en que un estudio se enfrenta a ellas. Primero, se ha filtrado una clave y la licencia debe seguir funcionando para los demás. Resulta que esto cuesta un encabezado que no crece en absoluto con el tamaño del sistema. Después llega la mitad más difícil: saber de quién era esa clave, a partir de una copia que varios suscriptores crearon juntos específicamente para que no identifique a nadie.

  1. 01Revocación de dispositivos
  2. 02Marca de agua forense

L3: universidad

La transformada de Fourier en la práctica

COMPUna señal es una suma de flechas giratorias, y cualquier método práctico para interpretarlas tiene un coste que la fórmula del libro de texto pasa por alto. Una ventana finita dispersa un tono que no encaja en ella por todas las bandas; una ventana más corta gana tiempo y lo paga en afinación; un promedio es un filtro con forma propia, y la última página es la razón por la que todo esto resulta viable.

  1. 01Transformada discreta de Fourier
  2. 02Espectrograma
  3. 03Media móvil como filtro
  4. 04Transformada rápida de Fourier

L3: universidad

Por qué un algoritmo es correcto

COMPUn algoritmo es correcto por una razón que se puede enunciar, y falla por un error que una pequeña prueba puede descubrir. Cada página sitúa una versión correcta junto a una errónea pero verosímil: catorce de las dieciséis formas de escribir la búsqueda binaria fallan, el algoritmo voraz para dar cambio se equivoca con las antiguas monedas británicas y jamás con los centavos de Estados Unidos, Kruskal y Prim coinciden por un motivo lógico, y un código que corrige un bit invertido agrava el problema si se invierten dos.

  1. 01Búsqueda binaria
  2. 02Cambio de monedas
  3. 03Árbol de expansión mínima
  4. 04Código de Hamming

Problemas resueltos al detalle

Lo que descubrirás aquí

Artículos escritos a partir de estas herramientas

Todas las herramientas de esta sección

Algorithms & Data Structures

Árbol de expansión mínimo: Kruskal y Prim
Doce pueblos, 66 carreteras posibles. Kruskal y Prim eligen 11 en distinto orden y llegan al mismo resultado: 199,04 km. Cada carretera que toman es la más barata que cruza un corte. Ir siempre al pueblo más cercano cuesta un 10,76% más; para tres localidades separadas por 40 km, un enlace intermedio ahorra un 13,40%.
Búsqueda binaria: cuatro opciones, dieciséis bucles
Un bucle de búsqueda binaria exige tomar cuatro decisiones, y solo 2 de las 16 combinaciones son correctas. Construye el bucle, observa cómo recorre un vector pequeño y pruébalo con todos los vectores de hasta 256 elementos. Los bucles incorrectos ya han fallado al llegar a dos elementos.
Cambio de monedas: método voraz frente a solución óptima
Para pagar 48d con el antiguo sistema británico, el método voraz entrega una media corona, un chelín y seis peniques, aunque bastarían dos florines. Compáralo con la solución óptima por programación dinámica en cualquier sistema de monedas, observa cómo se rellena la tabla celda a celda y usa la cota que permite comprobar un sistema en un número finito de pasos.
Camino más corto de Dijkstra
El nodo 1 está a una arista del origen con un coste de 4, y su distancia más corta es 3 pasando por el nodo 3. Carga el preajuste de aristas negativas y el nodo 3 se quedará en −1, mientras la reconstrucción de la ruta te informa de un bucle.
Carrera de algoritmos de ordenamiento
Ordenar 64 elementos invertidos le cuesta al algoritmo de burbuja exactamente 2.016 intercambios, uno por inversión, y cualquier algoritmo de intercambiar vecinos tiene ese mismo límite inferior. Quicksort los resuelve con 32 intercambios, desplazando los elementos 63 posiciones.
Cifrado de Vigenère: halla la longitud de clave y descífralo
Cifra el comienzo de Las aventuras de Alicia en el país de las maravillas con una palabra clave y luego descífralo tú: halla la longitud de clave a partir del índice de coincidencia de cada k-ésima letra, verifícala con los grupos de letras repetidos de Kasiski y deduce cada letra de la clave mediante una prueba de chi-cuadrado.
Cifrados por sustitución: 26! claves descifradas contando letras
Desentraña por tu cuenta un cifrado César y una sustitución completa a partir del recuento de letras. El estadístico chi-cuadrado acierta el desplazamiento César el 99,1 % de las veces con solo 31 letras; ordenar las letras por frecuencia, incluso en un relato entero de 32.725 letras, todavía confunde cinco de las 26.
Diffie-Hellman: un secreto acordado en público
Alice y Bob acuerdan una clave secreta por un canal abierto y a ti te toca espiar. Avanza paso a paso por la fuerza bruta y por Pohlig-Hellman, y comprueba por qué el primo 1621 cae en 21 intentos como mucho, mientras que el 1619, dos unidades por debajo, aguanta 811.
Explorador de árboles de recursión
Cuenta las llamadas, los subproblemas distintos y la profundidad de la pila de un árbol de llamadas recursivas ingenuo para Fibonacci, la torre de Hanói, la regla de Pascal, el ordenamiento por mezcla y el problema de las escaleras. Podrás ver exactamente cuándo resulta rentable usar una tabla de memoización.
Explorador de coloreo de grafos
Colorea los vértices de un grafo, comprueba restricciones cromáticas y explora las cotas inferiores por cliques.
Explorador de complejidad Big-O
Visualiza cómo se comparan las tasas de crecimiento O(1), O(log N), O(N), O(N²), O(2ᴺ) y O(N!) en distintas escalas.
Filtro de Bloom: seguro que no, o probablemente sí
Inserta palabras en un filtro de Bloom de una en una, consulta otras y cuenta los falsos positivos entre 10.000 cadenas que nunca se insertaron. Compara la estimación estándar con el comportamiento real del filtro, encuentra el número óptimo de funciones de dispersión y descubre por qué un filtro de Bloom básico no permite eliminar elementos.
Libreta de un solo uso: inviolable una vez, rota con dos
Cifra un mensaje con una clave aleatoria de su misma longitud y escribe luego cualquier otro texto igual de largo: obtendrás la clave exacta que lo habría generado. Si reutilizas esa clave en un segundo mensaje, verás cómo se anula sola, lo que te permite deslizar una palabra supuesta y descifrar ambos a la vez.
Montículo binario: una cola de prioridad en un vector
Con quince claves de mayor a menor, construir el montículo cuesta 34 comparaciones si las insertas una a una y 22 si empiezas por el último padre; con 1.023 claves, son 8.194 frente a 2.026. Sigue cada comparación e intercambio con el árbol y el vector a la vista, y extrae las claves de menor a mayor.
Reemplazo de páginas: FIFO, LRU y la política óptima
Recorre paso a paso una cadena de referencias con unos pocos marcos de memoria y cuenta los fallos con FIFO, LRU y la política óptima de Bélády. Para 1 2 3 4 1 2 5 1 2 3 4 5, FIFO produce 9 fallos con 3 marcos y 10 con 4; con LRU y OPT, ampliar la memoria nunca aumenta los fallos.
Trie: el árbol de prefijos, paso a paso
Guarda palabras en un trie y recorre paso a paso una búsqueda, un autocompletado y una inserción. Compara cuántas letras se leen al buscar la misma palabra con una búsqueda binaria y una tabla hash, y cuántos bytes ocupa cada estructura. Incluso compartiendo 40 de sus 70 letras, el trie ocupa 2,6 veces lo que ocupa la lista simple.
Visualizador BFS vs DFS
El nodo 15 se sitúa a 6 aristas del inicio; la búsqueda en profundidad te puede dar una ruta de 12 aristas hasta él. La componente contiene 15 nodos y 16 aristas, por lo que 2 aristas sobrantes provocan cada discrepancia que verás entre ambos paneles.
Visualizador de algoritmos de búsqueda de caminos
Observa cómo A*, Dijkstra, Greedy Best-First y BFS recorren una cuadrícula, paso a paso.
Visualizador de árboles BST / AVL
Inserta 10, 20, 30, 40, 50, 60, 70 en ese orden y el árbol será una cadena de altura 7, con siete comparaciones para encontrar la última clave cuando bastaría con tres. Las rotaciones AVL colocan esas mismas siete claves a una altura de 3.
Visualizador de Distancia de Levenshtein
Calcula la distancia de edición (inserciones, eliminaciones, sustituciones) entre dos cadenas y visualiza la comparación.
Visualizador de tabla hash
Observa cómo las tablas hash almacenan datos con resolución de colisiones por encadenamiento, sondeo lineal y sondeo cuadrático.

Information Theory & Encoding

Aritmética binaria y complemento a dos
Sumar 100 + 50 en ocho bits te da un byte que se lee como 150 sin signo y −106 con signo, así que el acarreo indica éxito y el desbordamiento señala un error. Suma 200 + 100 y las banderas se intercambian, motivo por el que un sumador necesita dos de ellas.
Codificación por longitud de racha (RLE)
Comprime símbolos repetidos en pares de valor y conteo, e inspecciona los mejores y peores casos.
Coma flotante
Escribe un número decimal y observa cómo lo convierte un ordenador: signo, binario, normalización, sesgo, redondeo. El valor que acaba almacenando, el error y la distancia hasta el siguiente número que puede representar.
Demo del compresor LZ77
Recorre paso a paso las referencias hacia atrás de ventana deslizante que usan DEFLATE, ZIP y gzip.
Detector y conversor de codificación/base
Detecta la codificación probable o el formato estructurado, luego decodifica y explica de qué se trata probablemente.
Laboratorio de entropía en PLN
Entropía de los tókenes, entropía cruzada, perplejidad y divergencia KL: las cuatro magnitudes con las que se entrena y evalúa un modelo de lenguaje.
Playground de codificación entrópica
Relaciona las distribuciones de símbolos con la entropía de Shannon, la ganancia de compresión esperada y la predicción del siguiente token en la IA/LLMs.
Transformada de Burrows-Wheeler (BWT)
Descubre cómo la BWT reordena el texto en rachas que se comprimen mejor, y cómo revertirla sin pérdidas.
Visualizador de Codificación Huffman
Codificar «hello world» reduce 88 bits a 32, frente a un mínimo de entropía de 31,3; ese 0,7 proviene de redondear las longitudes del código a bits enteros. Una fuente 90/10 transmite 0,469 bits por símbolo y Huffman sigue gastando 1.

Signal & Media Processing

Detector de bordes Sobel vs Canny
Aplica gradientes de Sobel e histéresis de Canny para comparar pipelines de detección de bordes.
Espectrograma
Un espectrograma desliza una transformada de Fourier corta a lo largo de una pieza musical, y la longitud de la ventana decide qué puede mostrar. Distinguir La4 de La♯4 requiere 72,0 ms con una ventana de Hann; un semitono en La1, 55 Hz, requiere 576,2 ms, más de cuatro semicorcheas, así que un trino rápido de bajo muestra qué nota está sonando en menos de una cuarta parte de los cortes con cualquier ventana de hasta un segundo de duración.
La transformada rápida de Fourier
La transformada rápida de Fourier obtiene los mismos N números que la suma directa con unas N log N multiplicaciones en lugar de N². Recorre sus mariposas, repite el ejemplo de doce puntos del manuscrito inédito de Gauss de 1805 y cronometra ambos métodos en tu navegador.
Laboratorio de codificación de video
Aprende sobre bitrate, códec, CRF/CBR y los compromisos de calidad con estimaciones visuales en tiempo real.
Laboratorio de cuantización
La cuantización de ocho bits marca aquí 56,18 dB, mientras que el 6,02N + 1,76 del libro dicta 49,92. Esa diferencia de 6,2 dB es el factor de cresta: la regla asume un seno a escala completa, y esta rampa tiene más del doble de su valor eficaz.
Laboratorio de muestreo de píxeles
Comprende el muestreo, Nyquist y el aliasing con visualizaciones de señal y de cuadrícula de píxeles.
Laboratorio de submuestreo de crominancia
Compara 4:4:4, 4:2:2 y 4:2:0 para ver la pérdida de detalle de color en la compresión de imagen y video.
Playground de convolución y mapas de características
Catorce capas de 3×3 apiladas permiten que un píxel de salida vea toda la imagen de 28×28, con 126 operaciones de multiplicación y acumulación. Un solo núcleo de 29×29 con el mismo alcance cuesta 841, motivo por el que las redes de visión son profundas y estrechas.
Simulador de control de tasa
CRF y CBR gastan aquí los mismos 2.000 bits por fotograma, y aun así CRF obtiene 89,8 frente a 79. Esos 10,8 puntos compran un pico plano: el fotograma más grande de CBR es de 2.000 bits, mientras que el de CRF llega a los 4.078.
Simulador de estimación de movimiento
Buscar en 225 posiciones por bloque equivale a una ventana de 15×15, de −7 a +7 píxeles, y el coste es cuadrático respecto al radio: 961 con 15, 3.969 con 31. Una búsqueda en tres pasos comprueba solo 27 y acepta un vector peor.
Transformada de Fourier discreta
Muestrea un tono puro 64 veces y calcula su transformada de Fourier discreta: con exactamente 10 ciclos es una única barra nítida, con 10,5 ilumina todas las bandas y la más alta marca el 64,61% del tono. Cada barra se dibuja como las 64 flechas que la suman, con una ventana para cambiar la dispersión por un pico más ancho.
Verificador de Contraste de Color (Luminancia WCAG)
Comprueba el contraste de color entre texto y fondo frente a los umbrales de accesibilidad WCAG 2 — y descubre cómo la fórmula de luminancia detrás de esto desciende de la necesidad de la televisión de 1953 de comprimir el color en una señal en blanco y negro ya existente.
Visualizador de estructura de GOP
Comprende los patrones de fotogramas I/P/B, la latencia de búsqueda y los compromisos de compresión en flujos de video.

Automata & Cryptography

Animador de autómatas finitos
Recorre las transiciones de un AFD en un diagrama de estados en vivo — observa qué estado está activo tras cada símbolo y si la entrada es aceptada.
Bytes en memoria: orden, tipos y direcciones
Treinta y dos bytes en memoria, sin ninguna indicación de lo que representan. Puedes leerlos como enteros de 8, 16 o 32 bits, números en coma flotante o texto, en orden little-endian o big-endian, y ver debajo de cada byte su valor posicional. Si lees el 1 con el orden invertido, obtienes 16.777.216; los bytes de π en coma flotante, leídos como entero, dan 1.078.530.011.
Explorador de Puertas Lógicas
Visualizador interactivo de puertas lógicas y pequeños circuitos con pulsos de señal, diagramas de tiempo y tablas de verdad compactas.
La marca de agua que sobrevive a una colusión
Cada copia lleva una cadena de bits distinta, por lo que una filtración delata al suscriptor. Cuatro de ellos comparan sus copias y falsifican una que no culpa a nadie; a menos que la cadena mida 2.490 bits. Dieciséis de ellos necesitarían 39.833.
La pila de llamadas: marcos, direcciones de retorno y desbordamientos
Observa cómo cada llamada a una función escribe en memoria: coloca un argumento, una dirección de retorno y un puntero de marco guardado en una pila de 128 bytes. Al retornar, la ejecución salta a la dirección que contenga la posición reservada para el retorno. Explora la recursión, el desbordamiento de pila, un array que sobrescribe su propia dirección de retorno y una variable que conserva lo que dejó la llamada anterior.
Localidad en caché: por qué importa el orden de lectura
Suma los elementos de una misma matriz por filas y por columnas con una pequeña caché de correspondencia directa y cuenta cada acierto y cada fallo. Las mismas sumas sobre las mismas direcciones dan 48 aciertos de 64 en un orden y ninguno en el otro; con 4 enteros sin usar por fila, el orden más lento alcanza al más rápido.
Revocar un dispositivo sin avisar a los demás
Sesenta y cuatro dispositivos comprometidos de entre un millón necesitan una cabecera de licencia de 846 claves, o 77, o 3. La cifra depende del esquema utilizado y de si esos sesenta y cuatro formaban un lote.
RSA: Cifrado de juguete
Con p = 61 y q = 53 obtienes n = 3233, que se rompe con dieciséis divisiones de prueba. Filtrar φ = 3120 lo rompe con la misma facilidad: p + q = 114 y pq = 3233 forman una cuadrática que te devuelve ambos primos.
Simulador de máquina de Turing
Un palíndromo de 5 celdas cuesta 21 movimientos y uno de 21 celdas cuesta 253, porque un cabezal debe recorrer toda la cinta por cada par. Una segunda cinta vuelve el trabajo lineal, algo que Hennie demostró en 1965 que resulta imposible con una sola.
Solucionador de Expresiones Booleanas
Escribe expresiones lógicas booleanas y genera una tabla de verdad completa con columnas de subexpresiones intermedias.
Una CPU diminuta: Little Man Computer
Avanza por el Little Man Computer una transferencia entre registros cada vez y observa cada lectura y escritura en memoria: PC, MAR, MDR, CIR, el acumulador, cien buzones y programas que puedes editar. Mide qué parte de los accesos a memoria corresponde a la lectura de las propias instrucciones del programa.

Demos & Utilities

Algoritmo de Búsqueda de Grover
Recorre el algoritmo de Grover iteración por iteración. Observa cómo crece la amplitud objetivo — O(√N) vs O(N).
Caminata Aleatoria Cuántica
Tras 100 pasos, un caminante clásico rara vez se aleja más de 10 posiciones, mientras que uno cuántico alcanza unas 70. A los 10 pasos las dispersiones son de 4,8924 frente a 3,1623, por lo que el caminante clásico necesita 24 pasos para igualarlo.
El juego de la vida de Conway
El planeador viaja a c/4, y el límite lo marca la propia regla: una célula ve a ocho vecinas, por lo que nada se mueve más rápido que una célula por generación. El patrón diehard parece saludable hasta que se desvanece en la generación 130.
Explorador de fractales
La dimensión de Koch es log 4 / log 3 = 1,262 y la del conjunto de Cantor es 0,631, menor que la de una línea. Tres de las ocho curvas que tienes aquí dan exactamente 2, y a profundidad infinita llenan el plano en lugar de cruzarlo.
Explorador de la esfera de Bloch
Un cúbit a θ = 90° marca 50/50 en la base Z y 100/0 en la X, por lo que 50/50 es un hecho sobre la base que elegiste. Rótalo 360° completos y el estado se invierte a −|ψ⟩; solo un segundo giro lo restaura.
Extractor de Recursos HTML, Imágenes y Markdown
Pega HTML y extrae los archivos enlazados por categoría, con una galería centrada en imágenes y una exportación de texto en Markdown.
Laboratorio Generador de Lorem Ipsum
El deslizador de entropía es el dial de temperatura de un LLM y tiene un límite: el corpus contiene 63 palabras distintas, por lo que log₂ 63 = 5,9773 bits es lo máximo que puede aportar un pasaje, sin importar el objetivo que le pidas.

Otras herramientas

Calculadora de bitrate y tamaño
Un megabit por segundo extra te cuesta 450 MB por hora sin importar lo que haya en la imagen. En un clip de diez minutos a 6 Mbit/s, el audio supone el 3,1% de un archivo de 478 MB, así que reducirlo a la mitad ahorra 7 MB pero lo sufre cada oyente.
Cifrar un bloque de cada diez (CENC cbcs)
El esquema cbcs cifra un bloque de 16 bytes de cada diez, y un fragmento de 48 bytes resulta en un tercio de texto cifrado. Las nueve décimas partes en claro no sirven de nada sin la clave, porque en cada fragmento que alcanza el patrón, el primer byte después de la cabecera es texto cifrado.
Código de Hamming: corregir un bit localizando su posición
Cuatro bits de datos entre siete y tres comprobaciones de paridad cuyos fallos expresan en binario la posición del bit erróneo. Así, cualquier inversión aislada se corrige. Si inviertes dos bits, el decodificador invertirá con plena confianza un tercero; basta añadir otro bit para que, en vez de hacerlo, señale el error.
Explorador de tokenización BPE
Observa cómo la codificación por pares de bytes divide el texto en los tokens que un modelo de lenguaje lee realmente. Vocabulario fijo, división en vivo: el inglés cuesta 13 tokens donde la misma frase en alemán cuesta 36.
Resolución de pantalla y distancia de visualización
Cuánta resolución llega realmente a tus ojos según la diagonal, los píxeles y dónde te sientas. Con una visión 20/20 la respuesta es el campo visual medido en minutos de arco, y en un televisor de salón suele caer por debajo del 1080p.
Rotación de claves de una emisión en directo
Rotar la clave cada dos minutos durante un año genera 262.800 claves de contenido, 4,20 MB en total. El verdadero coste es que un millón de reproductores piden cada clave nueva en los mismos diez segundos, y la jerarquía de claves que divide las peticiones por 720 hace que una sola filtración sea 720 veces mayor.
Temperatura y muestreo
Observa cómo una distribución real del siguiente token se reforma con la temperatura y se recorta con top-k y top-p. La temperatura nunca cambia qué token va en cabeza, solo por cuánto: de 278x a 1,76x.
Vectores de tokens y similitud
Vectores construidos contando qué tokens aparecen cerca de cuáles, sobre la prosa de este sitio. El par más alto es ␣the y ␣is con 0,505 — más que ␣Earth y ␣Sun con 0,299, y no significa nada.
Related categories: Matemáticas, Física