gpt4 book ai didi

java - 使用 Java 通过暴力计算多项式

转载 作者:行者123 更新时间:2023-12-01 12:49:45 25 4
gpt4 key购买 nike

我正在用 Java 开发多项式操作和评估程序。到目前为止,我已经实现了加法、减法和求值(霍纳的)方法,但是,我很难理解为什么我的强力求值方法不起作用,因为我得到了一个 indexOutOfBoundsException: Index: 2, size: 2。我有一个术语类和多项式类。术语构造函数采用两个参数,一个系数和一个指数,而多项式类有两个构造函数,一个采用名称参数,第二个采用名称参数和字符串数组:-

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;
}

现在有点晚了,我有一种感觉,这个问题就在我面前,但我看不到它,如果有人能帮助我解决这个问题,我将不胜感激。

最佳答案

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

更改为

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

你有<=,这将包括数组的第二个第三个位置,这是超出界限的

关于java - 使用 Java 通过暴力计算多项式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24320107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com