带螺纹的欧拉数

时间:2014-07-23 23:06:27

标签: multithreading

我有两个类来计算欧拉数。

计算欧拉数的公式是1 / n!的总和。 n = 0到无穷大

此课程计算阶乘

public class E 
{
    public static double factorial(double number)
    {
          double m = number;
          if (number == 0 || number == 1)
          {
               return 1;
          } 
          else
          {
              return m*factorial(m-1);
          }
    }

}

此类计算欧拉数

public class Teste 
{
    static double e = 0;
    public static void euller (int n)
    {
        for (int i = 0; i <= n; i++)
        {
            double j = (double)(E.factorial(i));
            e += (1 / j);
        }
    }
    public static void main(String[] args)
    {
        euller (100); // euller of numbr 100
        System.out.println (e);  
    }
}

我想使用线程。每个线程都应该计算一个数字的阶乘。

例如,n = 10,线程数= 5

线程1,计算因子0 1,线程2计算2 3 ...

我应该如何在此代码中包含线程?

1 个答案:

答案 0 :(得分:1)

创建一个池线程,在你的情况下有5个线程,只需在调用factorial(i)时执行它们。那就没那么多了。