配列の回転処理

正解は エ です。 図形や画像の処理でよく使われる二次元配列の回転アルゴリズムです。配列Aと配列Bの図を比較すると、 時計回りに90度回転 していることがわかります。 具体的な座標の移動を追跡すると、添字の対応を確実に判定できます。 例えば、配列Aの左上角の要素 A(0, 0) は、90度回転すると配列Bの右上角 B(0, 7) に移動します。これを $i=0, j=0$ として選択肢の右辺 $A(i,j)$ に代入し、左辺が $B(0, 7)$ になるものを探します。 ア:$B(7-0, 7-0) \rightarrow B(7, 7)$ (不一致) ウ:$B(0, 7-0) \rightarrow B(0, 7)$ (一致。しかし他の点で確認が必要) イ:$B(7-0, 0) \rightarrow B(7, 0)$ (不一致) エ:$B(0, 7-0) \rightarrow B(0, 7)$ (一致) ウかエに絞られました。ではもう1点、配列Aの左下角 A(7, 0) を追跡しましょう。これは回転後、配列Bの左上角 B(0, 0) に移動します。$i=7, j=0$ を代入します。 ウ:$B(7, 7-0) \rightarrow B(7, 7)$ (不一致) エ:$B(0, 7-7) \rightarrow B(0, 0)$ (一致) すべての座標移動を満たすのはエのみです。 A の要素 回転後の位置 ウ B(i, 7−j) エ B(j, 7−i) A(0, 0)(左上) B(0, 7)(右上) B(0, 7) ○ B(0, 7) ○ A(7, 0)(左下) B(0, 0)(左上) B(7, 7) × B(0, 0) ○

配列Aが図2の状態のとき、図1の流れ図を実行すると、配列Bが図3の状態になった。図1のaに入れる操作はどれか。ここで、配列 A, B の要素をそれぞれ A(i, j), B(i, j) とする。

問題画像
出典基本情報技術者試験 サンプル問題 科目A 問6
ア
B(7−i,7−j)←A(i,j)B(7-i, 7-j) \leftarrow A(i, j)
イ
B(7−j,i)←A(i,j)B(7-j, i) \leftarrow A(i, j)
ウ
B(i,7−j)←A(i,j)B(i, 7-j) \leftarrow A(i, j)
エ
B(j,7−i)←A(i,j)B(j, 7-i) \leftarrow A(i, j)