# Número total de nodos en el círculo
nodos <- 8

# Nodo de interés (nodo 5)
nodo_objetivo <- 5

# Número de simulaciones
num_simulaciones <- 100000

# Vector para almacenar los resultados de las simulaciones
resultados <- numeric(num_simulaciones)

# Realizar múltiples simulaciones
for (simulacion in 1:num_simulaciones) {
  # Inicializar un vector para rastrear los nodos visitados
  nodos_visitados <- rep(FALSE, nodos)
  
  # Nodo inicial
  nodo_actual <- 0
  
  # Contador para llevar el registro de los nodos visitados
  nodos_visitados_count <- 0
  
  # Realizar la simulación hasta que se visiten todos los nodos
  while (nodos_visitados_count < nodos) {
    # Actualizar el nodo actual
    nodos_visitados[nodo_actual + 1] <- TRUE
    nodos_visitados_count <- sum(nodos_visitados)
    
    # Moverse a la izquierda o a la derecha con igual probabilidad
    if (runif(1) < 0.5) {
      nodo_actual <- (nodo_actual - 1 + nodos) %% nodos
    } else {
      nodo_actual <- (nodo_actual + 1) %% nodos
    }
  }
  
  # Verificar si el último nodo visitado es el nodo de interés (nodo 5)
  resultados[simulacion] <- (nodo_actual == nodo_objetivo)
}

# Calcular la probabilidad promedio
probabilidad_promedio <- mean(resultados)

# Imprimir la probabilidad promedio
cat("La probabilidad promedio de que el nodo 5 sea el último visitado en", num_simulaciones, "simulaciones es:", probabilidad_promedio, "\n")
## La probabilidad promedio de que el nodo 5 sea el último visitado en 1e+05 simulaciones es: 0.14452