蒙特卡洛求π
程序员文章站
2022-07-11 09:09:34
...
package com.Last
import org.apache.spark.{SparkConf, SparkContext}
/**
* TODO
*
* @author 徐磊
* @email [email protected]
* @data2020/02/16 下午 02:34
* @最终需求效果: 先定义两个数然后把数装进sc然后再进行计算
*/
object Mtklqp extends App {
val conf = new SparkConf()
.setAppName("c")
.setMaster("local[2]") //要是打Jar包后期放到spark集群上运行就需要把这个master注释了
val sc = new SparkContext(conf)
val s =100
val count=s*1000
val n = sc.parallelize(seq=1 to count,s).map(it=>{
def m=java.lang.Math.random()
val x = 2*m-1 //x和y的范围都是-1到1
val y = 2*m-1
if(x*x+y*y<1)1 else 0 //x的平方+y的平方小于1才表示始终在圆里面
}).reduce(_+_)
println(4.0*n/count) //4后面没有0的话结果是整数
}
上一篇: 字符排列组合