我有这个功能
,
在哪里是未知的。我可以计算任何值的函数,并寻求确定(在一定程度上准确)。
给定一个初始括号,我通过定义细分括号
和计算. 然后我有或者. 我可以继续使用这种方法,直到括号值达到一定的准确性,从而解决.
有没有更高效的算法?
我有这个功能
,
在哪里是未知的。我可以计算任何值的函数,并寻求确定(在一定程度上准确)。
给定一个初始括号,我通过定义细分括号
和计算. 然后我有或者. 我可以继续使用这种方法,直到括号值达到一定的准确性,从而解决.
有没有更高效的算法?
不。虽然这个问题是用浮点运算来表达的,但这本质上是一个关于二进制搜索的问题。二分搜索是依赖决策树的算法中的一种最优算法(例如,https ://stackoverflow.com/q/4571478/491171 )。任何数据结构和算法教科书都应该讨论这个问题。
直观地说,如果在每一步都可以做出二元决策(一次比较),那么通过划分搜索区域,您最多可以学习一位信息。最佳行为总是将搜索区域分成两半。如果可以采取任何值,任何(二元)决策树的深度,至少包含叶子必须至少. 二分搜索实现了这个界限脚步。此分析适用于所有预期行为的可能性相同,也适用于最坏情况的行为。
如果您有其他信息,那么有必要更准确地说明它的含义“未知”,算法中允许哪些操作,以及“更高效”意味着什么。(事实上,我以传统方式解释它们。)
请参阅@Kirill 的答案,但根据您可用的硬件类型,您可能能够利用并行性更快地解决问题。例如,假设您有一种评估方法为了同时操作数 - 然后您可以反复将括号分成间隔而不是. 很难说这实际上是“更有效”还是更快,因为会有开销和效率的各种定义。