共通テスト(情報) 過去問
令和6年度(2024年度)本試験
問39 (<旧課程>情報関係基礎(第3問) 問4)

このページは閲覧用ページです。
履歴を残すには、 「新しく出題する(ここをクリック)」 をご利用ください。

問題

共通テスト(情報)試験 令和6年度(2024年度)本試験 問39(<旧課程>情報関係基礎(第3問) 問4) (訂正依頼・報告はこちら)

次の文章を読み、( エ )にあてはまるものを1つ選べ。

魔方陣とは、1から順に重複しない自然数を、各列、各行、各対角線の和が等しくなるように正方形状に並べたものである。列数と行数がいずれもNである魔方陣を「N次の魔方陣」と呼ぶ。図1は「3次の魔方陣」の例である。

与えられた数の並びが魔方陣かどうかを検証する準備として、各列や各行、各対角線の和を求め、表示する手続きを作成する。数の並びは、一番左の列を第0列、一番上の行を第0行として、第x列第y行の値が2次元配列Mahou[x,y]の要素に格納された形で与えられる。N次の魔方陣では、配列の添字の範囲は0からN−1までとなる。図1の場合、1が記入されているマスは第1列第2行なので、Mahou[1,2]と表せる。
第0行の和を求めるには、Mahou[0,0]、Mahou[1,0]、Mahou[2,0]を足し合わせる。同様に、第1行の和を求めるには、Mahou[( ア ),1]、Mahou[1,( イ )]、Mahou[2,( イ )]を足し合わせる。各行の和を求めて表示する手続きが図2である。変数Nには魔方陣の次数を格納する。各行の和は変数waを使用して計算され、行ごとに表示される。

図2 配列Mahouの各行の和を求めて表示する手続き

(01)N←3
(02)gyouを0からN−1まで1ずつ増やしながら,
(03)│  wa←0
(04)│ retuを0からN−1まで1ずつ増やしながら,
(05)│  │ wa←wa+( ウ )
(06)│ を繰り返す
(07)│ waを表示する
(08)を繰り返す

また、各列の和を計算するには、図2の手続きのうち(02)行目と(04)行目の変数gyouと変数retuを入れ替える。
問題文の画像
  • Mahou[i,i]
  • Mahou[i+1,i+1]
  • Mahou[N−i,i]
  • Mahou[N+i,i+1]
  • Mahou[N−1−i,i]
  • Mahou[N−1−i,i+1]

正解!素晴らしいです

残念...

この過去問の解説 (3件)

01

変数waには、左上から右下への対角方向↘の和を格納します。
( エ )には、
Mahou[0,0]
Mahou[1,1]
Mahou[2,2]
の値を入れます。

選択肢1. Mahou[i,i]


Mahou[0,0]
Mahou[1,1]
Mahou[2,2]
となり、各マスの値を正しく取り出すことができます。

選択肢2. Mahou[i+1,i+1]


Mahou[1,1]
Mahou[2,2]
Mahou[3,3]
となり、各マスの値を正しく取り出すことができません。

選択肢3. Mahou[N−i,i]


Mahou[3,0]
Mahou[2,1]
Mahou[1,2]
となり、各マスの値を正しく取り出すことができません。

選択肢4. Mahou[N+i,i+1]


Mahou[3,1]
Mahou[4,2]
Mahou[5,3]
となり、各マスの値を正しく取り出すことができません。

選択肢5. Mahou[N−1−i,i]


Mahou[2,0]
Mahou[1,1]
Mahou[0,2]
となり、各マスの値を正しく取り出すことができません。

選択肢6. Mahou[N−1−i,i+1]


Mahou[2,1]
Mahou[1,2]
Mahou[0,3]
となり、各マスの値を正しく取り出すことができません。

参考になった数0

02

この問題は、左上から右下に向かう対角線(↘方向)の各要素を求める式(エ)を考えます。ループ変数iが0からN-1まで変化するとき、↘対角線の各セルは「第i列・第i行」となります。配列表記Mahou[列,行]で表すとMahou[i,i]です。i=0のときMahou[0,0](左上)、i=1のときMahou[1,1](中央)、i=2のときMahou[2,2](右下)となり、対角線上の全要素を正しく参照できます。

選択肢1. Mahou[i,i]

Mahou[i,i]は変数iを使って「第i列・第i行」を参照します。i=0,1,2と変化することで、対角線上の要素(Mahou[0,0]→Mahou[1,1]→Mahou[2,2])を順に参照でき、左上から右下への対角線の和が求まります。正解の選択肢です。

選択肢2. Mahou[i+1,i+1]

Mahou[i+1,i+1]は「第i+1列・第i+1行」を参照します。i=0のときMahou[1,1](中央)から始まり、i=2のときMahou[3,3]となり範囲外です。また左上のMahou[0,0]が参照されず、正しい対角線の和が求まりません。正しくありません。

選択肢3. Mahou[N−i,i]

Mahou[N-i,i]はi=0のときMahou[3,0](N=3の場合)となり、添字3は範囲外(0〜2)です。存在しないセルへの参照となります。正しくありません。

選択肢4. Mahou[N+i,i+1]

Mahou[N+i,i+1]はN=3,i=0のときMahou[3,1]となり、列の添字3が範囲外です。また行の添字がi+1から始まるため第0行が参照されません。正しくありません。

選択肢5. Mahou[N−1−i,i]

Mahou[N-1-i,i]はi=0のときMahou[2,0](右上)、i=1のときMahou[1,1](中央)、i=2のときMahou[0,2](左下)となります。これは右上から左下に向かう対角線(↙方向)の要素です。今回の問題は↘方向の対角線を求めているため、正しくありません。

選択肢6. Mahou[N−1−i,i+1]

Mahou[N-1-i,i+1]はi=0のときMahou[2,1]となり、対角線上の要素を参照していません。また行の添字がi+1から始まるため第0行も参照されません。正しくありません。

まとめ

↘対角線は「行番号と列番号が等しいセル」の並びです。ループ変数iを共通の添字としてMahou[i,i]とすれば、i=0,1,...,N-1と変化させるだけで対角線上の全要素を参照できます。一方、↙対角線はMahou[N-1-i,i]となるので、2種類の対角線の式の違いも合わせて覚えておきましょう。

参考になった数0

03

答えは「Mahou[i,i]」です。

 

【問題文の情報】

(01)N←3
(02)wa←0
(03)iを0からN−1まで1ずつ増やしながら,   ←iを0から2まで
(04)│ wa←wa+( エ )         
(05)を繰り返す  
(06)waを表示する

 

図3のように、左上から右下への対角方向↘️の和を求める手続きには、Mahou[0,0]、Mahou[1,1]、Mahou[2,2]なので、Mahou[x,y]のx,yはどちらも同じのを入れれば良い。

したがって、選択肢よりMahou[i,i]が答えです。


 

参考になった数0