以多进程方式计算斐波那契数?

我正在编写多进程斐波那契数字计算器,我有一个跟踪斐波纳契数字的文件,首先打开文件并编写第一个斐波纳契数字(0和1),然后做fork和它的子进程读取最后两个数字加法他们起来并将下一个写入文件并关闭文件并再次分叉这个过程继续像forking和child将数字加起来并将计算出的数字写入文件,使用fork里面的for not a good solution既不是递归调用,有没有对问题的建议?   这是我们的问题的链接   谈论多进程的一部分   问题是第2部分      http://cse.yeditepe.edu.tr/~sbaydere/fall2010/cse331/files/assignments/F10A1.pdf     
已邀请:
假设你是以“简单”的方式计算它们(即没有使用狡猾的公式),我认为它根本不适合并行处理。 提出O(n)解决方案很容易,但每个结果都取决于前一个,因此并行化本身就很棘手。我看不出你目前的并行方法有什么好处,因为在每个进程完成自己的工作并分叉一个孩子获得下一个数字之后,它基本完成了...所以你不妨做分叉孩子的工作在现有的过程中。     
进行多进程的斐波纳契数计算是一个非常奇怪的想法。实际上,要计算一个数字,你需要知道前两个。多个进程不能计算其他数字,而是下一个数字,只能计算下一个数字。多个进程都将计算下一个斐波纳契数。无论如何,你会仔细检查。     
您可能想看看这篇文章: http://cgi.cse.unsw.edu.au/~dons/blog/2007/11/29 这里有更多的想法: http://www.haskell.org/haskellwiki/The_Fibonacci_sequence     
可能这不是解决你的问题,但这是计算给定范围的斐波纳契数的一种简单方法
int fibo(int n) { return (n<=2)?n:(fibo(n-1))+(fibo(n-2)); }
    

要回复问题请先登录注册