任何数字的阶乘都是可并行化的吗?

Is factorial of any number is Parallelizable?

任何数的阶乘都可以并行化吗?怎么样?

当然可以,为什么不呢?乘法是结合的。 a * (b * (c * d)) == (((a * b) * c) * d) == (a * b) * (c * d)。分而治之的并行化方案的含义应该很清楚。

但是,这只会对 很多 个数字的乘积有任何实际好处,如果你在谈论阶乘,那意味着你正在处理 huge 乘积,超出了任何计算机的本机整数范围,这意味着您正在处理任意精度的算术......在这种情况下,您可能有机会并行化 单次乘法(Karatsuba 乘法是递归的,基于 FFT 的乘法中的 FFT 也非常可并行化),如果您可以那样用完所有资源,那么在更高层进行并行化就没有意义了。

为了计算合理大小的阶乘,最快的方法可能是直接的单线程方法,它没有开销。