欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

蒙特卡洛求π

程序员文章站 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的话结果是整数

}