AOBA's Information Processing Education
1998/07/12
注意1:このページは、回線を切断した後でゆっくりご覧になってください(テキストを印刷する場合は、その取り扱いに注意してください)。
注意2:背景が白地の画面を長時間見つめていると頭が痛くなってしまいますので、ここは背景をグレーにしています。
「平成7年第2種 春期 午後 問2」 「ブラウザのフォントがゴシック体の方へ」
今週の問題は、明朝体にした方がいいです(x(エックス)と×(掛ける)の区別がつきにくい)問2 次の流れ図の説明及び流れ図を読んで、設問1,2に答えよ。
[流れ図の説明]
多項式の計算を、少ない乗算回数で行えるよう工夫した流れ図である。
多項式P(x)=anxn+an-1xn-1+...+a1x+a0を、
P(x)=(((anx+an-1)x+an-2)x+...+a1)x+a0
のように変形し、計算を行う。
![]()
設問1 流れ図中の( )に入れる正しい答えを、解答群の中から選べ。
解答群
ア 0 → P イ n → P ウ n−1 → P エ a0 → P オ an → P カ an-1 → P 設問2 次の記述中の( )に入れる正しい答えを、解答群の中から選べ。
P(x)=7x3+5x2+3x+1としたとき、式のとおりに計算するようにした場合の演算回数は( b )、本問の流れ図の方法で計算した場合の演算回数は( c )である。
注 ”式のとおりに計算する”とは次の方式を意味する。
- 各項を独立に計算し結果を加算する。
- 各項のべき乗の計算はxを単純に複数回掛け合わせる。
- プログラム等で機械的に処理する場合、処理方式によって発生する×1(1を掛ける),+0(0を加える)は、回数には数えない。
解答群
ア 乗算3回,加算3回 イ 乗算3回,加算4回 ウ 乗算4回,加算3回 エ 乗算4回,加算4回 オ 乗算6回,加算3回 カ 乗算6回,加算4回 キ 乗算9回,加算3回 ク 乗算9回,加算4回
解説 流れ図が短い問題はうれしいですね(簡単かどうかは別にして...これは簡単です)。
流れ図で得られる最終的な結果も非常に明確で、変数Pに多項式の計算結果を求めるだけです。
早速解説に移りましょう。問題文の多項式を例にとると、元の式
P(x)=7x3+5x2+3x+1を、
P(x)=((7x+5)x+3)x+1
と変形し、変形後の式の演算がそのまま流れ図の処理になっています。
aについて
変形後の多項式
P(x)=(((anx+an-1)x+an-2)x+...+a1)x+a0で一番最初に計算するのは、
anx+an-1......@ です。
これが、流れ図におけるループ1回目の
”P × x + ai”に相当します(iはn−1が初期値であることに注意)。
空欄aで変数Pの初期設定を行いますので、上記Pの部分が@式でどれに該当するかを考えれば、おのずと解答を導けます。一目瞭然anですね。bについて
たとえバカと言われようとも、この手の問題は実際に書いて確かめるべきです。いいかげんに解答すると、乗算回数,加算回数ともに多く考えてしまいがちですから(オペランドの数と勘違いしやすい)。
P(x)=7x3+5x2+3x+1
P(x)=7×x×x×x+5×x×x+3×x+1
乗算回数は”×”の数ですから6回,加算回数は”+”の数ですので3回です。cについて
P(x)=((7x+5)x+3)x+1
P(x)=((7×x+5)×x+3)×x+1
乗算回数は”×”の数ですから3回,加算回数は”+”の数ですので3回です。ここで、多項式の各係数anが、すべて1の特殊なケースを考えてみます。つまり、
P(x)=xn+xn-1+...x1+1 です。例えば(n=3)、P(x)=x3+x2+x1+1 を問題と同じように変形すると、
P(x)=((x+1)x+1)x+1 と変形できますが、この式をよく見ると、
P(x)=P(x−1)×x+1の関係にあることが分かります。
この関係は「再帰」でうまく表現できます。
参考までに、この流れ図を最後に示して、今週は終わりにしましょう。
![]()
ではまた来週。
解答
設問1 a−オ 設問2 b−オ c−ア