霍納法則 Horner s rule

2021-07-29 19:24:16 字數 490 閱讀 3556

霍納法則簡介

假設有n+2個實數a0,a1,…,an,和x的序列,要對多項式pn(x)= anxn+an

-1xn

-1+…+a1x+a0求值,直接方法是對每一項分別求值,並把每一項求的值累加起來,這種方法十分低效,它需要進行n+(n-1)+…+1=n(n+1)/2次乘法運算和n次加法運算。有沒有更高效的演算法呢?答案是肯定的。通過如下變換我們可以得到一種快得多的演算法,即pn(x)= anxn +an

-1xn

-1+…+a1x+a0=((…(((anx +an

-1)x+an

-2)x+ an

-3)…)x+a1)x+a0,這種求值的安排我們稱為霍納法則。

具體實現:

#include using namespace std;

int horner_rule(int arr,int n,int x)

return 0;

}

使用遞迴實現霍納法則

例如,當x 3時,計算p x 2x 4 x 3 3x 2 x 5的值。對於多項式p x 2x 4 x 3 3x 2 x 5,我們按霍納法則進行變換,有 p x 2x 4 x 3 3x 2 x 5 x 2x 3 x 2 3x 1 5 x x 2x 2 x 3 1 5 x x x 2x 1 3 1 5 ...

歸併排序 霍納規則(法則) 統計逆序對

歸併排序 算導 p20 分治法中的遞迴式是基於基本模式中的三個步驟的。如先前一樣,設t n 為乙個規模為n的問題的執行時間。如果問題的規模足夠地小,如n c c為乙個常量 則得到它的直接解的時間為常量,寫作 1 假設我們把原問題分解成a個子問題,每乙個的大小是原問題的1 b。對於合併排序,a和b都是...

霍納規則(C C ,Scheme)

霍納 horner 規則是採用最少的乘法運算策略,來求多項式 a x an xn a n 1x n 1 a1x a0 在x0處的值。該規則為 a x0 anx 0 an 1 x 0 a1 x0 a0 如果光看著式子或許會有點煩躁,不妨手動設定幾個值到式子中去來手工運算一番,這樣一來也會有些親身的理解...