java - 渗透程序中的错误 : Exception in thread "main" java. lang.ArrayIndexOutOfBoundsException: 0

标签 java

您好,我在尝试运行该程序时遇到此错误,但我无法弄清楚它出了什么问题:

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0 at PercolationStats.main

这是代码:

/****************************************************************
  * 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); 
    } 
}

最佳答案

这看起来像是来自其他来源的一些相当仔细编写的代码。

它几乎肯定失败的地方是它期望您向程序提供一些参数。您可以在代码顶部的注释中了解如何执行此操作。尝试运行它

java PercolationStats 20 1000

看看会发生什么。

如果您从 eclipse 内部运行它,则可以在运行配置中设置参数。

关于java - 渗透程序中的错误 : Exception in thread "main" java. lang.ArrayIndexOutOfBoundsException: 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26690419/

相关文章:

java - 限制 Eclipse 中源文件夹之间的访问

java - 如何检测以全屏模式运行的非 Java 程序?

java - 蓝牙设备(主)启动与 Android 的蓝牙连接

java - 无法让 Android studio 在模拟器上运行应用程序

java - 按数字正则表达式分割字符串

java - 从MapReduce导入数据到HBase(TableOutputFormat错误)

java - 音频信号绘图代码解释

java - 带生存时间的 EHcache 简单示例

java.lang.NumberFormatException : Invalid int: in display the image from sd card

java - 从 SWT 浏览器捕获 window.print()