大学入学共通テスト(情報) 過去問
令和5年度(2023年度)追・再試験
問39 (<旧課程>情報関係基礎(第3問) 問8)
問題文
ある個別指導塾では、午後の時間帯を、第1時限から第5時限までの五つの時限に分けて講義を開講している。受講生は時限を指定して、指導を受ける。
時限ごとに受講生数をまとめたところ、第1時限から順に10、8、19、14、7(人)となった。この個別指導塾では、一対一での指導を行っている。そのため、講義を開講するには、この受講生数と同じ人数の講師を各時限に割り当てる必要がある。
講師は、複数の時限の講義を連続して担当することがある。そこで、塾の講師割り当て担当者は、講師の人数を担当開始時限・終了時限ごとにまとめた担当表を作成することにした。
はじめに、各講師が一つの時限のみを担当する場合を考え、表3の担当表を作成した。これは、表の開始時限と終了時限が等しい要素(以下、対角要素と呼ぶ。)に、各時限の受講生数と同じ講師人数を記したものである。表の合計値が58であることから、その日に出勤して講義を担当する講師の人数が58人であることがわかる。なお、以下では担当表の「開始時限k,終了時限s」の要素を【k,s】と表記する。
ここでは3時限以上連続で担当する場合について考えていく。
例えば、第2時限から第4時限まで3時限連続で担当する講師をn人設定する場合、【2,4】にnを記したうえで、表3の網掛けで示した人数8、19、14をnずつ減らすことになる。
ここで、【2,4】に設定できる人数の上限について考える。【2,4】にnを設定するには、網掛けで示した人数をnずつ減らす必要があるが、担当表には負の人数は記せない。そのため、【2,4】に設定できる人数の上限は、表3の網掛けで示した「該当する対角要素」の最小値である8となる。
以下、【k,s】に設定できる人数の上限を【k,s】に記し、担当表を書き換える操作を【k,s】に着目した集約と呼ぶ。表3に対して、【2,4】に着目した集約を行った後の担当表は表4になる。
【k,s】に着目した集約を行う手続きを作成していくうえでは、まず【k,s】に設定できる人数の上限を求める必要がある。そこで、ある時限帯(開始時限~終了時限)に対応する「該当する対角要素」の最小値を求める手続き(図2)を作成した。この手続きでは、開始時限をhajime、終了時限をowariに格納して時限帯を指定すると、2次元配列Hyouを参照し、最小値をsaisyouに格納する。なお、最小値を求めるうえでは、まずHyouの対角要素のhajime番目に格納された値をsaisyouの初期値としている。その後、対角要素のowari番目までに格納された値について、順番にsaisyouと比較している。
表3の初期状態の担当表の人数が2次元配列Hyouに格納されている状態で、図2の手続きを実行し、開始時限に1、終了時限に5を入力したとき、(06)行目の処理は( サ )回実行される。
( ク )にあてはまるものを1つ選べ。
このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。
問題
大学入学共通テスト(情報)試験 令和5年度(2023年度)追・再試験 問39(<旧課程>情報関係基礎(第3問) 問8) (訂正依頼・報告はこちら)
ある個別指導塾では、午後の時間帯を、第1時限から第5時限までの五つの時限に分けて講義を開講している。受講生は時限を指定して、指導を受ける。
時限ごとに受講生数をまとめたところ、第1時限から順に10、8、19、14、7(人)となった。この個別指導塾では、一対一での指導を行っている。そのため、講義を開講するには、この受講生数と同じ人数の講師を各時限に割り当てる必要がある。
講師は、複数の時限の講義を連続して担当することがある。そこで、塾の講師割り当て担当者は、講師の人数を担当開始時限・終了時限ごとにまとめた担当表を作成することにした。
はじめに、各講師が一つの時限のみを担当する場合を考え、表3の担当表を作成した。これは、表の開始時限と終了時限が等しい要素(以下、対角要素と呼ぶ。)に、各時限の受講生数と同じ講師人数を記したものである。表の合計値が58であることから、その日に出勤して講義を担当する講師の人数が58人であることがわかる。なお、以下では担当表の「開始時限k,終了時限s」の要素を【k,s】と表記する。
ここでは3時限以上連続で担当する場合について考えていく。
例えば、第2時限から第4時限まで3時限連続で担当する講師をn人設定する場合、【2,4】にnを記したうえで、表3の網掛けで示した人数8、19、14をnずつ減らすことになる。
ここで、【2,4】に設定できる人数の上限について考える。【2,4】にnを設定するには、網掛けで示した人数をnずつ減らす必要があるが、担当表には負の人数は記せない。そのため、【2,4】に設定できる人数の上限は、表3の網掛けで示した「該当する対角要素」の最小値である8となる。
以下、【k,s】に設定できる人数の上限を【k,s】に記し、担当表を書き換える操作を【k,s】に着目した集約と呼ぶ。表3に対して、【2,4】に着目した集約を行った後の担当表は表4になる。
【k,s】に着目した集約を行う手続きを作成していくうえでは、まず【k,s】に設定できる人数の上限を求める必要がある。そこで、ある時限帯(開始時限~終了時限)に対応する「該当する対角要素」の最小値を求める手続き(図2)を作成した。この手続きでは、開始時限をhajime、終了時限をowariに格納して時限帯を指定すると、2次元配列Hyouを参照し、最小値をsaisyouに格納する。なお、最小値を求めるうえでは、まずHyouの対角要素のhajime番目に格納された値をsaisyouの初期値としている。その後、対角要素のowari番目までに格納された値について、順番にsaisyouと比較している。
表3の初期状態の担当表の人数が2次元配列Hyouに格納されている状態で、図2の手続きを実行し、開始時限に1、終了時限に5を入力したとき、(06)行目の処理は( サ )回実行される。
( ク )にあてはまるものを1つ選べ。
- 0
- hajime
- owari
- saisyou
- i
- Hyou[hajime,hajime]
- Hyou[hajime,owari]
- Hyou[owari,owari]
- Hyou[hajime,i]
- Hyou[i,i]
- Hyou[i,owari]
正解!素晴らしいです
残念...
この過去問の解説 (1件)
01
(03)行目では、Hyou[hajime,hajime]に格納されている値を変数saisyouの初期値とします。
そのうえで(04)〜(08)行目では、開始時限の次の時限を担当する講師の人数と、変数saisyouの値とを比較して、次の時限の講師数の方が少なければsaisyouの値を書き換えてから、さらに次の時限の講師数と比較する、という処理を繰り返しています。
その中でこの問いは、(04)〜(08)の繰り返し処理のうち、(05)行目の「もし〜ならば」という条件判定の内容を読み解く問題です。
(05)行目の条件判定では、便宜上の最小値である変数saisyouと、次の時限に講義を担当する講師数とを比較します。
条件判定には不等号「>」がありますので、空欄「ク」または空欄「ケ」のどちらかに変数saisyouが入って、
仮定A saisyouの方が空欄「ケ」より大きければ、(06)行目を実行する
仮定B 空欄「ク」の方がsaisyouより大きければ、(06)行目を実行する
のいずれかになると予想されます。
ですが(06)行目は変数saisyouに新しい値(新しい最小値)を入れる処理ですので、空欄「ク」の値の方が大きい、つまり変数saisyouが便宜上の最小値のままであるのに、最小値を書き換えるという仮定Bは、矛盾しています。
ですので仮定A、つまり空欄「ク」にsaisyouを入れるのが正しい、ということです。
参考になった数0
この解説の修正を提案する
前の問題(問38)へ
令和5年度(2023年度)追・再試験 問題一覧
次の問題(問40)へ