如何优化返回正整数x的值的算法,使f(x)> = 0用于部分已知的函数?

时间:2017-03-03 00:25:39

标签: algorithm data-structures

您对此功能的唯一了解是

(i)对于f(x),x> = 1,使得f(x)> = 0.

(ii)当x> 1时严格增加。 0.

(iii)在任何时候评估功能都需要一段时间。

如何返回正整数x的值,使f(x)> = 0 in< O(n)时间,最好是O(log(n))时间?

在O(n)时间内,你只需要继续查询所有正整数的算法,直到它达到f(x)> = 0。

1 个答案:

答案 0 :(得分:0)

评估f(x)的x次幂为2,直到找到f(2 ^ n)< 0和f(2 ^(n + 1))> = 0.然后平分,直到找到最低值。找到函数为非负的2的第一个幂的O(log n)时间,然后在2 ^ n到2 ^(n + 1)的范围内找到O(log n)到二进制搜索的时间)。