您对此功能的唯一了解是
(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。
答案 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)到二进制搜索的时间)。