型Typeのn * m (n != m)の行列を表している連続メモリ領域による配列matrixがあり、matrixを転置行列matrix' in Type^(m * n)にするのに
一時的にType[n * m]のサイズの配列を使わずに処理をしたいのですが、
matrix[0 + n * 1]にt = 1 + 0 * m, matrix[t]の値を入れ、今度はmatrix[t]にu = (t / n) + (t % n), matrix[u]をに入れ、更にmatrix[u]にv = (u / m) + (u % m), matirx[v]を入れ...
といった風に続々と処理をn * m - 2回続ける方法を思いつきました。しかし、これで正常に転置行列に変換できるかどうかの裏付けがうまくいきません。
証明には剰余式などが絡んでくるのですが、どうやればいいんでしょうか?