Las razones comparan cantidades y las proporciones indican igualdad entre razones. Son herramientas esenciales para escalas, porcentajes, gráficos, diseños responsivos, conversiones y reglas de negocio.
Una razón permite comparar dos cantidades. Por ejemplo, si hay 2 errores cada 100 líneas de código, podemos expresar esa relación como 2:100, 2/100 o 0.02.
Una proporción aparece cuando dos razones son equivalentes. Esto permite ampliar, reducir, convertir y mantener relaciones constantes entre valores.
En programación, razones y proporciones aparecen al escalar imágenes, calcular porcentajes, convertir unidades, distribuir espacios, interpretar estadísticas y mantener relaciones entre dimensiones.
Una razón compara dos cantidades mediante una división. Si tenemos 3 aciertos y 5 intentos, la razón de aciertos respecto de intentos es 3/5.
const aciertos = 3;
const intentos = 5;
const razon = aciertos / intentos;
console.log(razon);
El resultado indica qué parte de los intentos terminó en acierto.
Una razón puede escribirse con dos puntos, como fracción o como decimal. Todas estas formas expresan la misma comparación.
| Forma | Ejemplo | Lectura |
|---|---|---|
| Dos puntos | 3:5 | 3 a 5 |
| Fracción | 3/5 | 3 dividido 5 |
| Decimal | 0.6 | Sesenta centésimos |
| Porcentaje | 60% | 60 de cada 100 |
const razon = 3 / 5;
const porcentaje = razon * 100;
console.log(razon);
console.log(porcentaje);
Dos razones son equivalentes si representan la misma relación. Por ejemplo, 2/4, 3/6 y 5/10 equivalen a 1/2.
console.log(2 / 4);
console.log(3 / 6);
console.log(5 / 10);
console.log(1 / 2);
Aunque los números cambian, la relación entre ellos se mantiene.
Una proporción es una igualdad entre dos razones.
Por ejemplo, 2/4 = 3/6. Ambas razones valen 0.5.
const razonA = 2 / 4;
const razonB = 3 / 6;
console.log(razonA);
console.log(razonB);
console.log(razonA === razonB);
Para comprobar si a/b = c/d, podemos multiplicar cruzado. Si a × d es igual a b × c, entonces hay proporción.
function sonProporcionales(a, b, c, d) {
return a * d === b * c;
}
console.log(sonProporcionales(2, 4, 3, 6));
console.log(sonProporcionales(2, 5, 3, 6));
Esta forma evita algunos problemas de comparación con decimales, porque trabaja con enteros cuando los valores de entrada son enteros.
Una escala indica cómo se transforma una medida manteniendo una proporción. Si una imagen de 800 por 600 píxeles se reduce a la mitad, ambas dimensiones se multiplican por 0.5.
const anchoOriginal = 800;
const altoOriginal = 600;
const escala = 0.5;
const nuevoAncho = anchoOriginal * escala;
const nuevoAlto = altoOriginal * escala;
console.log(nuevoAncho);
console.log(nuevoAlto);
Como ambas dimensiones se transforman con el mismo factor, la imagen mantiene su proporción.
Si conocemos el ancho original, el alto original y un nuevo ancho, podemos calcular el nuevo alto manteniendo la misma relación.
const anchoOriginal = 1920;
const altoOriginal = 1080;
const nuevoAncho = 640;
const nuevoAlto = nuevoAncho * altoOriginal / anchoOriginal;
console.log(nuevoAlto);
Este cálculo es común en diseño web, edición de imágenes, video y gráficos.
Dos cantidades son directamente proporcionales cuando al aumentar una, la otra aumenta en la misma relación. Por ejemplo, si un producto cuesta 250, dos productos cuestan 500 y tres cuestan 750.
const precioUnitario = 250;
for (let cantidad = 1; cantidad <= 5; cantidad++) {
console.log(cantidad * precioUnitario);
}
El total aumenta de forma proporcional a la cantidad.
Dos cantidades son inversamente proporcionales cuando al aumentar una, la otra disminuye. Por ejemplo, si una tarea requiere una cantidad fija de trabajo, más personas pueden reducir el tiempo necesario.
const trabajo = 24;
for (let personas = 1; personas <= 6; personas++) {
const horas = trabajo / personas;
console.log(horas);
}
Este modelo es una simplificación. En problemas reales puede haber límites, coordinación y otros factores.
Una tasa de conversión compara la cantidad de acciones logradas contra la cantidad total de oportunidades. Es una razón muy usada en sistemas web y análisis de datos.
const visitas = 1200;
const compras = 84;
const tasa = compras / visitas;
console.log(tasa);
console.log((tasa * 100).toFixed(2));
El primer resultado es la razón decimal. El segundo la muestra como porcentaje con dos decimales.
Las proporciones también sirven para distribuir espacio. Por ejemplo, una interfaz puede repartir un ancho total en columnas con relación 2:1.
const anchoTotal = 900;
const parteIzquierda = 2;
const parteDerecha = 1;
const partesTotales = parteIzquierda + parteDerecha;
const anchoIzquierdo = anchoTotal * parteIzquierda / partesTotales;
const anchoDerecho = anchoTotal * parteDerecha / partesTotales;
console.log(anchoIzquierdo);
console.log(anchoDerecho);
Esta idea se relaciona con grillas, layouts, barras de progreso y distribución visual.
Normalizar un valor significa convertirlo a una escala común. Por ejemplo, transformar un puntaje de 0 a 80 en una escala de 0 a 100.
const puntaje = 64;
const maximoOriginal = 80;
const nuevoMaximo = 100;
const normalizado = puntaje / maximoOriginal * nuevoMaximo;
console.log(normalizado);
La normalización aparece en análisis de datos, gráficos, juegos y modelos de aprendizaje automático.
function calcularRazon(a, b) {
if (b === 0) {
return "No se puede dividir por cero";
}
return a / b;
}
console.log(calcularRazon(8, 4));
console.log(calcularRazon(8, 0));
Las razones y proporciones permiten comparar cantidades y mantener relaciones constantes. En programación son especialmente útiles para transformar valores, escalar elementos, distribuir espacios y calcular indicadores.
En el próximo tema estudiaremos porcentajes y variaciones porcentuales, que son una aplicación directa de razones sobre 100.