使用Java评估Brute Force的多项式

时间:2014-06-20 04:43:44

标签: java

我正在进行多项式操作& Java中的评估程序。到目前为止,我已经实现了加法,减法和评估(Horner's)方法,但是,我很难理解为什么我的暴力评估方法不起作用,因为我得到一个indexOutOfBoundsException:索引:2,大小:2。我有一个术语class和多项式类。术语构造函数有两个参数,系数和指数,而多项式类有两个构造函数,一个带有name参数,第二个带一个name参数和一个字符串数组: -

public Term(int coefficient, int exponent) {
    this.coefficient = coefficient;
    this.exponent = exponent;
}

public Polynomial(String name) {
    this.name = name;
    polyTerms = new ArrayList<Term>();
}

public Polynomial(String name, String[] terms) {
    this.name = name;
    polyTerms = new ArrayList<Term>();
    for (int j = 0; j <terms.length; j = j + 2) {
        int expo = Integer.parseInt(terms[j]);
        int coeff = Integer.parseInt(terms[j+1]);
        insertPolyTerms(coeff, expo);
    }
}

这是我的蛮力方法: -

public double evaluatePolyBruteForce (double x, Polynomial polynomial) {
    double result = 0.0;
    for (int i = 0; i<= polyTerms.size(); i++) {
        result += polyTerms.get(i).getCoefficient() * (double)Math.pow(x,polyTerms.get(i).getExponent());
    }
    return result;
}

现在有点晚了,我觉得这个问题让我眼花缭乱,我看不到它,我很感激你解决这个问题的任何帮助。

1 个答案:

答案 0 :(得分:1)

 for (int i = 0; i<= polyTerms.size(); i++) {

更改

 for (int i = 0; i< polyTerms.size(); i++) {

你有&lt; =这将包括数组的2,第三个pos,这是超出界限