Para cada función computable existe un problema que puede resolverse en el mejor de los casos en el tiempo o existe una función computable tal manera que cada problema que pueda resolverse en también ser resuelto en tiempo?
Esta pregunta me vino a la cabeza ayer. Lo he estado pensando un poco ahora, pero no puedo entenderlo. Realmente no sé cómo buscaría esto en Google, así que pregunto aquí. Esto es lo que se me ocurrió:
Mi primer pensamiento fue que la respuesta es sí: para cada función computable el problema "Salida puntos" (o crear una cadena con puntos o lo que sea) obviamente no se puede resolver en tiempo. Por lo tanto, solo tenemos que demostrar que se puede resolver en el tiempo . No hay problema, solo tome el siguiente pseudocódigo:
x = f(n)
for i from 1 to x:
output(".")
Claramente ese algoritmo resuelve el problema declarado. Y su tiempo de ejecución obviamente está en , por lo que el problema está resuelto. Eso fue fácil, ¿verdad? Excepto no, no es porque tenga que considerar el costo de la primera línea. El tiempo de ejecución del algoritmo anterior solo está en si el tiempo necesario para calcular está en . Claramente, eso no es cierto para todas las funciones 1 .
Entonces este enfoque no me llevó a ninguna parte. Le agradecería a cualquiera que me señale en la dirección correcta para resolver esto correctamente.
1 Considere, por ejemplo, la función . Claramente , pero no existe un algoritmo que calcule en el tiempo .