算法-->概率

本文介绍了概率算法的基本执行过程,包括将问题转化为几何图形、随机撒点、统计点数及判断精度。还列举了概率算法的四种形式:数值概率算法、蒙特卡罗、拉斯维加斯和舍伍德算法,并特别讨论了使用蒙特卡罗方法计算圆周率的两个关键点:均匀撒点和区域判断。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概率算法执行的基本过程如下:

  • 将问题转化为相应的几何图形S,S的面积很容易计算,问题的结果往往对应几何图形中某一部分S1的面积。
  • 然后向2几何图形中随机撒点
  • 统计几何图形S和 S1中的点数。根据S和S1面积之间的关系和图形中的点数来计算得到结果
  • 判断上述结果是否在需要的精度之内,如果未达到精度就执行步骤(2)如果达到结果就输出近似结果

  • 概率算法的4种形式

  • (1)数值概率算法
  • (2)蒙特卡罗(Monte Carlo)
  • (3)拉斯维加斯(Las Vegas)算法
  • (4)舍伍德(Sherwood)算法
  • 使用蒙特卡罗计算圆周率有两个关键点:
  • (1)均匀撒点
  • (2)区域判断
package 概率算法思想;

import java.util.Scanner;

public class Gailv {
    static double MonterPI(int  n) {
        double PI;
        double x,y;
        int i,sum;
        sum=0;
        for(i=1;i<n;i++) {
            x=Math.random();//产生一个人0-1的随机数
            y=Math.random();
            if(x*x+y*y<1) {//如果 是在阴影部分
                sum++;//计数
            }
        }
        PI=4.0*sum/n;
        return PI;
    }
public static void main (String []args) {
int n;
double PI;
System.out.println("蒙特卡洛算法计算 PI:");
Scanner sc=new Scanner(System.in);
System.out.println("请输入点的数量");
n=sc.nextInt();
PI=MonterPI(n);
System.out.println("PI="+PI);

}
}

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值