14. Regla de tres simple y compuesta

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.

14.1 Introducción

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.

14.2 Regla de tres simple directa

La regla de tres simple directa se usa cuando dos cantidades aumentan o disminuyen juntas en la misma proporción.

Si 3 productos cuestan 900, ¿cuánto cuestan 5 productos?

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);

14.3 Fórmula de la regla directa

Si la relación es directa, el valor buscado se calcula multiplicando en cruz y dividiendo por el valor relacionado conocido.

a → b
c → x
x = b × c / a
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.

14.4 Ejemplo: convertir escala de puntaje

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.

14.5 Ejemplo: costo proporcional

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.

14.6 Regla de tres simple inversa

La regla de tres inversa se usa cuando una cantidad aumenta y la otra disminuye en la misma proporción.

Si 4 máquinas hacen un trabajo en 12 horas, ¿cuánto tardan 6 máquinas?

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);

14.7 Fórmula de la regla inversa

En una relación inversa, el producto entre las cantidades relacionadas se mantiene constante.

a → b
c → x
x = a × b / c
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.

14.8 Comparación entre directa e inversa

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);

14.9 Validar divisiones

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));

14.10 Regla de tres compuesta

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.

Si 4 trabajadores hacen 80 piezas en 5 días, ¿cuántas piezas harán 6 trabajadores en 8 días?

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);

14.11 Compuesta con una relación inversa

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.

Si 2 servidores procesan 1000 registros en 10 minutos, ¿cuánto tardan 5 servidores con 3000 registros?

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);

14.12 Aplicación: estimar tiempo de descarga

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.

14.13 Aplicación: adaptar una interfaz

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.

14.14 Errores comunes

  • Aplicar regla directa cuando la relación es inversa.
  • No identificar correctamente qué magnitudes influyen en el resultado.
  • Dividir por cero al usar una magnitud base inválida.
  • Suponer proporcionalidad lineal cuando hay costos fijos, límites o condiciones externas.
  • Mezclar unidades distintas sin convertirlas antes.
const horasCon4Personas = 12;

const calculoDirectoIncorrecto = horasCon4Personas * 6 / 4;
const calculoInversoCorrecto = horasCon4Personas * 4 / 6;

console.log(calculoDirectoIncorrecto);
console.log(calculoInversoCorrecto);

14.15 Qué debes recordar de este tema

  • La regla de tres permite calcular un valor desconocido a partir de una proporción.
  • La regla directa se usa cuando las cantidades aumentan o disminuyen juntas.
  • La regla inversa se usa cuando una cantidad aumenta y la otra disminuye.
  • En la regla compuesta intervienen más de dos magnitudes.
  • Antes de calcular, hay que identificar el tipo de relación entre las magnitudes.
  • Las reglas de tres sirven para estimaciones, escalas, costos, tiempos y conversiones.
  • Siempre conviene validar divisores y unidades.

14.16 Conclusión

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.