YiMatrix · Revista de la Academia
El Libro de los Cambios esconde un algoritmo que se adelantó tres mil años a la máquina de Turing
«El gran número de la expansión es cincuenta, y su uso es cuarenta y nueve» — esta frase escrita en el «Apéndice de las Sentencias» del I Ching, traducida a código, es un algoritmo

"El gran número de la expansión es cincuenta, y su uso es cuarenta y nueve."
Esta frase está escrita en el «Apéndice de las Sentencias» del I Ching.
No importa si no la entiendes. La traduzco directamente a código que los programadores de hoy puedan entender: primero toma cincuenta; deja uno sin usar; los cuarenta y nueve restantes se dividen en dos montones; saca uno y lo colocas entre los dedos; cuenta de cuatro en cuatro y toma el resto; repite esto dieciocho veces para obtener un hexagrama.
Esto no es filosofía.
Es un algoritmo escrito hace mucho tiempo que aún se puede ejecutar hoy.
A continuación, lo mido con tres reglas: historia de las matemáticas, historia de la ciencia de la computación y codificación de la información. Al medirlo, descubrirás que la persona que escribió este texto hizo lo mismo que aquellos que más tarde explicaron claramente qué es "calcular".
I. Descompilarlo frase por frase
Primero, desglosemos el texto original oración por oración. Cada frase clásica, acompañada de una explicación en lenguaje moderno, y luego emparejada con un concepto de código.
«El gran número de la expansión es cincuenta, y su uso es cuarenta y nueve.»
Cincuenta tallos de milenrama (una especie de varilla de hierba, considerada como la herramienta de cálculo en manos de los antiguos, análoga a las cuentas de un ábaco), primero se deja uno inmóvil, y los cuarenta y nueve restantes entran en el cálculo.
— Esto es inicialización: definir un valor inicial.
«Se divide en dos para simbolizar los dos principios.»
Los cuarenta y nueve tallos se dividen aleatoriamente en dos montones.
— Esto es dividir el estado en dos, y el estado de todo el proceso comienza a cambiar aquí.
«Se cuelga uno para simbolizar los tres poderes.»
De uno de los montones se extrae un tallo y se coloca entre los dedos.
— Una acción definida de tomar un número.
«Se cuentan de cuatro en cuatro para simbolizar las cuatro estaciones.»
Los dos montones se cuentan de cuatro en cuatro.
— Se realiza una operación de módulo con paso 4 para ver cuánto sobra.
«Se devuelve el resto al pliegue para simbolizar el mes intercalar.»
Los restos al final del conteo —uno, dos, tres o cuatro tallos— también se colocan entre los dedos para registrarlos.
— Se guarda el resto en una variable temporal.
«Por lo tanto, se vuelve a hacer el pliegue y luego se cuelga.»
Completar esta ronda se llama un cambio. Tres cambios producen una línea, y seis líneas forman un hexagrama.
— Esto es bucle y condición de terminación: se repite dieciocho veces, se acumulan seis líneas, y se detiene.
Juntando estas cinco frases, obtenemos algo como esto. No importa si no entiendes el código — la columna izquierda son las acciones, y lo que está después del signo # es la frase clásica correspondiente, línea por línea.
init tallos = 50 # El gran número de la expansión es cincuenta
use tallos = 49 # y su uso es cuarenta y nueve (deja uno inmóvil)
loop 18 veces: # Dieciocho cambios
dividir aleatoriamente en dos montones # Se divide en dos para simbolizar los dos principios
extraer un tallo y colocarlo entre los dedos # Se cuelga uno para simbolizar los tres poderes
contar de cuatro en cuatro y tomar el resto # Se cuentan de cuatro en cuatro para simbolizar las cuatro estaciones
guardar el resto # Se devuelve el resto al pliegue para simbolizar el mes intercalar
return hexagrama de seis líneas # Por lo tanto, se vuelve a hacer el pliegue y luego se cuelga
¿Qué ves en esto?
Tiene inicialización (cincuenta). Tiene variables de estado (la cantidad de tallos en la mano, que cambia en cada ronda). Tiene bucle (dieciocho cambios). Tiene condición de terminación (se detiene cuando se forma un hexagrama de seis líneas).
Inicialización, variables de estado, bucle y condición de terminación — estos cuatro elementos son el esqueleto de cualquier programa.
Ese texto tiene el esqueleto completo.
II. Esto es una máquina de Turing
La primera vez que leí esto, me detuve a pensar durante mucho tiempo.
Esto no es un filósofo expresando una visión del mundo. Es un proceso exacto que se puede ejecutar paso a paso — si das las mismas condiciones iniciales y sigues los mismos pasos, cada paso tiene reglas claras.
En 1936, el matemático británico Turing escribió un artículo titulado «Sobre números computables».
En ese artículo, por primera vez, definió rigurosamente una cosa: qué tipo de proceso puede ser ejecutado paso a paso por una máquina y finalmente dar un resultado — más tarde, la gente llamó a esto "computable". Su criterio era muy limpio: un proceso debe tener un estado inicial, reglas de transición una por una, y una condición de terminación. Si cumple estos tres, es computable por una máquina.
El modelo abstracto que construyó para esto se llamó más tarde máquina de Turing.
Cada computadora, cada teléfono móvil que usas hoy, es esencialmente una implementación de la máquina de Turing. Lo que hace la CPU, en el nivel más bajo, es "leer el estado actual, saltar al siguiente estado según las reglas, hasta detenerse".
Ahora volvamos a esos cincuenta tallos.
Estado inicial — cincuenta, usar cuarenta y nueve. Reglas de transición — dividir en dos, colgar uno, contar de cuatro en cuatro, devolver el resto. Condición de terminación — hexagrama de seis líneas.
No falta nada.
El gran número de la expansión es un algoritmo que se puede ejecutar con tallos y manos humanas — y su ejecutor es la máquina de Turing más antigua.
La línea de tiempo lo hace aún más interesante.
En 1936, Turing usó un artículo completo para definir por primera vez de manera rigurosa qué tipo de proceso es computable.
Y los antiguos que escribieron este texto en el «Apéndice de las Sentencias» no tenían la palabra "algoritmo", ni el concepto, ni siquiera un lenguaje matemático abstracto para describir lo que estaban haciendo.
Turing usó un artículo para explicar qué es un "algoritmo". Los antiguos no lo explicaron — simplemente lo ejecutaron.
III. Del Taiji a los 64 hexagramas, un árbol binario perfecto
El I Ching también esconde otra estructura, más directa, que se reconoce de un vistazo.
En el capítulo 11 del «Apéndice de las Sentencias» hay una frase:
«El I tiene el Taiji, que genera los dos principios; los dos principios generan las cuatro imágenes; las cuatro imágenes generan los ocho trigramas.»
Traducido al lenguaje actual —
Taiji es uno. Los dos principios son dos. Las cuatro imágenes son cuatro. Los ocho trigramas son ocho.
Uno se convierte en dos, dos en cuatro, cuatro en ocho, cada nivel se multiplica por dos. Los ocho trigramas se combinan de dos en dos, ocho por ocho, obteniendo sesenta y cuatro hexagramas.
Escribe esta secuencia:
1 → 2 → 4 → 8 → 16 → 32 → 64.
Es decir, 2 elevado a la potencia 0, hasta 2 elevado a la 6. La sexta potencia corresponde a las seis líneas de un hexagrama.
Este es un árbol binario estricto. Cada nodo se divide en dos ramas — yin o yang, 0 o 1, sin tercera posibilidad.
En ciencia de la computación, esos nombres que has oído — búsqueda binaria, montículo binario, codificación de Huffman — son todos parientes lejanos de este árbol. Hoy, cuando desbloqueas tu teléfono con reconocimiento facial, detrás hay 0 y 1 dividiéndose en capas.
Uno, dos, cuatro, ocho, dieciséis, treinta y dos, sesenta y cuatro — esto no es contar por jugar, es un árbol creciendo.

