01 · Punto de partida
Reloj frente a dado
Un fenómeno determinístico es como un reloj: con la misma entrada, siempre da la misma salida. Calcular el IVA, el sueldo o la trayectoria de un proyectil sin viento es determinístico. Un fenómeno aleatorio es como un dado: con la misma entrada, cada repetición da un resultado distinto. Llegadas a una cola, tiempos de atención o fallas son aleatorios.
La mayoría de las simulaciones reales mezclan ambos: reglas fijas (capacidad, horarios, stock) más azar (demanda, demoras, roturas). La decisión del modelador es dónde poner cada uno. Poner azar donde hay regla es desperdiciar datos; poner regla donde hay azar es prometer certeza falsa.
- Si repito el experimento igual, ¿obtengo siempre lo mismo?
- ¿Qué parte puedo calcular y qué parte tengo que sortear?
- ¿El azar es del fenómeno o de mi falta de datos?
- ¿Cómo verifico que mi azar programado se comporta como espero?
02 · Definición
Los dos comportamientos, frente a frente
Determinístico
Regla exacta y repetible: total = precio × cantidad. Ideal para física simple, contabilidad y lógica del simulador.
Aleatorio
Resultado descripto por una distribución: demanda ~ U(6, 14). Ideal para llegadas, tiempos y fallas.
Pseudoaleatorio
Azar generado por computadora con semilla: parece aleatorio pero es repetible. Es lo que usamos en Python.
| Pregunta | Determinístico | Aleatorio |
|---|---|---|
| ¿Se repite igual? | Sí, idéntico | No, varía cada vez |
| ¿Qué se informa? | Un valor | Promedio + dispersión |
| ¿Cuántas corridas? | Una alcanza | Muchas réplicas |
| Ejemplo | Interés de un plazo fijo | Espera en una fila |
03 · Criterio práctico
Cómo decidir en tu modelo
Usá esta regla de tres pasos antes de programar cada variable del simulador:
Modelá como fijo
Regla, contrato o física
Precios, capacidades, horarios, fórmulas contables, límites de stock. Si hay un documento que lo fija, es determinístico.
Modelá con azar
Personas, tiempos y fallas
Si intervienen personas, clima, red o desgaste, modelá con azar aunque hoy tengas pocos datos. Después ajustarás la distribución (temas 25 y 34).
- Repetibilidad
- Prueba de fuego: repetí la medición 10 veces igual. Si da lo mismo, es determinístico; si varía, es aleatorio.
- Semilla
- Número inicial del generador pseudoaleatorio. Misma semilla → misma secuencia. Permite depurar el azar.
- Tendencia + ruido
- Patrón habitual: una parte fija (tendencia) más una parte aleatoria (ruido). Ejemplo: ventas que crecen 1 por día ± 3.
- Error común
- Confundir «no lo sé» con «es aleatorio». A veces falta medir; otras, el fenómeno es genuinamente variable.
04 · Ejemplos
Qué pone un programador de cada lado
- 1Facturación.
Fijo: precio × cantidad. Aleatorio: cuántos clientes llegan hoy.
- 2Servidor.
Fijo: capacidad de 4 workers. Aleatorio: pedidos por segundo y duración.
- 3Logística.
Fijo: distancia y velocidad base. Aleatorio: tráfico y demoras.
- 4Videojuego.
Fijo: daño base del arma. Aleatorio: crítico 10 % y dispersión del daño.
- 5Proyecto.
Fijo: dependencias entre tareas. Aleatorio: duración real de cada tarea.
05 · Representación en Python
Función fija y sorteo, lado a lado
Lo determinístico es una función pura; lo aleatorio usa random. Con la misma semilla, lo aleatorio se vuelve repetible para depurar:
Python en tu navegador. Podés editar y ejecutar cada bloque. La primera ejecución descarga el intérprete; las siguientes son inmediatas.
# Determinístico: siempre igual
def total(precio, cantidad):
return precio * cantidad
print(total(100, 3))
print(total(100, 3))
# Aleatorio: varía (pero con semilla es repetible)
import random
random.seed(11)
print([random.randint(1, 6) for _ in range(5)])
random.seed(11)
print([random.randint(1, 6) for _ in range(5)])
Consejo: cambiá la semilla y observá que la segunda lista cambia, pero las dos impresiones con igual semilla coinciden.
Tendencia + ruido: el modelo mixto mínimo
La forma más común de mezclar ambos mundos en una línea:
import random
random.seed(5)
def venta_del_dia(dia, base=10, crecimiento=1, ruido=3):
tendencia = base + crecimiento * dia
return tendencia + random.uniform(-ruido, ruido)
print([round(venta_del_dia(d), 1) for d in range(6)])
06 · Exploración
Laboratorio: tendencia fija vs caminata con ruido
Un indicador crece +paso por día (línea blanca punteada). Las 3 réplicas agregan ruido ± uniforme cada día. Subí el ruido y mirá cómo la tendencia se mantiene pero el camino se vuelve impredecible.
Tendencia + ruido
x(t+1) = x(t) + paso + U(−ruido, +ruido)
Con ruido 0, las 4 líneas coinciden.
12 pasos desde el valor inicial. La línea blanca es la tendencia pura; las de colores agregan azar uniforme cada paso. El promedio de réplicas sigue la tendencia, pero cada camino individual se desvía.
Preguntas para explorar
- Poné ruido en 0. ¿Qué ves? ¿Cuántas corridas harían falta?
- Con paso 2 y ruido 6, ¿el promedio final sigue cerca del fijo? ¿Y los caminos individuales?
- Con paso 0 y ruido 4, ¿hay tendencia? ¿Cómo llamarías a ese fenómeno?
Ver respuestas sugeridas
- Todas coinciden: es determinístico puro, una corrida alcanza.
- Sí, el promedio ronda el valor fijo (tiende a 10 + 12×2 = 34), pero cada réplica puede terminar 10 puntos arriba o abajo: tendencia clara, camino incierto.
- No hay tendencia, solo ruido acumulado: es una caminata aleatoria. El promedio ronda el inicio, pero la dispersión crece con el tiempo.
07 · Comprensión
Confusiones frecuentes
«Aleatorio es lo mismo que impredecible»
No del todo: el valor puntual es impredecible, pero la distribución (promedio, rango, forma) sí se puede predecir y verificar.
«Pseudoaleatorio no sirve porque no es azar real»
Sirve justamente por eso: es azar controlable. Con semilla podés repetir, depurar y compartir el experimento.
«Si agrego ruido, el modelo ya es realista»
Solo si el ruido tiene el rango y la forma correctos. Ruido arbitrario es decoración, no modelado.
«Todo lo que varía es aleatorio»
A veces varía por una causa fija no modelada (feriado, pico horario). Antes de sortear, preguntate si hay una regla escondida.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: clasificar variables
Clasificá cada variable como determinística (D) o aleatoria (A) y ejecutá el código para verificar la intuición.
import random
random.seed(9)
precio, cantidad = 250, 4
print("total:", precio * cantidad) # ¿D o A?
llegadas = [random.randint(2, 9) for _ in range(5)]
print("llegadas:", llegadas) # ¿D o A?
Ver solución razonada
El total es D: siempre 1000. Las llegadas son A: varían entre 2 y 9 aunque la regla sea la misma. En tu simulador, el total irá dentro de la parte fija y las llegadas dentro de la parte sorteada.
Ejercicio 2: tendencia + ruido
Generá 12 días con base 20, crecimiento 2 y ruido ±5. Compará el último valor determinístico con el promedio de 3 réplicas.
import random
def dia(d, base=20, crec=2, ruido=5):
return base + crec * d + random.uniform(-ruido, ruido)
random.seed(4)
for intento in range(3):
serie = [dia(d) for d in range(12)]
print(round(serie[-1], 1))
print("Fijo día 11:", 20 + 2 * 11)
Ver solución
El fijo del día 11 es 42. Las réplicas rondan 37 a 47: el centro respeta la tendencia, el ruido mueve el valor puntual. Esa es la firma de un modelo mixto.
Ejercicio 3: semilla y reproducibilidad
Comprobá que la misma semilla reproduce la misma réplica y que distinta semilla da otro camino. ¿Para qué sirve cada caso?
Ver una posible respuesta
import random
def replica(semilla):
random.seed(semilla)
return [round(random.uniform(0, 10), 1) for _ in range(4)]
print(replica(1))
print(replica(1))
print(replica(2))
Las dos primeras coinciden: sirven para depurar y compartir. La tercera difiere: sirve para explorar variabilidad. En simulación necesitás ambas: repetir y variar.
09 · Síntesis
Ideas para recordar
- Determinístico se calcula una vez; aleatorio se estima con muchas réplicas.
- La mayoría de los modelos son mixtos: tendencia fija + ruido aleatorio.
- En Python,
random.seedvuelve repetible el azar para depurar. - El promedio de réplicas sigue la tendencia; los caminos individuales muestran el riesgo.
- Clasificar bien cada variable hoy ahorra calibraciones dolorosas mañana.
En el próximo tema formalizaremos el azar con experimentos aleatorios: espacio muestral, repeticiones y frecuencia como puente a la probabilidad.