Мой учебник гласит: «Мы определяем функцию следующим образом: f ( 1 ) = 2 и f ( i + 1 ) = 2 f ( i ) 1.2 . Обратите внимание, что при заданном n мы легко можем найти в O ( n 1.5 ) умножить число i так , чтобы n зажалось между f ( i ) и f ( i + 1) . "
Как я могу убедить себя, что на самом деле мы можем легко найти за O ( n 1,5 ) времени? Поскольку f определяется рекурсивно, я думаю, что мы должны вычислить f ( 1 ) , f ( 2 ) , f ( 3 ) … f ( j ), пока f ( j ) ≥ n . Чтобы выяснить, сколько времени занимают эти вычисления, я думаю, что мы должны найти подходящую верхнюю границу для i, зависящую от n.и мы должны найти верхнюю границу времени выполнения функции . В конце концов, мы можем показать цитируемое предложение. К сожалению, я не вижу ни того, ни другого.
Я забыл упомянуть: пожалуйста, обратите внимание, что мы находимся в недетерминированном контексте. Таким образом, считается вычислимым в O ( п 1,5 с помощью недетерминированной машины Тьюринга.
Поскольку довольно многие люди уже читали этот вопрос, причем некоторые из них сочли его полезным и интересным, но пока никто не ответил, я хочу предоставить дополнительную информацию о контексте: цитируемое утверждение является неотъемлемой частью доказательства теорема недетерминированной временной иерархии. Доказательство (с заявлением) можно найти, например, в книге Ароры и Барака , но я также нашел в Интернете немало других ресурсов, которые представляют такое же доказательство. Каждый из них называет утверждение простым или тривиальным и не раскрывает, как найти за O ( n 1,5 ) времени. Таким образом, либо все эти ресурсы, только что скопированные с Ароры и Барака, либо заявление на самом деле не так уж сложно.