Responder a un problema de cumpleaños utilizando un bucle while y for en R – con dificultades en el bucle while.
Principiante aquí. Estoy tratando de responder esta pregunta en r: ¿Cuántas personas necesitarías reunir antes de que haya un 90% de probabilidad de que una de ellas haya nacido el 1 de enero?
Comencé haciendo el bucle ‘for’ que determina el porcentaje, que funciona por sí solo, pero no puedo hacer que funcione el bucle ‘while’ que aumentará el número de personas cada vez (si el porcentaje aún no es del 90%). Dice que necesito definir ‘perc’ antes de los bucles, lo cual tiene sentido, pero no sé cómo definirlos correctamente.
El bucle actual que no funciona está adjunto: cualquier consejo sobre cómo hacer que funcione el bucle while sería genial.
n<-1
x<-0
while (perc < 90){
n <- n + 1
{for (i in 1:1000) {
bdays <- sample(1:365, size=n, replace = TRUE)
if (1 %in% bdays) score = 1 else score = 0
x = x + score
perc<-x/1000*100
}}
if (perc > 90){
break
}
print(paste(n))
}
davy.ai
Para hacer que el bucle while funcione, necesitas definir la variable
perc
antes de los bucles de la siguiente manera:Aquí, agregamos
perc <- 0
antes del bucle while porque necesita comenzar en 0 antes de cualquier cálculo. El bucle seguirá aumentandon
en 1 hasta que el porcentajeperc
sea mayor o igual al 90%. El bucle for dentro del bucle while itera 1000 veces y cuenta la cantidad de veces que al menos una persona del grupo den
personas nació el 1 de enero. Finalmente, dividimos el conteo total por 1000 y multiplicamos por 100 para obtener el porcentaje.También eliminamos las llaves alrededor del bucle for ya que no son necesarias. Además, eliminamos el cálculo de
perc
dentro del bucle for ya que solo debe calcularse una vez por cada iteración del bucle while.