No.675
コマンドを行列で表すことで, ドットちゃんの最終座標を行列の積で表すことができる.
\(i\) 番目に生まれたドットちゃんの最終座標を \((x_i, y_i)\) とし, \(i\) 番目のコマンドを表す行列を \(C_i\) とすると,
\[\begin{pmatrix} x_i \\ y_i \\ 1 \end{pmatrix} = C_{N-1}C_{N-2} \cdots C_i \begin{pmatrix} P_x \\ P_y \\ 1 \end{pmatrix}\]となる. よって, 最後のドットちゃんから順に計算していけばいい.
なお, コマンドを行列で表すと以下のようになる.
命令1: \(\begin{pmatrix} 1 & 0 & D_x \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{pmatrix}\)
命令2: \(\begin{pmatrix} 1 & 0 & 0 \\ 0 & 1 & D_y \\ 0 & 0 & 1 \end{pmatrix}\)
命令3: \(\begin{pmatrix} 0 & 1 & 0 \\ -1 & 0 & 0 \\ 0 & 0 & 1 \end{pmatrix}\)