Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Алгоритмы > Схема Горнера |
Автор: Gordon 3.3.2008, 19:48 |
Всем доброго времени суток! ![]() Прошу прощения, если такая тема уже затрагивалась, но я не нашел... Вобщем дело такое: нужно найти значение многочлена (к примеру x^7 + 2x^6 + 6X^5 + 3X^4 + 7x^3 + 5x + 4), в инете нужной инфы не нашел (все какие-то отрывки и т.п.)... Меня собственно интересует что представляет собой схема Горнера (т.е. программно реализовать её на ЯП думаю смогу, самому интересно, главное поять саму суть алгоритма). |
Автор: PPS05 3.3.2008, 21:08 |
Суть в том, что это то же самое, что и x * (x * (x * (x * (x * (x * (x) + 2) + 6) + 3) + 7) + 5) + 4 А это значит, что значение можно вычислить линейно: f = 1 f = f * x + 2 f = f * x + 6 f = f * x + 3 ... f = f * x + 4 |
Автор: Gordon 4.3.2008, 20:43 |
PPS05, спасибо за ответ, но только такая штука получается: f(1) по схеме Горнера совпвдает с простым расчетом... А f(2) - нет! ![]() |
Автор: Elfet 4.3.2008, 20:54 |
А разве вот тут не всё объяснено? ![]() |
Автор: Gordon 4.3.2008, 21:45 |
Да как-то нет... Или я чего-то не догоняю... ![]() |
Автор: maxim1000 4.3.2008, 21:52 |
нет, там объяснено, как делить многочлены по схеме Горнера а имеется в виду, насколько я понял, уменьшение количества вычислений с помощью группировки членов если недостаточно вышеописанного (хотя, как по мне, достаточно), то можно посмотреть тут: http://www.pm298.ru/mnog3.shtml |
Автор: Elfet 4.3.2008, 22:44 | ||
А вот это разве не объяснение? ![]()
|
Автор: maxim1000 5.3.2008, 00:13 |
просто тут нужен дополнительный переход от остатка деления многочленов к значению в точке а через группировку и вынесение за скобки, ИМХО, проще и понятнее |
Автор: Elfet 5.3.2008, 15:44 |
Дело вкуса ![]() |
Автор: Gordon 5.3.2008, 19:55 |
Спасибо за ответы... Я еще гдето выдел вынесение за скобки, так вроде по проще, но только значения не всегда свпадают, тчо может быть не так? |
Автор: Gordon 6.3.2008, 19:07 |
Спасибо всем за ответы!!! Вроде разобрался... ![]() |
Автор: PPS05 8.3.2008, 17:37 |
Неправда ![]() |
Автор: olmmen 11.3.2008, 18:30 |
Здравствуйте. Конкретно для этого примера x^7 + 2x^6 + 6X^5 + 3X^4 + 7x^3 + 5x + 4 На сколько я могу судить, это выражение ( x * (x * (x * (x * (x * (x * (x) + 2) + 6) + 3) + 7) + 5) + 4 ) не верно. Небольшая корректировка - чтобы добиться 7x^3 +5x следует дописать так x * (x * x * (x * (x * (x * (x + 2) + 6) + 3) + 7) + 5) + 4 либо вот так (что по сути одно и тоже, но 2 вариант предпочтительнее ибо не нарушает структуру выражения) x * (x * ( x * (x * (x * (x * (x + 2) + 6) + 3) + 7) + 0) + 5) + 4 удачи ![]() |
Автор: Objegog 7.9.2022, 07:14 |
Модератор: Сообщение скрыто. |
Автор: hipAppops 10.9.2022, 05:04 |
Модератор: Сообщение скрыто. |