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

f:id:SaSaKi:20200513161547g:plain です。
MAOはかなりの閃きげーなので難しいですね…