MAO#忘備録1
MAO
Markov Algorithm Onlineの略です
Twitterとかでよく見かけるマルコフアルゴリズムってやつですね(多分)
mao.snuke.org
↑ここです。
Markov Algorithmとは
ここで使えるルールの種類は2つです(楽だね!)
X:Y…Xを見つけたらYに変える X::Y…Xを見つけたらYに変えてプログラムを終了するまた、複数のルールを作った場合、上のほうから優先されて実行されていきます。
rule1 rule2 rule3という風にしたとき、
while(true){ if(rule1){変換} else if(rule2){変換} else if(rule3){変換} else{break;} }といった感じになっていきます
問題を解いていく
0001
Hello,をWorld!に変換します
Hello,:World!
です。どっちのルールを使っても大丈夫です。
0002
sを文字列から消します。
どちらのルールもX,Yに空文字列を指定しても大丈夫です。
s:
これでOKです。sがなくなるまで繰り返します。
0003
先頭にsを付けます。
Xに空文字列を指定すると、先頭にYを追加します。
今回は、1度だけ実行をしたいのでルール2を使用します。
::s
0004
じゃんけんです。変えるのは一度だけ
R::P S::R P::S
0005
iの間にwを入れる。
i:iw
とすると、iwiwiwiwiwのように最後に一つできてしまい、さらにまだiがあるので、無限に繰り返してしまいます。(実際にはiwwwwww…となる)
結論から言うと
ii:iwi
です。
MAOはかなりの閃きげーなので難しいですね…