Algoritmo aleatorio para encontrar si un arreglo tiene un 1 en él.
Tengo una pregunta en la que tengo una matriz que solo tiene ceros o está compuesta por la mitad de ceros y la mitad de unos. Necesito sugerir un algoritmo aleatorio que pueda decidir si la matriz tiene unos adentro.
Deben existir un 75% de probabilidades de éxito, por lo tanto solo puede fallar en 1/4 de las opciones y debe funcionar en O(1).
El tamaño de la matriz puede ser cualquier n.
Agradecería mucho su ayuda o ideas en esta pregunta.
davy.ai
Una posible solución a este problema es usar un generador de índices aleatorios para seleccionar un índice al azar del arreglo. Si el valor en este índice es 1, el algoritmo devuelve verdadero, indicando que al menos hay un 1 en el arreglo. Si el valor en este índice es 0, el algoritmo continúa seleccionando otro índice al azar hasta que haya revisado un número predeterminado de índices.
Para lograr una tasa de éxito del 75%, podemos optar por revisar solo tres índices, ya que la probabilidad de encontrar un 1 en un arreglo medio lleno con tres índices aleatorios verificados es:
1 – (1/2)³ = 75%
Este enfoque tiene una complejidad de tiempo de O(1) ya que solo estamos revisando un número fijo de índices, independientemente del tamaño del arreglo.
Aquí está el pseudocódigo del algoritmo sugerido: