Mathematics
Examination
Test
Archives
【1】 大小つのサイズの正方形を灰色で塗ることで模様を描くロボットがある.ロボットの形状は一辺の長さがの正方形で,前側が太線,中心が点で表されている(図1).ロボットは全方位に移動でき,ロボットの中心を通り紙面に垂直な軸周りに回転できる.反時計回りを正の回転,時計回りを負の回転とする.小さい正方形を描く場合は図2(a)のようにロボットの右前側にある一辺の長さがの正方形の部分を塗り,大きい正方形を描く場合は図2(b)のように一辺の長さがの正方形の部分を塗る.
ロボットが方眼紙の上を移動しながら方眼紙に模様を描くとする.ロボットの中心の位置は図3のように方眼紙の横方向を軸,縦方向を軸とする次元座標系の点で表される.例えば,図3のロボットの位置はである.
ロボットを動かすために表1のつの命令が用意されている.例えば,以下の順序で命令を送ったときは図4(a)〜(f)のように動作する.図4(g)は最終的に描かれた模様である.
(a)サイズ小 |
(b)サイズ大 |
||
図1 |
図2 |
図3 |
表1
命令 | 説明 |
位置を向きを軸正の向きとする.最初に必ず実行する. | |
方向に方向に移動させる.ただし,とは整数とする. | |
度回転させる.ただし,は整数とする. | |
がのときはサイズ小,のときはサイズ大の正方形を描く. |
(a) |
(b) |
(c) |
(d) |
(e) |
(f) |
(g) 描かれた模様 |
図4
このロボットに関する以下の問いに答えよ.
問1 次の順序で命令を送ったときに描かれる模様を図4(g)にならって図示せよ.
問2 図5の模様を描くためには,どのような順序で命令を送ればよいかを,(★)にならって記述せよ.
問3 図6の模様を描く際,以下の条件(1),(2)をそれぞれ満たすには,どのような順序で命令を送ればよいかを,(★)にならって記述せよ.また,それらが条件を満たしている理由を説明せよ.
(1) ロボットに送る命令の数が最少
(2) ロボットの総移動距離が最短
図5 |
図6 |
コップ番号: |
|||||
図1
【3】 を以上の自然数とする.図1のように個すべてのコップが下向きに置いてある状態から,回で個のコップを上下反転させる操作を繰り返すことで,最終的に個すべてのコップを上向きにする作業を考える.
上向きと下向きのコップをそれぞれとに対応させることで,ある時点での個のコップの状態はまたはが個並んだ列ビット列)で表せる.例えば,図2(a)のつのコップは(b)は(c)はで表せる.
(a) | コップ番号: |
|||
ビット表現: |
(b) | コップ番号: |
|||
ビット表現: |
(c) | コップ番号: |
|||
ビット表現: |
図2
をある時点での個のコップの状態を表すビット列とする.自然数に対して,番目以外の個のコップを上下反転させる操作を,の番目以外の各位置にある数字がならばに,ならばに変える操作(ビット反転操作)に対応させる.この操作をに適用して得られるビット列をで表す.例えば,は,図2(a)のつのコップに対して番目以外のつのコップを上下反転させて図2(b)の状態となることを表す.同様に,は,図2(b)の番目以外のつのコップを上下反転させると図2(c)の状態となることを表す.また,は,番目以外のつのコップを上下反転させた後番目以外のつのコップを上下反転させることで,図2(a)の状態から図2(c)の状態となることを表す.
冒頭で述べた作業を,つを除いたビット反転操作を繰り返してすべてがのビット列からすべてがのビット列を得ることに対応させて考える.このとき,以下の問いに答えよ.
問1 つを除いたビット反転操作を繰り返してビット列からビット列を得る手順をを用いて表せ.
問2 つを除いたビット反転操作を繰り返してすべてがのビット列からすべてがのビット列が得られるとき,が満たすべき条件を述べよ.
問3 を問2の条件を満たす以上の自然数とする.このとき,つを除いたビット反転操作を繰り返すことで,すべてがのビット列からすべてがのビット列を得る手法(アルゴリズム)をを用いて述べよ.なお,つを除いたビット反転操作の適用回数を最少にすること.