0

你会以什么方式尝试使用多台计算机来计算像 PI 这样的数字,即?

是否有现有的算法或解决方案可以轻松做到这一点?怎么分工,让其他机器的结果生效?

4

3 回答 3

5

这是一种简单的方法:

  1. 生成大量随机 (x,y) 点,其中 x 和 y 介于 0 和 1 之间。
  2. 对于每个点,计算其到原点的笛卡尔距离是否<= 1(即是否位于圆上或圆内)
  3. 计算圆内与圆外的点数

然后,可以从内点与外点的比率计算 Pi。要接近 pi,需要非常多的点,但是如果您有很多机器,您可以让每台计算机生成任意数量的计算机,然后简单地将计数返回给某个领导机器,该机器将收集所有结果并计算最终比例。

此方法可用于将 pi 计算到您想要的任何精度……点越多,精度越高。它被称为“蒙特卡洛”方法,因为它使用随机性。有关详细信息,请参阅http://math.fullerton.edu/mathews/n2003/montecarlopimod.html

于 2011-07-29T18:52:30.337 回答
2

“简单”版本将使用 Bailey-Borwein-Plouffe 公式,或其更快的变体Bellard 公式。它允许计算 π 的单个(二进制)数字,而无需计算之前的数字。

这意味着您可以将计算工作分配到不同的计算机上,而这些计算机不必进行太多通信。对于较大的数字索引,即使是单个数字,您仍然需要分配计算(因为您正在对非常大的整数进行一些乘法和除法)。

PiHex项目使用它来计算数字 5·10 12周围的一些(二进制)数字,一些在 4·10 13左右,一些在 10 15左右。

于 2011-07-30T22:04:37.140 回答
-4

在.Net平台上,你可以尝试.net remoting

于 2011-07-22T19:44:01.097 回答