AlgorithmsI Programming Assignment 1: PercolationStats.java
2015-09-27 14:53
381 查看
![](http://images2015.cnblogs.com/blog/160832/201509/160832-20150927144930709-1668703394.png)
![](http://images2015.cnblogs.com/blog/160832/201509/160832-20150927145021162-1713752445.png)
![](http://images2015.cnblogs.com/blog/160832/201509/160832-20150927145052397-82316851.png)
![](http://images2015.cnblogs.com/blog/160832/201509/160832-20150927145142162-1037296552.png)
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()); } }
相关文章推荐
- Java中常量和静态变量区别详解
- NetBeans使用技巧
- SSH整合(二)——利用Spring来装配Action类
- SSH整合(二)——利用Spring来装配Action类
- java的四个访问控制符
- JAVA接口继承、抽象类等
- Eclipse和Android Studio新建文件时自动添加注释
- Spring MVC 日期自动注入
- [LeetCode][Java]Peeking Iterator
- Google Java编程风格指南 - 转载及自己的标注
- JavaMe开发自适应滚动显示
- JAVA基础学习(十七)--集合四 工具类Collections
- JAVA基础学习day17--集合工具类-Collections
- java关键字——static
- java---try和throws异常总结
- JavaMe开发绘制文本框TextEdit
- Java Swing TextArea 滚动条和获得焦点
- java 快速排序
- SpringMVC那些事-请求映射匹配-处理器匹配
- java学习笔记--异常和包