「AP過去問 令和7年度春期 午前 問2」の版間の差分
編集の要約なし |
(→回答・解説) |
||
(同じ利用者による、間の4版が非表示) | |||
62行目: | 62行目: | ||
=='''問2(問題文)'''== | =='''問2(問題文)'''== | ||
<span style="font-size: 0.9rem;"> 0≦x≦1 </span>の範囲で単調に増加する連続関数<span style="font-size: 0.9rem;">\( f(x) \)</span>が<span style="font-size: 0.9rem;">\( f(0)<0≦f(1) \)</span>を満たすときに区間内で<span style="font-size: 0.9rem;">\( f(x)=0 \)</span>である<span style="font-size: 0.9rem;"> x </span>の値を近似的に求めるアルゴリズムにおいて、(2)は何回実行されるか。 | |||
[アルゴリズム] | [アルゴリズム] | ||
(1) x_0 \leftarrow 0 、 x_1 \leftarrow 1 とする。 | (1) <span style="font-size: 0.9rem;"> x_0 \leftarrow 0 </span>、<span style="font-size: 0.9rem;"> x_1 \leftarrow 1 </span>とする。 | ||
(2) <span style="font-size: 0.9rem;"> x \leftarrow \frac{x_0+x_1}{2} </span>とする | |||
(3) <span style="font-size: 0.9rem;"> x_1 - x \lt 0.001 </span>ならば<span style="font-size: 0.9rem;"> x </span>の値を近似値として終了する。 | |||
(4) <span style="font-size: 0.9rem;"> f(x) ≧ 0 </span>ならば<span style="font-size: 0.9rem;"> x_1 \leftarrow x </span>として、そうでなければ<span style="font-size: 0.9rem;"> x_0 \leftarrow x </span>とする。 | |||
(5) (2)に戻る。 | |||
ア 10 | |||
イ 20 | |||
ウ 100 | |||
エ 1000 | |||
=='''回答・解説'''== | =='''回答・解説'''== | ||
この問題は、関数の値が0になる点を二分探索法によって近似的に求めるアルゴリズムの繰り返し回数について問うものです。アルゴリズムでは、探索区間を毎回半分にしていくため、何回繰り返せば区間の長さが0.001未満になるかを計算すれば答えが出ます。 | |||
初期状態では、区間の長さは<span style="font-size: 0.9rem;"> x_1−x_0=1−0=1 </span>です。 | |||
アルゴリズムは1回ごとに区間を半分にしていくので、n回後には区間の長さが<span style="font-size: 0.9rem;"> \frac{1}{2^n} </span>になります。 | |||
この長さが0.001未満になる必要があるため、次の不等式を解きます。 | |||
<span style="font-size: 0.9rem;"> \frac{1}{2^n} \lt 0.001 </span> | |||
両辺の逆数をとると | |||
<span style="font-size: 0.9rem;"> 2^n>1000 </span> | |||
この不等式を満たす最小のnを求めます。 | |||
<span style="font-size: 0.9rem;"> 2^{10}=1024 \gt 1000 </span> | |||
よって、<span style="font-size: 0.9rem;"> n = 10 </span>で条件を初めて満たすことになります。 | |||
したがって、(2)は'''10回'''実行されます。 | |||
したがって | |||
<span style = "background:linear-gradient(transparent 75%, #7fbfff 75%); font-weight:bold; "> | |||
ア</span> | |||
が答えです。 | |||
2025年4月23日 (水) 00:05時点における最新版
AP過去問 令和7年度春期 午前 問1前の問題へ
AP過去問 令和7年度春期 午前 問3次の問題へ
問2(問題文)
0≦x≦1 の範囲で単調に増加する連続関数 f(x) が f(0)<0≦f(1) を満たすときに区間内で f(x)=0 である x の値を近似的に求めるアルゴリズムにおいて、(2)は何回実行されるか。
[アルゴリズム]
(1) x_0 \leftarrow 0 、 x_1 \leftarrow 1 とする。
(2) x \leftarrow \frac{x_0+x_1}{2} とする
(3) x_1 - x \lt 0.001 ならば x の値を近似値として終了する。
(4) f(x) ≧ 0 ならば x_1 \leftarrow x として、そうでなければ x_0 \leftarrow x とする。
(5) (2)に戻る。
ア 10
イ 20
ウ 100
エ 1000
回答・解説
この問題は、関数の値が0になる点を二分探索法によって近似的に求めるアルゴリズムの繰り返し回数について問うものです。アルゴリズムでは、探索区間を毎回半分にしていくため、何回繰り返せば区間の長さが0.001未満になるかを計算すれば答えが出ます。
初期状態では、区間の長さは x_1−x_0=1−0=1 です。
アルゴリズムは1回ごとに区間を半分にしていくので、n回後には区間の長さが \frac{1}{2^n} になります。
この長さが0.001未満になる必要があるため、次の不等式を解きます。
\frac{1}{2^n} \lt 0.001
両辺の逆数をとると
2^n>1000
この不等式を満たす最小のnを求めます。
2^{10}=1024 \gt 1000
よって、 n = 10 で条件を初めて満たすことになります。
したがって、(2)は10回実行されます。
したがって
ア
が答えです。
AP過去問 令和7年度春期 午前 問1前の問題へ
AP過去問 令和7年度春期 午前 問3次の問題へ