蒙特卡洛求π

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的话结果是整数

}

发布了64 篇原创文章 · 获赞 40 · 访问量 9521

猜你喜欢

转载自blog.csdn.net/qq_44472134/article/details/104345535