Apenas terminaste la universidad y organizas una gran fiesta para celebrar con amigos y familiares. Se han presentado más de 70 personas, incluido tu tío Ted, que es un poco excéntrico.
En una de sus típicas ocurrencias, te apuesta £100 a que al menos dos personas en la sala cumplen años el mismo día. Suena ridículo: hay muchas más fechas de cumpleaños posibles que invitados, así que aceptas con confianza.
Para tu asombro, después de anotar los cumpleaños de solo 32 invitados, ya encontraste dos que cumplen años el mismo día. Aceptas tu derrota y le entregas a tu tío Ted sus £100, pero algo no cuadra.
Al día siguiente, la curiosidad te puede. Una rápida búsqueda en internet te lleva a la paradoja del cumpleaños, que revela que con solo 23 personas, la probabilidad de que dos cumplan años el mismo día supera el 50 %.
Ah. Así que por eso tu tío Ted estaba tan seguro.
Con la idea de darle la vuelta a la situación, empiezas a buscar otras paradojas; la próxima vez, tú serás quien haga las apuestas.
La paradoja del cumpleaños es una paradoja verídica: aunque parece incorrecta, en realidad es cierta.
Tu tarea es estimar las probabilidades de la paradoja del cumpleaños.
Para hacerlo, necesitas:
Una fecha de nacimiento incluye la fecha completa de nacimiento (año, mes y día), mientras que un cumpleaños se refiere solo al mes y el día, que se repiten cada año. Dos fechas de nacimiento con el mismo mes y día corresponden al mismo cumpleaños.
La paradoja del cumpleaños supone que:
Tu implementación debe seguir estos supuestos.
La función random_birthdates() debe producir fechas con las siguientes propiedades:
y no es bisiesto y cumple que 1600 <= y < 2129.Tanto la distribución del año como la del cumpleaños se comprueban con una prueba de chi-cuadrado, a un nivel de p < 0.0001.
Esto significa que, si las fechas se generan de acuerdo con las instrucciones, hay menos de un 0.01% de probabilidad de que se produzca una distribución de valores que falle la prueba.
Regístrate en Exercism para aprender y dominar x86-64 Assembly con 22 conceptos130 ejercicios y mentoría humana real, todo gratis.