C言語関係掲示板

過去ログ

No783 ホーナー法で多項式の計算をするプログラム

[戻る] [ホームページ]
No.9739

ホーナー法
投稿者---たか(2003/10/13 21:45:15)


こんにちわ。初めまして。

ホーナー法を学校で習ったのですが、全く分かりません。
”ホーナー法で多項式の計算をするプログラムを作れ”というものです。
アルゴリズムも習ったんですけど、あまり分かりません。

for,if,while,配列くらいしか習ってないので、そこら辺の知識で解説していただけたら幸いです。お願いします。

No.9743

Re:ホーナー法
投稿者---たか(2003/10/13 23:39:00)


>for,if,while,配列くらいしか習ってないので、そこら辺の知識で解説していただけたら幸いです。お願いします。

僕と同じHNですね。某本の丸写しですがこれでご参考になれば。さすがに
そのまま写すとマズいのでちょっとだけアレンジしてあります。

f(x) = 5x^4+4x^3+3x^2+2x+1を求めます。

#include <stdio.h>

double fn(double x, double a[], int n)
{  
  double p;
  int i;

  p = a[n];
  for (i = n - 1; i >= 0; i--)
    p = p * x + a[i];
  return p;
}

int main(void)
{
  static double a[] = {1, 2, 3, 4, 5};
  double x;
 
  for (x = 1; x <= 5; x++)
    printf("fn(%.0f)= %.0f\n", x, fn(x, a, 4));

  return 0;
}