f(x) = a0xn + a1xn-1 + a2xn-2 + ... + an-1x + an = ((...(( a0x + a1 )x + a2)x + ...)x + an-1)x + an掛け算の回数
式 | 回数(乗算) | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
[1] |
|
|
|||||||||||
[2] |
|
|
|||||||||||
[3] |
|
|
式 | 掛け算の回数 |
---|---|
an | 0 |
an-1x | 1 |
an-2x2=an-2x× x | 2 |
an-3x3=an-3x× x× x | 3 |
... | ... |
akxn-k=ak× x × ... × x | k |
y←a0xn | y=a0xn |
y←y+a1xn-1 | y=a0xn+a1xn-1 |
y←y+a2xn-2 | y=a0xn+a1xn-1 +a2xn-2 |
... | ... |
y←y+an-1x | y=a0xn+a1xn-1 +a2xn-2+... +an-1x |
y←y+an | y=a0xn+a1xn-1 +a2xn-2+... +an-1x +an |
y=0 | ||||
k=0 | ||||
|
t←x, y←an+an-1*t | t=x, y=an+an-1x |
t←t*x, y←y+an-2*t | t=x2, y=an+an-1x+an-2x2 |
t←t*x, y←y+an-3*t | t=x3, y=an+an-1x+an-2x2 +an-3x3 |
... | ... |
t←t*x, y←y+a0*t | t=xn, y=an+an-1x +an-2x2 +an-3x3 +... +a0xn |
t=x | |||||
y=an+an-1*t | |||||
k=n-1 | |||||
|
y←a0 | y=a0 |
y←y*x+a1 | y=(a0)*y+a1 =a0y+a1 |
y←y*x+a2 | y=(a0x+a1)y+a2 =a0x2+a1x+a2 |
... | ... |
y←y*x+an-1 | y=(a0xn-2+a1xn-3
+...+an-2)*x+an-1 =a0xn-1 +a1xn-2 +a2xn-3 +... +an-2x+an-1 |
y←y*x+an | y=(a0xn-1+a1xn-2
+...+an-1)*x+an =a0xn +a1xn-1 +a2xn-2 +... +an-2x2 +an-1x+an |
|
y=a[0]; k=1; while(k<=n) { y=y*x+a[k]; k=k+1; } |
|||||||
|
y=a[0]; for(k=1; k<=n; k++) y=y*x+a[k]; |
プログラム例
ただし、次数n、係数ak, (k=0,1,2,...,n) および x の 値はキーボード(標準入力装置)より読み込む。
|
|