• AlgorithmsI Programming Assignment 1: PercolationStats.java


    import edu.princeton.cs.algs4.StdOut;    
    import edu.princeton.cs.algs4.StdRandom;
    import edu.princeton.cs.algs4.StdStats;    
    /*
     *How do I generate a site uniformly at random among all blocked sites for use in PercolationStats? 
     * Pick a site at random (by using StdRandom to generate two integers between 1 and N) 
     * and use this site if it is blocked; if not, repeat. 
     */
    public class PercolationStats {
       private int T; //T independent experiments
       private double[] fraction;
           
       public PercolationStats(int N, int T) {  // perform T independent experiments on an N-by-N grid
           if (N <= 0 || T <= 0) {
               throw new IllegalArgumentException("N and T must be bigger than 0");
           }
           this.T = T;
           fraction = new double[T];
          
           for (int count = 0; count < T; count++) {
               Percolation pr =  new Percolation(N);
               int openedSites = 0;
               while (!pr.percolates()) {
                   int i = StdRandom.uniform(1, N+1);
                   int j = StdRandom.uniform(1, N+1);
                   if (!pr.isOpen(i, j)) {
                       pr.open(i, j);
                       openedSites++;
                   }
               }
               fraction[count] = (double) openedSites / (N * N);
           }
       }
      
       public double mean() {                     // sample mean of percolation threshold
           return StdStats.mean(fraction);
       }
       
       public double stddev() {                 // sample standard deviation of percolation threshold
           return StdStats.stddev(fraction);
       }
       
       public double confidenceLo() {           // low  endpoint of 95% confidence interval
           return mean() - 1.96 * stddev() / Math.sqrt(T); 
       }
       
       public double confidenceHi() {      // high endpoint of 95% confidence interval
           return mean() + 1.96 * stddev() / Math.sqrt(T); 
       } 
      
       public static void main(String[] args)    // test client (described below)
       {
           int N = Integer.parseInt(args[0]);
           int T = Integer.parseInt(args[1]);
           PercolationStats ps = new PercolationStats(N, T);
           StdOut.println("mean                    = " + ps.mean());
           StdOut.println("stddev                  = " + ps.stddev());
           StdOut.println("95% confidence interval = "+ps.confidenceLo()+", "+ ps.confidenceHi());
       }
    }
  • 相关阅读:
    jquery 复制粘贴上传图片插件
    chrome插件的开发
    js获取剪切板内容,js控制图片粘贴
    记录前端常用的插件
    如何快速搭建node.js项目,app.js详解
    原型和原型链
    js 上传文件功能
    前端模块化开发发展史
    闭包实例
    5月8日疯狂猜成语-----对孔祥安组的测试版
  • 原文地址:https://www.cnblogs.com/anne-vista/p/4842243.html
Copyright © 2020-2023  润新知