プログラム・アルゴリズム

仕事のあとちょっと話題に上って、なかなか面白そうだったのでメモ書き。

話は簡単、皆ご存知のじゃんけんに関するものである。例えば人間のプレイヤーと
コンピュータ(ランダムに手を決める)が勝負をするとして、その勝敗判定を
どのように行うか、という問題。

もっとも単純にして見た目に判りやすいのは、

「プレイヤーがグーの時『comがグー』『comがチョキ』『comがパー』」

「プレイヤーがチョキの時『comがグー』『comがチョキ』『comがパー』」

「プレイヤーがパーの時『comがグー』『comがチョキ』『comがパー』」

と、全ての場合についてIF文を書くものであろう。

だがこれではあまりに頭を使っていない印象を受けてしまうし、汎用性にも欠ける。

#参加者が増えた時に、更にIF文を増やすというのか?それは悪夢だ。

知人とこの話を論じていて、3人以上の時の汎用的な判定はそれなりの
アルゴリズムを思いついたのだが、それを2人の場合に適用すると
かえって処理が多すぎる感があった。なので、2人の時専用の簡単に処理できる
アルゴリズムはないかと考えていたのだが、なかなか良いものが浮かばなかった。

現在でもまだ考えている。