- 締切済み
JAVAでホーナー法
こんにちは!! JAVAでホーナー法を書け!!という課題がでました… 多項式はP(x)=x^7+234x^6-1234x^5+176x^4-3456x^3+2345x^2-234x+10047 と与えられています。 これを解くホーナー法を書けということでしょうか?? 繰り返しや、配列を使って書いてみたのはいいのですが… メソッドの部分に多項式の計算を書け!!っていわれて、さっぱり分かりません。returnとか使うみたいですが…全然分かりません。 分かる方は助けて下さい解答お願いします☆☆
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- ssr-y6
- ベストアンサー率71% (5/7)
ホーナー法は、掛け算の回数を減らすように変形して高次の多項式の値を計算することです。 以下は、配列で計数を与え、指定された開始値から指定された間隔で10個の多項式の値を計算するサンプルです。 (例)java honaho 1,1,1,1 0 1 public class honaho { static int Hona(int[] k, int x) { int i, r = 0; if (k.length >= 2) for (i = 0; i < k.length - 1 ; i ++) r = (r + k[i]) * x; if (k.length >= 1) r += k[k.length - 1]; return(r); }; public static void main(String args[]) { int K[], X0, ST, x, i; try { String s[] = args[0].split(","); K = new int[s.length]; for (i = 0; i < s.length; i ++) K[i] = Integer.parseInt(s[i]); X0 = Integer.parseInt(args[1]); ST = Integer.parseInt(args[2]); } catch (Exception e) { int k[] = {1, 234, -1234, 176, -3456, 2345, -234, 10047 }; K = k; X0 = 0; ST = 1; }; for (i = 0, x = X0; i < 10; x += ST, i ++) System.out.println("f(" + Integer.toString(x) + ")=" + Integer.toString(Hona(K, x))); }; }
- tom11
- ベストアンサー率53% (134/251)
こんにちは、 ここで、聞くより、検索した方が、早いと思いますが。 http://www.ie.u-ryukyu.ac.jp/~e035735/JavaReport/report3/report-three.html 学校で出るような問題は、検索した方が、早いですよ。
お礼
tom11さん、回答ありがとうございますww 早速見てみて考えて見ます☆