【发布时间】:2012-04-07 10:21:21
【问题描述】:
我想使用 C++ 实现并行前缀和算法。我的程序应该采用输入数组x[1....N],它应该在数组y[N] 中显示输出。 (注意N的最大值为1000。)
到目前为止,我浏览了许多研究论文,甚至是维基百科中的算法。 但我的程序还应该显示输出、步骤以及每个步骤的操作/指令。
我想要最快的实现,就像我想要最小化操作数量和步骤一样。
例如::
x = {1, 2, 3, 4, 5, 6, 7, 8 } - Input
y = ( 1, 3, 6, 10, 15, 21, 28, 36) - Output
但是除了显示 y 数组作为输出之外,我的程序还应该显示每个步骤的操作。我也参考了这个帖子calculate prefix sum,但可以从中得到很多帮助。
【问题讨论】:
-
您的具体问题是什么?这似乎是一个非常简单的算法就足够了。
-
@ Niklas B::我实际上想要,我的程序应该使用最小步数和最小操作数。比如如果 N 是 1000,我的程序应该使用小于 20 的步数和小于 2100 的操作数。
-
尝试自己写一个!只需将数字相加即可。
-
@Niklas B :他想要“并行”前缀和算法。
-
你实现了维基百科文章中关于并行前缀和的算法吗?如果是这样,请在此处或在ideone上发布,我们将帮助您完成“显示输出、步骤以及每个步骤的操作/说明”部分。