センター試験: 数学IIBのプログラムについて語るスレ

このエントリーをはてなブックマークに追加
190デフォルトの名無しさん
2011年数学IIB第6問
nを2以上の自然数とし、以下の操作を考える。
 (i)nが偶数ならば、nを2で割る。
 (ii)nが奇数ならば、nを3倍して1を加える。

与えられた2以上の自然数にこの操作を行い、得られた自然数が1でなければ、
得られた自然数にこの操作を繰り返す。2以上10の5乗以下の自然数から始めると、
この操作を何回か繰り返すことで必ず1が得られることが確かめられている。
たとえば、10から始めると
 10→5→16→8→4→2→1
である。ただし、a→bは1回の操作で自然数aから自然数bが得られたことを意味する。
Nを2以上10の5乗以下の自然数とするとき、F(N)をNから始めて1が得られるまでの
上記の操作の回数と定義する。また、F(1)=0とおく。たとえば、上の例から、
F(10)=6である。

(1)F(6)=「ア」、F(11)=「イウ」である。

つづく
191デフォルトの名無しさん:2011/02/09(水) 08:42:26
(2)10の5乗以下の自然数Nについて、F(N)を求めるため、次のような「プログラム」を作った。
ただし、INT(X)はXを超えない最大の整数を表す関数である。
「プログラム」
100 INPUT N
110 LET I=N
120 LET C=0
130 IF I=1 THEN GOTO 「エ」
140 IF INT(I/2)*2=I THEN
150 「オ」
160 GOTO 190
170 END IF
180 LET I=3*I+1
190 「カ」
200 「キ」
210 PRINT "F(";N;")=";C
220 END

「エ」に当てはまるものを、次の0〜5のうちから一つ選べ。
0. 130 1. 140 2. 150 3. 190 4. 200 5. 210

「オ」、「カ」、「キ」に当てはまるものを、次の0〜8のうちから一つ選べ。
0. LET C=1 1. GOTO 130 2. GOTO 140
3. GOTO 210 4. LET C=C+1 5. LET I=I+1
6. LET I=I/2 7. NEXT N 8. LET I=2*I+1

「プログラム」を実行して、Nに24を入力すると、180行は「ク」回実行される。

つづく
192デフォルトの名無しさん:2011/02/09(水) 08:49:27
(3)Mを10の5乗以下の自然数とする。(2)で作成した「プログラム」を変更して、
M以下の自然数Nのうち、F(N)<=10となるすべてのNについて、F(N)の値を
出力するプログラムを作成する。そのために、まず、「プログラム」の100行を
次の二つの行で置き換える。
100 INPUT M
101 FOR N=1 TO M

さらに、210行を次の二つの行で置き換える。
210 IF 「ケ」 THEN PRINT "F(";N;")=";C
211 「コ」

「ケ」に当てはまるものを、次の0〜5のうちから一つ選べ。
0. INT(I/2)=I 1. C>10 2. M>=C
3. N=I 4. C<=10 5. I=N

「コ」に当てはまるものを、次の0〜5のうちから一つ選べ。
0. LET M=M+1 1. GOTO 120 2. NEXT M
3. NEXT N 4. LET C=C+1 5. NEXT I

変更後のプログラムを実行して、Mに10を入力すると、210行のPRINT文は
「サ」回実行される。