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

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

問題

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

Nが奇数であれば、次の手順に従うとN次の魔方陣を作成できることが知られている。
● まず、図5(a)に示すように、一番下の行の中央に1を記入する。
● 2以降の数zについては、基本的に、その前にz−1を記入したマスの右下のマスに記入する。
○ ただし、右下のマスが表の外側になるとき、下にはみ出る場合は一番上の行に、右にはみ出る場合は一番左の列に回り込む。右にも下にもはみ出る場合は、第0列第0行に回り込む。
○ 記入しようとするマスにすでに数が記入されていた場合は、z−1を記入したマスの一つ上のマスに記入する。
この手順を用いて3次の魔方陣を作成する。2を記入するときに下にはみ出るので、一番上の行に回り込む(図5(b))。これは9を記入するときも同様である。また、3を記入するときに右にはみ出るので、一番左の列に回り込む(図5(c))。これは8を記入するときも同様である。さらに、4を記入するときに3の右下のマスが埋まっているので、3の上のマスに記入する(図5(d))。なお、7を記入するとき、6の右下のマスは、右にも下にもはみ出るので、第0列第0行に回り込むが、すでに4が記入されているので、6がある第2列第2行の上のマスに記入する。完成形が図5(e)である。

この作成方法を手続きとしたものが図6である。配列Mahouに、作成する魔方陣のマスの値を格納していく。Mahou[x,y]の値が0のときは、そのマスは未記入であることを表している。最初に記入するマスの場所をNを用いて表すと、第( カ )列、第( キ )行となり、(03)行目で格納している。なお、a%bは、aをbで割った余りを求める演算である。
この手続きを実行すると、(06)行目は( ク )回実行される。

図6 3次の魔法陣を作成する手続き

(01)配列Mahouのすべての要素に0を代入する
(02)N←3
(03)x←( カ ),y←( キ ),Mahou[x,y]←1
(04)zを2からN✕Nまで1ずつ増やしながら,
(05)│ もしMahou[(x+1)%N,(y+1)%N]=0ならば
(06)│ │  x←( ケ ),y←( コ )
(07)│ を実行し,そうでなければ
(08)│ │( サ )
(09)│ を実行する
(10)│ Mahou[x,y]←z
(11)を繰り返す

( カ )にあてはまるものを1つ選べ。
問題文の画像
  • 0
  • N
  • N−1
  • N+1
  • (N−1)÷2
  • (N−1)%2

正解!素晴らしいです

残念...

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

01

● まず、図5(a)に示すように、一番下の行の中央に1を記入する。

 

最初に記入するマスの場所をNを用いて表すと、第( カ )列、第( キ )行となり、(03)行目で格納している。

 

一番下の行の中央は、Mahou[1,2]です。
このマスの場所をNを用いて表します。
 

選択肢1. 0


Nが用いられていませんし、x=1です。

選択肢2. N


N=3です。

選択肢3. N−1


N1=2です。

選択肢4. N+1


N+1=4です。

選択肢5. (N−1)÷2


(N−1)÷2=1です。

選択肢6. (N−1)%2


(N−1)%2=0です。

参考になった数0

02

この問題は、魔方陣作成の最初に「1」を記入するマスの列番号(カ)を求めます。アルゴリズムの説明に「一番下の行の中央に1を記入する」とあります。0-based indexingでN=3の場合、列は0・1・2で中央列は1です。一般化すると「中央列 = (N-1)÷2」(整数除算)となり、N=3では(3-1)÷2=1が得られます。したがって(カ)は(N-1)÷2です。

選択肢1. 0

0は一番左の列(第0列)を表します。「中央に記入する」という条件を満たさず、N=3では列1が中央です。正しくありません。

選択肢2. N

NはN=3の場合は3になりますが、列の添字の範囲は0〜N-1(0〜2)なので、3は範囲外です。また中央列は(N-1)÷2=1であり、Nとは異なります。正しくありません。

選択肢3. N−1

N-1はN=3の場合は2(一番右の列)になります。一番下の行の「中央」に記入する条件から中央列(N=3では1)でなければなりません。N-1は最右列を指し、正しくありません。

選択肢4. N+1

N+1はN=3の場合は4となり、列の添字の範囲(0〜2)を超えた範囲外の値です。正しくありません。

選択肢5. (N−1)÷2

(N-1)÷2は整数除算でN=3のとき(3-1)÷2=1となり、3列(第0〜2列)の中央列を正しく表します。「一番下の行の中央」という指定に合致します。正解の選択肢です。

選択肢6. (N−1)%2

(N-1)%2は(N-1)をNで割った余りを求めます。N=3のとき(3-1)%2=0となり、中央列(1列目)ではなく左端(0列目)になってしまいます。正しくありません。

まとめ

「中央」の列番号は(N-1)÷2(整数除算)で求められます。N=3なら1、N=5なら2、N=7なら3と、Nが奇数のとき常に整数になります。「一番下の行」の行番号(キ)はN-1です。(カ)と(キ)の式をセットで理解しておきましょう。

参考になった数0

03

正解は「(N-1)÷2」である。

問題文より、この作成方法を手続きとしたものが図6である。配列Mahouに、作成する魔方陣のマスの値を格納していく。Mahou[x,y]の値が0のときは、そのマスは未記入であることを表している。最初に記入するマスの場所をNを用いて表すと、第( カ )列、第( キ )行となり、(03)行目で格納している。なお、a%bは、aをbで割った余りを求める演算である。

 

とりあえず、2で割ればよいので、この時点で (N-1)÷2、 (N-1)%2のどちらかが正解になる。

上記より、「a%bは、aをbで割った余りを求める演算である。」という説明があるため、 (N-1)÷2となる。

 

したがって、(N-1)÷2が答えです。

 

 

参考になった数0