Simular consiste en construir un modelo computacional de un experimento aleatorio, generar muchos resultados y estudiar sus frecuencias. Es una forma práctica de comprender la probabilidad y aproximar cantidades difíciles de calcular exactamente.
Una simulación reproduce mediante reglas y números pseudoaleatorios el comportamiento esencial de un fenómeno. No intenta adivinar el resultado de un ensayo concreto; genera muchos escenarios posibles para estudiar el conjunto.
Un experimento aleatorio tiene varios resultados posibles. Un evento es un conjunto de resultados que nos interesa observar. Por ejemplo, al lanzar un dado, “obtener un número par” es el evento {2,4,6}.
Al aumentar los ensayos, la frecuencia relativa suele acercarse a la probabilidad teórica cuando el modelo es correcto.
Las computadoras usan algoritmos deterministas que producen secuencias con apariencia aleatoria. La función Math.random() devuelve un número pseudoaleatorio en el intervalo [0,1).
Para aplicaciones científicas se consideran la semilla, el período, la calidad estadística y la reproducibilidad. Para seguridad informática no debe usarse un generador común.
Para una moneda equilibrada basta comparar un número aleatorio con 0,5:
Si la moneda tiene probabilidad p de cara, se reemplaza 0,5 por p. Así se pueden modelar monedas sesgadas sin cambiar la estructura del algoritmo.
Dividimos el intervalo [0,1) en seis partes iguales y convertimos el número obtenido en una cara:
El piso transforma 0≤U<1 en uno de los enteros 1,2,3,4,5,6, todos con la misma probabilidad ideal.
Si simulamos una moneda muchas veces, la proporción de caras fluctúa al principio y luego se estabiliza alrededor de 0,5. La simulación ilustra la ley de los grandes números, pero una ejecución concreta nunca elimina por completo las fluctuaciones.
Monte Carlo usa muestras aleatorias para aproximar probabilidades, áreas, integrales o valores esperados. Si una cantidad puede expresarse como un promedio, se estiman sus valores simulando muchos casos.
Su error típico disminuye aproximadamente como 1/√n: para ganar un decimal de precisión se necesita aumentar considerablemente el número de simulaciones.
Generemos puntos uniformes en el cuadrado [-1,1]×[-1,1]. La proporción que cae dentro del círculo unitario aproxima el cociente entre el área del círculo y la del cuadrado:
Es un ejemplo visual de Monte Carlo. Aunque es sencillo, muestra que una simulación puede aproximar una constante matemática.
Este código simula lanzamientos de una moneda y estima la probabilidad de cara:
function probabilidadCara(ensayos) {
let caras = 0;
for (let i = 0; i < ensayos; i++) {
if (Math.random() < 0.5) caras++;
}
return caras / ensayos;
}
console.log(probabilidadCara(10000));Pulsa Ejecutar para obtener una estimación aleatoria cercana a 0,5.
Elige un experimento y observa cómo sus frecuencias se aproximan a los valores teóricos. La visualización se actualiza al ejecutar una nueva tanda.
Una simulación puede generar más que eventos sí/no. Se pueden construir variables discretas, como un dado, o continuas, como una uniforme en [0,1]. Combinando transformaciones se generan normales, exponenciales y otras distribuciones.
El modelo debe conservar las relaciones entre variables cuando el fenómeno las requiere.
Muchos experimentos se modelan paso a paso: se genera una llegada, luego un tiempo de servicio; se actualiza un saldo y después se aplica una regla. El orden de las etapas y las dependencias son parte del modelo.
Una simulación clara separa la generación aleatoria, la lógica del experimento y el resumen de resultados.
Antes de confiar en los resultados hay que comprobar casos simples, comparar con probabilidades conocidas y revisar límites extremos. También conviene realizar varias corridas y observar si los resultados son razonablemente consistentes.
Una simulación puede estar perfectamente programada y aun así ser incorrecta si sus supuestos no representan el fenómeno real.
Las simulaciones se aplican en colas, seguros, finanzas, confiabilidad, juegos, medicina, logística, redes, pruebas A/B, análisis de riesgos y enseñanza. Permiten explorar escenarios cuando una fórmula cerrada es difícil o imposible.
Math.random() para contraseñas o seguridad.Simular experimentos aleatorios permite convertir conceptos abstractos en observaciones concretas. La calidad de la conclusión depende tanto de la cantidad de repeticiones como de la fidelidad del modelo y de la interpretación de la variabilidad.