【发布时间】:2017-03-05 11:32:40
【问题描述】:
考虑以下伪代码:
a
b
c
在上面的伪代码中,触发器计数是多少(即数字浮点运算)?
更一般地说,我想知道的是,在查看算法的复杂性时,变量的初始化是否计入总浮点运算。
【问题讨论】:
-
嗯,不,但是如果您决定使用浮点运算作为复杂性的度量,那么您当然可以确定它们是实现的限制因素。
标签: time-complexity flops
考虑以下伪代码:
a
b
c
在上面的伪代码中,触发器计数是多少(即数字浮点运算)?
更一般地说,我想知道的是,在查看算法的复杂性时,变量的初始化是否计入总浮点运算。
【问题讨论】:
标签: time-complexity flops
在您的情况下,a 和 b 向量都是零,我认为使用零来描述或解释触发器操作不是一个好主意。
我会说给定向量 a 具有条目 a1、a2 和 a3,并且还给定向量 b 具有条目 b1、b2、b3。两个向量的点积等于 aTb 给出
aTb = a1*b1+a2*b2+a3*b3
这里我们有 3 个乘法运算
(i.e: a1*b1, a2*b2, a3*b3) 和 2 个加法运算。我们总共有 5 次操作或 5 次失败。
如果我们想将这个例子推广到 n 维向量 a_n 和 b_n,我们将有 n 次乘法运算和n-1 次加法运算。总的来说,我们最终会遇到n+n-1 = 2n-1 操作或失败。
我希望我上面使用的例子能给你直觉。
【讨论】: