渗流程序出错:线程中出现异常;“主要”;java.lang.ArrayIndexOutOfBoundsException:0
您好,我在尝试运行此程序时遇到此错误,我无法找出它的错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:0 在渗流状态下 代码如下:渗流程序出错:线程中出现异常;“主要”;java.lang.ArrayIndexOutOfBoundsException:0,java,Java,您好,我在尝试运行此程序时遇到此错误,我无法找出它的错误: 线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:0 在渗流状态下 代码如下: /**************************************************************** * Compilation: javac PercolationStats.java * Execution: java PercolationStats
/****************************************************************
* Compilation: javac PercolationStats.java
* Execution: java PercolationStats N T
* Dependencies: Percolation.java, StdStats.java, StdRandom.java,
* StdOut.java
*
* % java PercolationStats 20 1000
* mean = 0.591100
* stddev = 0.046068
* 95% confidence interval = 0.582071, 0.600129
*
* % java PercolationStats 200 100
* mean = 0.593257
* stddev = 0.016242
* 95% confidence interval = 0.592251, 0.594264
*
***************************************************************/
public class PercolationStats {
private int experimentsCount;
private Percolation pr;
private double[] fractions;
public PercolationStats(int N, int T) {
if (N <= 0 || T <= 0) {
throw new IllegalArgumentException("Given N <= 0 || T <= 0");
}
experimentsCount = T;
fractions = new double[experimentsCount];
for (int expNum = 0; expNum < experimentsCount; expNum++) {
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++;
}
}
double fraction = (double) openedSites / (N * N);
fractions[expNum] = fraction;
}
}
public double mean() {
return StdStats.mean(fractions);
}
public double stddev() {
return StdStats.stddev(fractions);
}
public double confidenceLo() {
return mean() - ((1.96 * stddev()) / Math.sqrt(experimentsCount));
}
public double confidenceHi() {
return mean() + ((1.96 * stddev()) / Math.sqrt(experimentsCount));
}
public static void main(String[] args) {
int N = Integer.parseInt(args[0]);
int T = Integer.parseInt(args[1]);
PercolationStats ps = new PercolationStats(N, T);
String confidence = ps.confidenceLo() + ", " + ps.confidenceHi();
StdOut.println("mean = " + ps.mean());
StdOut.println("stddev = " + ps.stddev());
StdOut.println("95% confidence interval = " + confidence);
}
}
/****************************************************************
*编译:javac PercolationStats.java
*执行:java PercolationStats N T
*依赖项:Percolation.java、StdStats.java、StdRandom.java、,
*java
*
*%java PercolationStats 20 1000
*平均值=0.591100
*STDEV=0.046068
*95%置信区间=0.582071,0.600129
*
*%java PercolationStats 200 100
*平均值=0.593257
*STDEV=0.016242
*95%置信区间=0.592251,0.594264
*
***************************************************************/
公共类PercolationStats{
私家侦探;
私人渗滤公关;
私人双[]分数;
公共渗流状态(int N,int T){
如果(N这看起来像是从另一个源代码中相当仔细地编写的代码
它几乎肯定失败的地方在于它希望您向程序提供一些参数。您可以在代码顶部的注释中看到如何做到这一点。请尝试使用
java PercolationStats 20 1000
看看会发生什么
如果您是从eclipse内部运行此方法,则可以在运行配置中设置参数。调用main方法时是否传递参数?Tnx 4 ur帮助,我知道;)