01 · Punto de partida
Reintentar hasta que sale
¿Cuántos intentos fallidos antes del primer acierto con prob. p por intento? Reintentos de red, llamadas hasta vender, prototipos hasta aprobar: todos son Geométrica(p), la única discreta sin memoria.
Hay dos formas de generarla: contar Bernoullis uno por uno (didáctico, lento si p es chico) o saltar directo con un logaritmo (O(1), exacto).
- ¿Fracasos (0,1,…) o ensayos (1,2,…)?
- ¿Por qué k = ⌊ln(1−U)/ln(1−p)⌋ es exacto?
- ¿Cuándo el bucle es mejor que la fórmula?
- ¿Qué significa “sin memoria” en código?
02 · Definición
Masa, cola y falta de memoria
Versión fracasos: soporte {0,1,2,…}, F(k) = 1 − (1−p)^(k+1). Versión ensayos Y = X+1 con media 1/p. Varianza (1−p)/p² en ambas.
Inversión O(1)
Despejar 1−(1−p)^(k+1) ≥ u da el piso logarítmico. Un U, dos logs precomputables: ideal con p chico.
Bucle Bernoulli
Contar fracasos hasta el primer 1. Cuesta media (1−p)/p uniformes: bien si p ≈ 0,5, inviable si p = 0,001.
Sin memoria
P(X ≥ k+j | X ≥ k) = P(X ≥ j). En código: lo ya esperado no cambia lo que falta (como la exponencial continua).
| Versión | Soporte | Media | Generador |
|---|---|---|---|
| Fracasos X | {0,1,2,…} | (1−p)/p | ⌊ln(1−U)/ln(1−p)⌋ |
| Ensayos Y = X+1 | {1,2,…} | 1/p | X + 1 |
03 · Anatomía
Fórmula vs. bucle, bordes y costo
- Fórmula O(1)
- Precomputar ln(1−p) una vez. Cada muestra: un log + un piso. Estable salvo p ≈ 0 (ln(1−p) ≈ −p, usar
log1p) o U = 1 exacto. - Bucle O(1/p)
- Didáctico y sin logs. Con p = 0,5 cuesta ~1 uniforme; con p = 0,01 cuesta ~99. Solo para p grande o para enseñar.
- p extrema
- p → 1: casi siempre 0 (bucle de 0–1 pasos). p → 0: cola larguísima, valores de miles; graficar truncado + cola “≥K”.
- Desbordes
- k cabe en int siempre (geométrica finita c.s.). Con p = 1e−9 y U chico, k ~ 10⁹: usar 64 bits.
Inversión logarítmica
Rápida y exacta
Un U por muestra, costo constante. La opción por defecto en producción.
Bucle Bernoulli
Clara pero aleatoria en costo
Útil para validar la fórmula y para enseñar falta de memoria paso a paso.
04 · Dónde espera la geométrica
Del reintento al modelo
- 1Reintentos.
Red, bases de datos, colas con reintento: número de fallos antes del éxito.
- 2Ventas y conversión.
Llamadas hasta el primer “sí” con p por llamada.
- 3Puente a exponencial.
Geométrica con p = λ·Δt → Exponencial(λ) al refinar el tiempo. Discreto y continuo unidos.
- 4Puente a binomial negativa.
Suma de geométricas = espera del r-ésimo éxito. (Temas 19, 26)
05 · Representación en Python
Fórmula y bucle cara a cara
Mismo p, misma semilla conceptual: la fórmula debe dar igual distribución con 100× menos uniformes cuando p es chico.
Python en tu navegador. Bajá p a 0,05: la media tiende a 19.
import random
import math
random.seed(140)
p, N = 0.3, 8000
den = math.log(1 - p)
def geometrica_inv():
return int(math.log(1 - random.random()) / den)
def geometrica_bucle():
k = 0
while random.random() >= p:
k += 1
return k
m = [geometrica_inv() for _ in range(N)]
media = sum(m) / N
print("fórmula media:", round(media, 3), "teórica:", round((1-p)/p, 3))
print("P(X=0):", round(m.count(0)/N, 3), "vs", p)
random.seed(140)
m2 = [geometrica_bucle() for _ in range(500)]
print("bucle (500):", round(sum(m2)/len(m2), 3))
Media ≈ 2,333 y P(X=0) ≈ 0,3. El bucle con 500 ya ronda, pero gasta ~2,3 U por muestra contra 1 de la fórmula.
06 · Exploración
Laboratorio: cola que se alarga con p chico
Movete p con N fijo. Las barras son frecuencia 0…12 (+ cola ≥13); los rombos, p(1−p)^k. Con p = 0,5 cae rápido; con p = 0,1 la cola domina.
Geométrica por inversión
X = ⌊ln(1−U) / ln(1−p)⌋
Con p 0,3, media 2,33 y primer valor 0,3.
13 barras 0–12 más cola. Probá p = 0,1 (cola pesada) y p = 0,8 (casi todo en 0).
Preguntas para explorar
- Con p = 0,3, ¿media y P(X=0) teóricas? Leelas en el panel.
- Bajá a p = 0,1. ¿La media sube a 9? ¿La cola ≥13 crece a ~0,25?
- Subí a p = 0,9. ¿Por qué casi toda la masa está en 0 y 1?
Ver respuestas sugeridas
- Media 2,333 y P(X=0) = 0,3.
- Sí: (1−0,1)/0,1 = 9 y P(X≥13) = 0,9^13 ≈ 0,254.
- Porque P(X=0) = 0,9 y P(X=1) = 0,09: el éxito llega casi siempre al primer intento.
07 · Comprensión
Confusiones frecuentes
«Sumo 1 (o no) indistintamente»
Fracasos vs ensayos difieren en 1: media (1−p)/p vs 1/p. Un +1 fantasma arruina la validación.
«Uso log(U) o log(1−U) igual»
En distribución igual, numéricamente no: con U ≈ 1, 1−U pierde precisión. Para p chico preferir log1p(−U) o −Exp(p)/… según librería.
«El bucle siempre es más fiel»
Ambos son exactos; el bucle solo es más caro y con costo aleatorio. La fidelidad se valida igual en ambos.
«Sin memoria significa sin historia»
Significa que la cola condicional no depende de lo esperado: P(X≥k+j|X≥k) = P(X≥j). La historia de fracasos no “acumula suerte”.
08 · Práctica guiada
Ejercicios con Python
Ejercicio 1: reintentos de red
p = 0,2 por intento, N = 6000 (semilla 141): estimá media (≈ 4) y P(0 reintentos) (≈ 0,2).
import random
import math
random.seed(141)
p, N = 0.2, 6000
den = math.log(1 - p)
m = [int(math.log(1 - random.random()) / den) for _ in range(N)]
print(round(sum(m)/N, 3), "vs 4.0")
print(round(m.count(0)/N, 3), "vs 0.2")
Ver solución razonada
≈ 4,0 y ≈ 0,2 (típicamente 3,8–4,2). Si la media da ≈ 5, sumaste 1 (versión ensayos).
Ejercicio 2: cola por fórmula y por muestra
Con p = 0,1, compará P(X ≥ 13) teórica 0,9^13 ≈ 0,254 contra 8000 muestras.
import random
import math
random.seed(142)
p, N = 0.1, 8000
den = math.log(1 - p)
m = [int(math.log(1 - random.random()) / den) for _ in range(N)]
print(round(sum(1 for x in m if x >= 13) / N, 3), "vs", round(0.9 ** 13, 3))
Ver solución
Ambos ≈ 0,25. Las colas necesitan N grande: con N = 200 el intervalo sería 0,19–0,31.
Ejercicio 3: bucle que cuesta
Contá uniformes por muestra del bucle con p = 0,05 vs fórmula (1 U). El factor debe rondar 1/p = 20… en realidad (1−p)/p+1 = 20.
Ver una posible respuesta
import random
random.seed(143)
p, N = 0.05, 2000
usados = 0
m = []
for _ in range(N):
k = 0
while True:
usados += 1
if random.random() < p:
break
k += 1
m.append(k)
print("U por muestra (bucle):", round(usados / N, 1), "vs fórmula: 1.0")
print("media:", round(sum(m) / N, 2), "vs 19.0")
~20 U por muestra en bucle contra 1 en fórmula. Con p = 0,001 serían ~1000: la fórmula gana por goleada.
09 · Síntesis
Ideas para recordar
- Geométrica(p): P(X=k) = p(1−p)^k, media (1−p)/p (fracasos).
- Inversión ⌊ln(1−U)/ln(1−p)⌋: O(1), exacta, la defecto.
- Bucle Bernoulli: didáctico, costo medio 1/p uniformes.
- Sin memoria discreta, como la exponencial continua.
- Fijar convención fracasos/ensayos en el nombre.
En el próximo tema sumaremos Bernoullis: la binomial.