Ведь если у нас в компьютере бесконечная память, то теоретически могут существовать полностью всё покрывающие радужные таблицы. И тогда вообще все NP задачи могут быть решены за O(1).
Такая задача. Сколько нужно времени, чтобы вычислить значение полинома степени
от одной переменной
?
По схеме Горнера за
сложений и
умножений. А если разрешить предварительную обработку коэффициентов? Тогда за
умножений и
сложений. Причем быстрее вообще нельзя.
Теперь введем ограничение. Пусть каждый коэффициент полинома занимает 4 байта. А переменная
может быть хоть double, хоть более длинной, короче, нет ограничения на
.
Допустим, память у нас бесконечная, доступ к ячейки памяти осуществляется за один такт. В математической модели машины с неограниченными регистрами также доступ к ячейки памяти осуществляется за один такт.
Если использовать радужные или любые другие хеш таблицы, то можно ли вычислять значение многочлена быстрее линейного времени?
Думаю, что нет. Например, для вычисления индекса хеш таблицы понадобится линейное время.