对数和统一成本标准之间的差异

时间:2010-05-21 16:03:58

标签: optimization logarithm

我有一些问题需要理解对数(Lcc)和统一(Ucc)成本标准之间的区别,以及如何在计算中使用它。

有人可以解释两者之间的区别,也许可以说明如何计算A + B * C等问题的复杂性

(是的,这是作业的一部分=))

感谢您的帮助!

/ Marthin

4 个答案:

答案 0 :(得分:5)

统一成本标准为每个机器操作分配一个固定成本,而不考虑所涉及的位数。当对数成本标准为每个机器操作分配成本与所涉及的位数成比例时

答案 1 :(得分:3)

问题规模影响复杂性 由于复杂性取决于的大小 我们将复杂性定义为函数的问题 问题的大小 定义:设T(n)表示复杂度 一种适用于问题的算法 大小 问题实例(I)的大小(n)是 用于表示的二进制位数 实例。所以问题的大小就是长度 实例的二进制描述。 这称为对数成本标准

单位成本标准 如果你认为: - 每次计算机指令都需要一次 单元, - 每个寄存器都是一个存储单元 - 并且数字总是适合寄存器 然后你可以使用输入数量作为 自输入长度以来的问题大小(以位为单位) 将是输入数量的常数。

答案 2 :(得分:0)

统一成本标准假设每条指令只占用一个单位时间,并且每个寄存器只需要一个单位空间。

对数成本标准假设每条指令采用对数个时间单位(相对于操作数的长度),并且每个寄存器都需要一个对数的空间单位。

简单来说,这意味着统一的成本标准会计算操作次数,而对数成本标准会计算位操作的数量。

例如,假设我们有一个8位加法器。

如果我们使用统一的成本标准来分析加法器的运行时间,我们会说加法需要一个时间单位;即,T(N)= 1。

如果我们使用对数成本标准来分析加法器的运行时间,我们会说加法需要lg⁡n个时间单位;即,T(N)= lgn,其中n是你必须在时间复杂度方面添加的最坏情况数(在这个例子中,n将是256)。因此,T(N)= 8。

更具体地说,我们要添加256到32.要执行添加,我们必须在1s列,2s列,4s列等中添加二进制位(列表示位位置)。数字256需要8位。这是对数进入我们的分析的地方。 lg256 = 8。因此,要添加这两个数字,我们必须在8列上执行添加。对数成本标准表明这8次加法计算中的每一次都需要一个单位时间。统一成本标准表示整组8次加法计算只需一个单位时间。

也可以在空间方面进行类似的分析。登记册要么占用一定的空间(在统一的成本标准下),要么占据一个对数的空间(在统一的成本标准下)。

答案 3 :(得分:-2)

我认为你应该对Big O表示法进行一些研究...... http://en.wikipedia.org/wiki/Big_O_notation#Orders_of_common_functions

如果您发现某部分说明很难编辑您的问题。