【发布时间】:2012-05-05 04:55:14
【问题描述】:
示例:
当整体应用除法时,结果是,
求和公式由下式给出,
使用求和规则可以在 O(1) 中轻松计算上述内容。
但是当它单独应用于每个术语时(在商中的小数点后截断),
=0+1+1+2+3+3+4+5=19。 [在C中使用普通int/int除法]
上述方法需要O(N),因为无法应用求和规则。
我理解以上是由于除法应用于每个术语而不是最后一个术语时,精度损失更多。但这正是我所需要的。[在上面的例子中, 19 是必需的解决方案,而不是 21]
是否有一个公式可以作为将除法单独应用于每个术语的快捷方式,类似于求和?
【问题讨论】:
-
求和总是
Σ(i=1..n; (2i-1)/3)的形式吗?如果没有,那么你会意识到答案是“不”。此外,这不是由于精度损失(例如浮点运算);这就是整数除法的定义。 -
@outis: 是的,它总是那种形式。
-
为了清楚起见,您实际上想要“失去准确性”,并且想要计算 (int)1/3 + (int)3/3 + (int)5/3 ...,正确的?纯粹出于好奇,我很想知道这个问题是在什么背景下出现的。
标签: c math complexity-theory