Inicio · Parte 00 — Pensamiento matemático desde cero
a/b tiene desarrollo finito ⟺ b (reducido) solo tiene factores 2 y 5
0.abcabc... = abc/999
Toda fracción tiene desarrollo decimal finito o periódico; nunca uno infinito sin patrón. La razón es de conteo puro: al dividir por b, los restos posibles son 0, 1, ..., b−1. Si aparece el resto 0, el desarrollo termina. Si no, en a lo sumo b pasos algún resto se repite —hay más pasos que restos posibles— y desde ahí el desarrollo se repite. Es el principio del palomar (clase 090) aplicado antes de haberlo enunciado.
Cuál de los dos casos ocurre depende únicamente de los factores primos del denominador reducido. Nuestro sistema decimal es base 10 = 2·5, así que solo las fracciones cuyo denominador se factoriza en potencias de 2 y 5 tienen desarrollo finito: 3/8 sí (8 = 2³), 1/7 no (7 no divide ninguna potencia de 10).
Esta observación es la clave para entender la parte 01. En base 2, los denominadores «buenos» son solo las potencias de 2. Y 1/10 —que en decimal es finito y trivial— no lo es en binario. De ahí que 0.1 no sea representable exactamente en un float, que es exactamente el asunto de la clase 029. La rareza no está en la máquina: está en que cambiar de base cambia qué fracciones son «redondas».
El camino inverso —de periódico a fracción— usa una identidad limpia: el periodo de longitud k se escribe sobre k nueves. 0.142857142857... = 142857/999999, que simplificado es exactamente 1/7.
Clasificar dos fracciones y reconstruir una desde su periodo.
3/8: 8 = 2³ → solo factores 2 → finito
3/8 = 0.375
1/7: 7 primo ≠ 2, 5 → periódico
1/7 = 0.142857 142857 142857...
periodo = "142857", longitud 6
Reconstrucción: 142857/999999
= 142857/999999 (dividir num. y den. por 142857)
= 1/7 ✓
La longitud del periodo de 1/7 es 6 = 7−1. No es casualidad: está relacionada con el orden multiplicativo de 10 módulo 7, tema de la clase 098.
Fracciones con desarrollo decimal finito y periódico.
python classes/part-00-pensamiento-matematico-desde-cero/004-decimales-y-conversiones/lab.py
compmath run 004
3/83/8_es_finito1/7_primeros_12_digitos1/7_periodo1/7_reconstruidocoincide_con_1/7{
"3/8": 0.375,
"3/8_es_finito": true,
"1/7_primeros_12_digitos": "0.142857142857",
"1/7_periodo": "142857",
"1/7_reconstruido": "1/7",
"coincide_con_1/7": true
}
Explica por qué los sistemas financieros trabajan en centavos enteros o con Decimal, y por qué un total de factura calculado en float puede diferir en un céntimo del calculado a mano. Es el prerrequisito directo de las clases 029 y 037.
Toda métrica de un modelo (accuracy, loss, learning rate) es una razón, un porcentaje o una escala. Interpretarlas mal es el primer error de un practicante de IA.
decimal — documentación de la herramienta que ejecuta el laboratorio · URL de la fuente primaria comprobada en Python Software Foundation (2026-08-19).9780199219865 verificado en International ISBN Agency (2026-08-19).