Volviendo a ese "cincuenta". Tampoco es un número arbitrario; detrás hay una aritmética.
El capítulo 9 del «Apéndice de las Sentencias» dice que los números celestiales (impares: 1, 3, 5, 7, 9) suman veinticinco, los números terrenales (pares: 2, 4, 6, 8, 10) suman treinta, total cincuenta y cinco.
Pero el cálculo usa cincuenta — cincuenta y cinco menos cinco.
Este paso hay que admitirlo honestamente: ¿por qué se resta precisamente cinco? La razón que dan los antiguos es que toman los cinco números base de los "cinco elementos" como capa inferior, dejándolos fuera del sistema para no participar en el cálculo. Este paso es una convención, no se deduce directamente del número "cincuenta y cinco".
Y de cincuenta a cuarenta y nueve — cincuenta menos uno — este paso es limpio: el "uno" que se resta es ese "Taiji" inmóvil, que como punto de partida no entra en el cálculo.
Cincuenta y cinco, cincuenta, cuarenta y nueve — estos números no están escritos de forma independiente; al menos la segunda mitad está engranada. Es un problema aritmético, no un misterio.
IV. Pero el I Ching no es el origen de los algoritmos
Hasta aquí, debo detenerme y decir algo que es fácil de malinterpretar con entusiasmo.
El I Ching no es el origen de la ciencia de la computación actual.
Leibniz, de quien se dice que "inventó el binario a partir de los trigramas" — en 1679 ya había escrito independientemente un manuscrito sobre binario, cuando aún no había visto ningún diagrama de trigramas chino. No aprendió binario de los trigramas.
Fue en 1703 cuando vio por primera vez el diagrama de los sesenta y cuatro hexagramas de Fuxi, y entonces se sorprendió: resulta que los antiguos chinos ya habían escrito esto hace mucho tiempo. El orden de los eventos es exactamente el contrario.
Turing también. No fue leyendo el «Apéndice de las Sentencias» que concibió la máquina de Turing. En Cambridge, siguiendo la línea de la lógica matemática occidental, llegó por sí mismo a la pregunta de "qué es computable".
(Volviendo a ese "hace mucho tiempo" — la redacción del «Apéndice de las Sentencias» descompilado palabra por palabra es en realidad más tardía, principalmente entre los Reinos Combatientes y principios de la dinastía Han; pero lo que registra es un sistema de cálculo que ya se usaba antes.)
Dos civilizaciones diferentes, separadas por miles de años, sin haberse visto nunca, de forma independiente, llegaron al mismo conjunto de cosas.
Esto es cien veces más impactante que "el I Ching es el origen".
No es que uno copió al otro. Es que cuando los humanos comienzan a observar seriamente la naturaleza y abstraer patrones, tarde o temprano se topan con la misma estructura subyacente.
Un mundo que se puede calcular no distingue entre Oriente y Occidente, ni entre antiguo y moderno. Simplemente está allí, esperando que diferentes personas lleguen desde diferentes direcciones y se encuentren con él.
Los antiguos no tenían teclado, ni CPU, ni la palabra "algoritmo".
Con cincuenta tallos, escribieron un conjunto de operaciones ejecutables en un libro que no se ha interrumpido durante miles de años — primero contaron el mundo, luego codificaron los estados, luego dedujeron paso a paso, y finalmente lo redujeron a las imágenes ante sus ojos.
Hoy llamamos a esto algoritmo. Ellos solo observaron el mundo con seriedad.