La regla de tres permite encontrar un valor desconocido cuando existe una relación proporcional. En programación ayuda a escalar datos, estimar tiempos, convertir cantidades y resolver cálculos de negocio.
La regla de tres es una técnica para resolver problemas de proporcionalidad. Si conocemos tres valores relacionados y falta un cuarto, podemos calcularlo usando razones equivalentes.
En programación, esta idea aparece al convertir unidades, ajustar escalas, calcular costos por cantidad, estimar tiempos de procesamiento o adaptar dimensiones de una interfaz.
Antes de aplicar una regla de tres, lo más importante es identificar si la relación es directa o inversa.
La regla de tres simple directa se usa cuando dos cantidades aumentan o disminuyen juntas en la misma proporción.
Como más productos implican más costo, la relación es directa.
const productosConocidos = 3;
const costoConocido = 900;
const productosBuscados = 5;
const costoBuscado = costoConocido * productosBuscados / productosConocidos;
console.log(costoBuscado);
Si la relación es directa, el valor buscado se calcula multiplicando en cruz y dividiendo por el valor relacionado conocido.
function reglaTresDirecta(a, b, c) {
return b * c / a;
}
console.log(reglaTresDirecta(3, 900, 5));
console.log(reglaTresDirecta(8, 200, 12));
Esta función sirve cuando a se relaciona con b y queremos saber qué valor corresponde a c.
Si una evaluación tiene un máximo de 80 puntos y queremos convertir el resultado a una escala de 100, usamos proporcionalidad directa.
const puntajeObtenido = 64;
const maximoOriginal = 80;
const maximoNuevo = 100;
const puntajeConvertido = maximoNuevo * puntajeObtenido / maximoOriginal;
console.log(puntajeConvertido);
El puntaje convertido mantiene la misma proporción respecto del máximo.
Si conocemos el costo de cierta cantidad, podemos estimar el costo de otra cantidad mientras el precio unitario sea constante.
const unidadesConocidas = 12;
const costoConocido = 1800;
const unidadesNecesarias = 20;
const costoEstimado = costoConocido * unidadesNecesarias / unidadesConocidas;
console.log(costoEstimado);
Este cálculo supone que no hay descuentos por volumen ni costos fijos adicionales.
La regla de tres inversa se usa cuando una cantidad aumenta y la otra disminuye en la misma proporción.
Como más máquinas implican menos tiempo, la relación es inversa.
const maquinasConocidas = 4;
const horasConocidas = 12;
const maquinasBuscadas = 6;
const horasBuscadas = maquinasConocidas * horasConocidas / maquinasBuscadas;
console.log(horasBuscadas);
En una relación inversa, el producto entre las cantidades relacionadas se mantiene constante.
function reglaTresInversa(a, b, c) {
return a * b / c;
}
console.log(reglaTresInversa(4, 12, 6));
console.log(reglaTresInversa(3, 20, 5));
Esta fórmula es útil cuando más cantidad de un recurso reduce el tiempo, la carga o el esfuerzo por unidad.
| Tipo | Relación | Ejemplo | Idea |
|---|---|---|---|
| Directa | Sube una y sube la otra | Más productos, más costo | Se mantiene el cociente |
| Inversa | Sube una y baja la otra | Más máquinas, menos tiempo | Se mantiene el producto |
const directa = 900 * 5 / 3;
const inversa = 4 * 12 / 6;
console.log(directa);
console.log(inversa);
Toda regla de tres incluye una división. Si el divisor es cero, el cálculo no es válido. Conviene validar antes de operar.
function reglaTresDirecta(a, b, c) {
if (a === 0) {
return "No se puede dividir por cero";
}
return b * c / a;
}
console.log(reglaTresDirecta(3, 900, 5));
console.log(reglaTresDirecta(0, 900, 5));
La regla de tres compuesta aparece cuando el valor buscado depende de más de dos magnitudes. Por ejemplo, trabajadores, días y cantidad de trabajo.
En este caso, más trabajadores producen más piezas y más días también producen más piezas. Ambas relaciones son directas.
const trabajadoresBase = 4;
const diasBase = 5;
const piezasBase = 80;
const trabajadoresNuevos = 6;
const diasNuevos = 8;
const piezasNuevas = piezasBase *
trabajadoresNuevos / trabajadoresBase *
diasNuevos / diasBase;
console.log(piezasNuevas);
También puede haber relaciones inversas. Si más servidores procesan una tarea, el tiempo total disminuye. Si hay más datos, el tiempo aumenta.
Más registros aumentan el tiempo. Más servidores lo disminuyen.
const servidoresBase = 2;
const registrosBase = 1000;
const minutosBase = 10;
const servidoresNuevos = 5;
const registrosNuevos = 3000;
const minutosNuevos = minutosBase *
registrosNuevos / registrosBase *
servidoresBase / servidoresNuevos;
console.log(minutosNuevos);
Si la velocidad se mantiene constante, el tiempo de descarga es directamente proporcional al tamaño del archivo.
const tamanioBaseMB = 500;
const tiempoBaseMin = 4;
const nuevoTamanioMB = 1250;
const tiempoEstimado = tiempoBaseMin * nuevoTamanioMB / tamanioBaseMB;
console.log(tiempoEstimado);
Este cálculo es una estimación. En redes reales la velocidad puede variar.
Si un diseño se creó para un ancho base y queremos adaptar medidas a otro ancho, podemos usar una regla de tres directa.
const anchoBase = 1440;
const margenBase = 48;
const anchoActual = 960;
const margenAdaptado = margenBase * anchoActual / anchoBase;
console.log(margenAdaptado);
En diseño responsivo real no todo se escala linealmente, pero esta idea ayuda a entender proporciones visuales.
const horasCon4Personas = 12;
const calculoDirectoIncorrecto = horasCon4Personas * 6 / 4;
const calculoInversoCorrecto = horasCon4Personas * 4 / 6;
console.log(calculoDirectoIncorrecto);
console.log(calculoInversoCorrecto);
La regla de tres es una forma práctica de aplicar proporcionalidad. En programación permite transformar relaciones matemáticas en funciones simples para estimar valores, adaptar medidas y resolver cálculos cotidianos.
En el próximo tema estudiaremos conversión de unidades y escalas, donde la proporcionalidad se usa constantemente.