⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 fac7_2_2.java

📁 java 算法设计与分析的好资料.由王晓东先生主编.
💻 JAVA
字号:
//本程序取自王晓东编著“算法分析与设计”第 245 页,例7_2_2
//用随机投点法计算定积分
 import java.lang.System;
  class Random
 {
   private long seed;//当前种子
   private final static long multiplier=0x5DEECE66DL;
   private final static long adder=0xBL;
   private final static long mask=(1L<<48)-1;
   //构造方法,自动产生种子
   public Random(){
     this.seed=System.currentTimeMillis();}
  //构造方法,缺省值0表示由系统自动产生种子
   public Random(long seed)
     {
       if(seed==0)this.seed=System.currentTimeMillis();
       else this.seed=seed;
     }
  //产生[0,n-1]之间的随机整数
   public int random(int n)
     {
      if(n<=0)
       throw new  IllegalArgumentException(" n must be positive");
      seed=(seed*multiplier+adder) & mask;
      return ((int)(seed>>>17)%n);
     }
  //产生[0,1]之间的随机实数
   public double fRandom()
     {
      return random(Integer.MAX_VALUE)/(double)(Integer.MAX_VALUE);
     } 
  }
  public class Fac7_2_2{
    public static double darts1(int n)
     {//用随机投点法计算定积分
        Random dart=new Random();
      int k=0;
      for(int i=1;i<=n;i++){
         double x=dart.fRandom();
	 double y=dart.fRandom();
	 if(y<=f(x))k++;
	  }
      return k/(double)n;
     }
	 public static double f(double x)
	  {//定义函数f(x)
	     return(Math.sin(x));
      }
 /** 应用程序   */
    public static void main(String args[])
     {
       int i=100000;      
          System.out.print("sin(x)积分近似值 ");
         System.out.println(darts1(i));
        
      }
  }   

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -