ハロウイーンをウーロンハイにする置換
https://gyazo.com/8ecf286a64ba06016f0f744e2cdd21bd
@motcho_tw: ハロウイーンをウーロンハイにする置換(1325)(46)は長さ4の巡回置換なので「ハロウイーン」「ウーロンハイ」ときた後に「ロハーイウン」「ーウハンロイ」という謎の言葉を経由してハロウイーンに戻る 2つの巡回置換の積
循環置換であれば逆行列が存在する?あんも.icon ハロウイーン: [1 2 3 4 5 6]
ウーロンハイ: [3 5 2 6 1 4]
(1325)(46): [[1, 3, 2, 5], [4, 6]]
交換されているか確認する
code:jl
mat = [0 0 0 0 1 0;
0 0 1 0 0 0;
1 0 0 0 0 0;
0 0 0 0 0 1;
0 1 0 0 0 0;
0 0 0 1 0 0]
halloween * mat
文字列を吐くようにする
横方向に書かれた文字に作用させるので、右から作用させる
code:jl
function convert_string(input_string, mat)
output_array = input_array' * mat # 置換行列を作用させる
return join(output_string)
end
# テスト
t = convert_string("ハロウイーン", mat)
t = convert_string(t, mat) # 繰り返すとハロウィーンに戻る
任意の置換から、対応する行列を生成できるようにする