GCD двух полиномовJAVA

Программисты JAVA общаются здесь
Anonymous
GCD двух полиномов

Сообщение Anonymous »

В коде ниже я хочу найти наибольший общий делитель 2 полиномов.
Иногда я получаю ошибку на «return c.plus ((a.minus (b.times (c)). разделяет (b)));». Как это исправить? < /P>

public Polynomial divides(Polynomial b) {
Polynomial a = this;

if ((b.deg == 0) && (b.coef[0] == 0))
throw new RuntimeException("Divide by zero polynomial");

if (a.deg < b.deg) return new Polynomial(0,0);

int coefficient = a.coef[a.deg]/(b.coef[b.deg]);

int exponent = a.deg - b.deg;
Polynomial c = new Polynomial(coefficient, exponent);
return c.plus( (a.minus(b.times(c)).divides(b)) );
}

public Polynomial GCD(Polynomial b) {
Polynomial a = this;
Polynomial f = b;
Polynomial x = a.minus((a.divides(f)).times(f));

if (x.deg == 0 && x.coef[0] == 0) {
return b;
}
return f.GCD(x);

}


Подробнее здесь: https://stackoverflow.com/questions/400 ... olynomials

Вернуться в «JAVA»