3 進数を侵略しようではなイカ
この記事は Functional Ikamusume Advent Calendar jp 2010 によって侵略されたでゲソ.
2 進数の国の関数型イカ娘 *1 が 3 進数を侵略するという話をしようではなイカ.
イカの国にはメスとオスがいるでゲソ. イカのメスとオスは,胴の斑点が丸状か線状かで見分けられるから, メスは =0> ,オスは =1> と書こうではなイカ.
メスは戦闘タイプで,オスはとても弱いでゲソ. たとえば,3 進数のキャラ 0, 1, 2 ( 0 が一番弱くて 2 が一番強い) が現れたら,
- メスは強いので相手を 1 つ弱くするでゲソ ( 0 はそのまま ).
- オスはバカなので相手を 1 つ強くしてしまうでゲソ ( 2 はそのまま ).
- =0> 0 なら,0 =0> ( 0 なのでそのままではなイカ.相手は背後 (左) に回るでゲソ.)
- =0> 1 なら,0 =1> ( 1 なので 1 つ弱くして 0 にするけど,性転換してオスになるでゲソ.)
- =0> 2 なら,1 =0> ( 2 なので 1 つ弱くして 1 にするでゲソ.)
- =1> 0 なら,1 =1> ( 0 なので 1 つ強くして 2 にするでゲソ.)
- =1> 1 なら,2 =0> ( 1 なので 1 つ強くして 2 にするけど,性転換してメスになるでゲソ.)
- =1> 2 なら,2 =1> ( 2 なのでそのままではなイカ.)
何言ってるか分からなイカもしれなイカら,実際に 1102 という 3 進数を侵略してみるでゲソ.
まずメスが闘うでゲソ.これ以上メスをつイカしても 0 以外は増えなイカら,これで侵略成功でゲソ. 戦闘を終えてみたら我々は 1 0 0 1 1 0 と列んでいるでゲソ. これは 3 進数の 1102 の 2 進表記ではなイカ! イカなる 3 進数と闘っても同じことが言えるでゲソ!
=0> 1 1 0 2
上のルールに従って闘うでゲソ.
0 =1> 1 0 2
目の前の相手にダメージを与えたけど,相手が 1 なのでオスになったではなイカ.
バカなオスが闘うでゲソ.
0 2 =0> 0 2
相手を強くしてしまったではなイカ.でも相手が 1 だったのでメスになったでゲソ.
背後に回った敵は後続の仲間が闘ってくれるでゲソ.いないときはメスが出てきてくれるでゲソ.
=0> 0 2 =0> 0 2
それぞれのイカが闘うでゲソ.
0 =0> 2 0 =0> 2
0 1 =0> 0 1 =0>
1 が背後に回ってしまったのでメスをつイカ.
それぞれ闘うでゲソ.
=0> 0 1 =0> 0 1 =0>
0 =0> 1 0 =0> 1 =0>
0 0 =1> 0 0 =1> =0>
0 0 1 =1> 0 =1> =0>
せっかく全部 0 にしたのに,バカなオスが目の前の 0 を 1 にしてしまったではなイカ.
1 が背後に回ってしまったのでメスをつイカして闘いを続けるでゲソ.
=0> 0 0 1 =1> 0 =1> =0>
0 =0> 0 1 1 =1> =1> =0>
0 0 =0> 1 1 =1> =1> =0>
0 0 0 =1> 1 =1> =1> =0>
0 0 0 2 =0> =1> =1> =0>
オスが相手を 2 にしてしまったでゲソ.メスをつイカして闘うでゲソ.
=0> 0 0 0 2 =0> =1> =1> =0>
0 =0> 0 0 2 =0> =1> =1> =0>
0 0 =0> 0 2 =0> =1> =1> =0>
0 0 0 =0> 2 =0> =1> =1> =0>
0 0 0 1 =0> =0> =1> =1> =0>
1 が背後に回ってしまったのでメスをつイカ.
=0> 0 0 0 1 =0> =0> =1> =1> =0>
0 =0> 0 0 1 =0> =0> =1> =1> =0>
0 0 =0> 0 1 =0> =0> =1> =1> =0>
0 0 0 =0> 1 =0> =0> =1> =1> =0>
0 0 0 0 =1> =0> =0> =1> =1> =0>
どこが関数型なのかってのは,戦闘ルールの適用の仕方にあるでゲソ. それぞれのイカがイカなる順序で目の前の敵と闘っても同じ結果になることが分からなイカ? たとえば,先頭のイカが相手がいなくなるまで先に闘っても, 後ろのイカが先に闘っても,上の例のように同時に闘っても, 結果は同じになるのでゲソ. 評価順序によらなイカら関数型ではなイカ (むりヤリ)! m 進数の国のイカが n 進数を侵略するときも同じようにルールを作れることが既に分かっているでゲソ.
余談だけど 3 進数の後ろに X というキャラが次から次へ追加されるような戦闘だと面白いことが分かるでゲソ. 相手が X の場合,メスでは太刀打ちできないが, オスなら何故か 2 に変更させることができて,自分はメスになるでゲソ. つまり,イカのルールがつイカされることになるのではなイカ.
- =0> X なら,X =0>
- =1> X なら,2 =0>