Java使用Math.random()结合蒙特卡洛方法计算pi值示例

 更新时间:2017年09月16日 10:46:34   作者:软货  
这篇文章主要介绍了Java使用Math.random()结合蒙特卡洛方法计算pi值的方法,简单说明了结合具体实例蒙特卡洛方法的原理,并结合具体实例形式分析了java使用蒙特卡洛方法计算PI值的操作技巧,需要的朋友可以参考下

本文实例讲述了Java使用Math.random()结合蒙特卡洛方法计算pi值。分享给大家供大家参考,具体如下:

一、概述

蒙特·卡罗方法(Monte Carlo method),也称统计模拟方法,是二十世纪四十年代中期由于科学技术的发展和电子计算机的发明,而被提出的一种以概率统计理论为指导的一类非常重要的数值计算方法。是指使用随机数(或更常见的伪随机数)来解决很多计算问题的方法。与它对应的是确定性算法。

详细可参考百度百科:https://baike.baidu.com/item/%E8%92%99%E7%89%B9%C2%B7%E5%8D%A1%E7%BD%97%E6%96%B9%E6%B3%95

二、实现代码

/**
 * Monte Carlo algorithm
 */
import java.math.*;
public class PI {
  /**
   * @param args
   */
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    double xf = 0.0d;
    double yf = 0.0d;
    int total = 0;
    for(int i = 0;i<1000000;i++){
      xf = Math.random();
      yf = Math.random();
      if(Math.sqrt(xf*xf+yf*yf) < 1)
        total++;
    }
    System.out.println("脚本之家测试结果:");
    System.out.println(4*(total/1000000.0));
  }
}

运行结果:

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总

希望本文所述对大家java程序设计有所帮助。

相关文章

  • spring通过jdbc连接数据库

    spring通过jdbc连接数据库

    这篇文章主要为大家详细介绍了spring通过jdbc连接数据库的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-08-08
  • javaweb中Http协议详解

    javaweb中Http协议详解

    HTTP是hypertext transfer protocol(超文本传输协议)的简写,它是TCP/IP协议的一个应用层协议,用于定义WEB浏览器与WEB服务器之间交换数据的过程。这篇文章主要为大家详细介绍了javaweb中的Http协议,感兴趣的小伙伴们可以参考一下
    2016-05-05
  • Java 方法引用与ambda表达式的联系

    Java 方法引用与ambda表达式的联系

    这篇文章主要介绍了Java 方法引用与ambda表达式的联系,方法引用通过方法的名字来指向一个方法, 方法引用同样是Java 8 引入的新特性,而且和Lambda表达式有着不小的联系,它同样可以根据上下文进行推导,进而可以简化代码
    2022-06-06
  • Java 并发编程的可见性、有序性和原子性

    Java 并发编程的可见性、有序性和原子性

    这篇文章主要介绍了Java 并发编程的可见性、有序性和原子性的相关资料,帮助大家更好的理解和学习Java并发编程,感兴趣的朋友可以了解下。
    2020-11-11
  • 使用RequestBodyAdvice实现对Http请求非法字符过滤

    使用RequestBodyAdvice实现对Http请求非法字符过滤

    这篇文章主要介绍了使用RequestBodyAdvice实现对Http请求非法字符过滤的操作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-06-06
  • SpringBoot处理JSON数据方法详解

    SpringBoot处理JSON数据方法详解

    这篇文章主要介绍了SpringBoot整合Web开发中Json数据处理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-10-10
  • Java多线程阻塞与唤醒代码示例

    Java多线程阻塞与唤醒代码示例

    本文主要向大家分享了Java多线程中的阻塞与唤醒的相关内容,通过这篇文章大家可以大致了解到进入线程阻塞状态和可执行状态的方法,需要的朋友可以了解下。
    2017-09-09
  • Java实现获取小程序带参二维码并保存到本地

    Java实现获取小程序带参二维码并保存到本地

    这篇文章主要介绍了Java实现获取小程序带参二维码并保存到本地,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-10-10
  • Java实现按行读取大文件

    Java实现按行读取大文件

    这篇文章主要介绍了Java实现按行读取大文件的方法的小结,非常的简单实用,有需要的小伙伴尅参考下。
    2015-05-05
  • 关于Java限流功能的简单实现

    关于Java限流功能的简单实现

    这篇文章主要介绍了关于Java限流功能的简单实现,在Java中,限流是一种常见的技术手段,用于控制系统的访问速率,以保护系统免受过载和滥用,需要的朋友可以参考下
    2023-07-07

最新评论