Spark中的Pi Estimation

xiaoxiao2021-02-28  103

源码思路

源码

from pyspark.sql import SparkSession from random import random from operator import add # Pi Estimation def inside(p): x, y = random(), random() # 随机生成x,y坐标,在圆内或圆上则返回True return x*x + y*y <= 1 def Pi_estimation(spark): sc = spark.sparkContext NUM_SAMPLES = 10000 # count = sc.parallelize(xrange(0, NUM_SAMPLES)) \ #parallelize设置并行操作,filter进行过滤,count进行计数 .filter(inside).count() print("Pi is roughly %f " % (4.0 * count / NUM_SAMPLES)) if __name__ == "__main__": spark = SparkSession \ .builder \ .config("spark.some.config.option", "some-value") \ .getOrCreate() Pi_estimation(spark)

思路

利用蒙特卡罗算法,在一个边长为2的正方形内画个半径为1的圆。正方形的面积 S1=4,圆的面积 S2=πr^2=π现在只需要计算出S2就可以知道π,这里取圆心为坐标轴原点,在正方向中不断的随机选点,总共选n个点,计算在圆内或圆上的点的数目为count,则 S2=S1*count/n,然后就得出π的取值 [蒙特卡罗算法是什么](https://www.zhihu.com/question/20254139)
转载请注明原文地址: https://www.6miu.com/read-66919.html

最新回复(0)