Множитель целости
а. Напишите процедуру pseudoremainder-terms , которая работает в точности как remainder-terms , но только прежде, чем позвать div-terms , домножает делимое на множитель целости, описанный выше. Модифицируйте gcd-terms так, чтобы она использовала pseudoremainder-terms , и убедитесь, что теперь greatest-common-divisor выдает ответ с целыми коэффициентами в примере из упражнения 2.95
б. Теперь у НОД целые коэффициенты, но они больше, чем коэффициенты P1 . Измените gcd-terms , чтобы она убирала общий множитель из коэффициентов ответа путем деления всех коэффициентов на их (целочисленный) НОД.
Итак, вот как привести рациональную функцию к наименьшему знаменателю:
Вычислите НОД числителя и знаменателя, используя версию
`gcd-terms`
из упражнения
2.96
Когда Вы получаете НОД, домножьте числитель и знаменатель на множитель целости, прежде чем делить на НОД, чтобы при делении не получить дробных коэффициентов. В качестве множителя можно использовать старший коэффициент НОД, возведенный в степень
`1 + O1 − O2`
, где
`O2`
– порядок НОД, а
`O1`
— максимум из порядков числителя и знаменателя. Так Вы добьетесь того, чтобы деление числителя и знаменателя на НОД не привносило дробей.
В результате этой операции Вы получите числитель и знаменатель с целыми коэффициентами. Обычно из-за всех множителей целости коэффициенты окажутся очень большими, стало быть, на последнем шаге следует избавиться от лишних множителей, вычислив (целый) наибольший общий делитель числителя и знаменателя и поделив на него все термы.
Комментарии отсутствуют.