スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ねりねり練り歩く

こんばんは、おしょうです。

皆さんは意識していただろうか?かつて私たちの前に立ちはだかったセンター試験、その数学ⅡBの問題が選択式であったことを。

第一問、第二問の50点分は全て必答であり、避けて通ることはできなかった。

一方の第三から六問の数列、ベクトル、統計、数値計算とコンピュータでは、計四題から二題50点分をもぎとる取捨選択の自由が与えられていた。

しかしながら私たちは選択肢として考慮するまでもなく数列とベクトルの二問を選ばされてきた。なぜか?後者二問は高校の範囲では必修ではないからだ。

東進ハイスクールのセンター解答速報WEBページを見たところ、前半四問には詳しい解説が載っていたが、後者二問には全く触れていなかった。

なればこそ私がその一問"数値計算とコンピュータ"について解説しよう。情報科学者の威信にかけて。


※統計は他の方を参考にしてください

※筑波大学は基本的にセンター試験で"数値計算とコンピュータ"を利用することはできません


以下に問題を添付する。なお参考URLは後述する。

sugaku-2b_601.gif

sugaku-2b_602.gif

sugaku-2b_603.gif

sugaku-2b_604.gif



見ての通り問題は前半と後半に分かれている。まずは前半のプログラム1を見てみよう。

与えられて二つの自然数M、Nについて、Mから始まるN個の連続する自然数の和が8で割り切れるかどうかを判定するプログラムだ。

俯瞰すると、130行目から150行目にFOR文が一つ、160行目から190行目にIF文が一つある。

全体で12行程度の短めのプログラムのようだ。


さて、100,110行目のINPUT PROMPT文は、


INPUT PROMPT "文字列" : 変数

(文字列)を出力し、キーボードから入力された値を(変数)に代入する。

を意味する。

つまり100行目はウィンドウ上に「M=」と表示し、その直後に入力された値を変数Mに代入する。

110行目も同様である。


120行目、空欄アに行き当たる。31ページを見てほしい。空欄アに当てはまるものはどれか。

選択肢を見ると、◎~③は新しい変数Xを用意してある値を代入するもの、④、⑤は変数Nにある値を代入するもののようだ。

ここで変数Nになにか他の値を代入するわけにはいかない。「Mから始まるN個の連続する自然数」を求めるために必要だからだ。

これで選択肢は◎~③に絞られる。

このプログラムにおいて変数は変数M、N、Xの三つが登場する。変数M、Nの役割は前述のとおりである。では変数Xには何が代入されるのか。そう、問題文中の「Mから始まるN個の連続する自然数の積」である。

これを頭においたうえでプログラムを見てほしい。変数Xが登場するのは140行目、FOR文中だ。FOR文とは


FOR 変数名 = 初めの値 TO 終わりの値



NEXT 変数名

FOR文とNEXT文の間の命令を繰り返します。
ループが1周するたびに、1だけ(変数)の値が増え、(変数) >(終わりの値)となったら繰り返しが終了します。

を意味する。


ここで、FOR文の一度目のループでどのように動作するべきか考える。

一度目のループでは変数Xに「Mから始まる1個の連続する自然数の積」、つまり「M」が代入されるのが妥当である。

140行目を見ると、変数Xを用意(LET)し、XにX*(M+I)が代入されている。IはFORループのカウンタである。

I=0の時、140行目は「X = X * M」となる。初期値Xの設定如何によって一度ループが回った後の値が決定される。

◎~③の場合を考えると、

◎…X=0のとき、ループが回った後のX=0

①…X=1のとき、ループが回った後のX=M

②…X=Mのとき、ループが回った後のX=M^2

③…X=M+N-1のとき、ループが回った後のX=M*(M+N-1)

変数XにMが代入されているのは①であるため、空欄アに当てはまるのは①である。


空欄イについて、FOR文の繰り返しがどのタイミングで終了すべきなのかを考える。

この場合、具体的な数M、Nを置いてみると分かりやすい。たとえばM=5、N=1とすると、「5から始まる1個の連続する自然数」を求める。これは5が変数Xに代入されれば終了される。

ある値をXに代入するためには、空欄アの場合と同様ループが一度回ればいいため、空欄イにはM=5、N=1の時に0となる式が答えとなる。これを満たすものは②だけである。


空欄ウについて、IF文の条件式を求める問題のようだ。IF文とは、


IF 条件 THEN 処理

(条件)が真ならば(処理)を行う。
(条件)が偽ならば次の行へ進む。

を意味する。

170行目、処理は「Mから始まる1個の連続する自然数の積」が8で割り切れたときのものである。

つまり「変数Xが8で割り切れる」という条件式を選べばよい。

結論から言うと、その条件式を表しているのは④である。

④を移項すると「X = INT(X/8)*8」となる。問題分にある通り、INT(X/8)はX/8を超えない最大の整数を表す。

ここでXが8の倍数、例えば24のとき、

INT(24/8)*8
=INT(3)*8
=3*8
=24

となり、「24 = INT(24/8)*8」は成立する。

一方Xが8の倍数でない場合、例えば20のとき、

INT(20/8)*8
=INT(2.5)*8
=2*8
=16

となり、「20 ≠ INT(20/8)*8」である。

以上より空欄イは④となる。


今回はここまで。やる気があったら次回に続きます。

参考URL
東進ハイスクール 大学入試センター試験
http://www.toshin.com/center/index.html

WEBで学ぶセンター試験数学
http://fullbasic.web.fc2.com/
スポンサーサイト
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。