Se le da una matriz binaria de tamaño .
Quiero mostrar que ningún algoritmo puede hacer lo siguiente (o sorprenderse y descubrir que estos algoritmos existen después de todo):
1) Preprocese la matriz de entrada con tiempo ilimitado, pero solo con bits .
2) Responda consultas en tiempo constante, donde la consulta solicita el número de bits establecidos entre el índice x y el índice y en la matriz.
Parece que el tiempo constante por consulta no debería permitir que el algoritmo lea suficiente información para calcular el número de bits establecidos.
¿Cómo podemos demostrar que no existe tal algoritmo?
Una pregunta más general sería:
dado que el algoritmo puede usar el espacio , ¿qué límite inferior en el tiempo de consulta podemos derivar?
Obviamente, si tenemos un espacio podemos almacenar todas las sumas parciales y responder consultas en O ( 1 ) , pero ¿y si f es más pequeño?
Puede suponer que el tamaño de una palabra de memoria es y podemos leer los índices x , y en tiempo constante.