3人のじゃんけんのプログラム

解決済みの質問

3人のじゃんけんのプログラム

三人でじゃんけんをするプログラムを作るために
法則性を探しています。

グーを0,チョキを1,パーを2とした時に
あいこであるパターンは
000,012,021,021,102,111,120,201,210,222
勝ちのパターンは
001,010,011,112,121,122,200,202,220
負けのパターンは
002,020,022,100,101,110,211,212,221
でした。(違っていたら申し訳ないです。)

ここから法則を探そうと思うととりあえず、あいこの
パターンは3つの数字を足すと0,3,6のどれかになり
3の倍数になっていることがわかりました。

ですが、勝ちと負けは法則性が見つけられません。

もしかすると、このやり方以外にも3人のじゃんけんの
結果を示すプログラムを導く方法はあるかもしないので
もしご存知でしたらご教授お願いします。

投稿日時 - 2009-11-24 00:56:25

QNo.5471359

困ってます

質問者が選んだベストアンサー

アルゴリズム系の問題は苦手だけど回答に挑戦。


じゃんけんする3人を A, B, C
グー = 0 チョキ = 1 パー = 2

とるする場合

(A + B + C) ÷ 3 のあまりが

:0の場合
 あいこ

: 1の場合
 ひとりだけ負け

 A = B なら C の負け
 B = C なら A の負け
 それ以外なら B の負け

: 2の場合
 ひとりだけ勝ち

 A = B なら C の勝ち
 B = C なら A の勝ち
 それ以外なら B の勝ち


ここから例えば A が勝ったかどうかは
((A + B + C) ÷ 3 のあまり = 1 かつ B = C でない) または ((A + B + C) ÷ 3 のあまり = 2 かつ B = C)
で判定できる。

TRUE に 1 FALSE に 0 という値が与えらるのなら
((A + B + C) ÷ 3 のあまり - 1) = (B = C)
でAの勝ちが分かる。


まちがってないかな…o(;-_-;)oドキドキ♪

投稿日時 - 2009-11-24 11:11:57

お礼

ご返信遅れて申し訳ありませんでした。
大変参考になりました。
一人勝ちの場合と二人勝ちの場合に分けるという
発想はありませんでした。

投稿日時 - 2009-11-27 01:08:02

ANo.3

2人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(3件中 1~3件目)

ANo.4

勝ちの定義と負けの定義はどうなってますか?
001が勝ちとなってますが、1(チョキ)の一人負けにもとれます。
002が負けとなってますが、2(パー)の一人勝ちにもとれます。

投稿日時 - 2009-11-25 12:34:00

お礼

記入漏れで申し訳ありませんでした。
最初の数字の人から見た勝ち負けを記入しました。
付き合っていただきありがとうございました。

投稿日時 - 2009-11-27 01:09:26

ANo.2

パターンというか…、「誰かから見た勝ち負け」が分かれば良いのですよね。
だとしたら、(既に分かっていらっしゃるとは思いますが)全員の手を順番に見ていくのが一番単純なアルゴリズムになると思いますよ。3人以上の場合にも対応できます。

別の考え方として、じゃんけんの手がループしていることを利用することが考えられますね。
(0,0,2) = (1,1,0) = (2,2,1)
上記三つはすべて同じ強弱関係を指していますので、互いに変更しても勝敗は変わりません。勝ち負けを調べたいところの手を0にするような前処理を行えば、条件判断はとても簡単になります。
(0,0,1) (0,1,1) (0,1,0)
(0,0,2) (0,2,2) (0,2,0)
これしか残りません。
3人のじゃんけんなら、このことを利用してより簡単に判断する方法がありそうですね。

あとは、勝ちのパターンと負けのパターンとが鏡合わせになっていることを何らかの形で利用することが出来たら面白そうです。

投稿日時 - 2009-11-24 08:50:17

お礼

ご回答ありがとうございました。
とりあえず、3人のじゃんけんプログラムは
作ることができました^^

投稿日時 - 2009-11-27 01:10:37

ANo.1

問題視しているものが良く分からないのですが・・・

全パターン列挙する必要はないのでは?
あいこは、0,1,2 があった場合、または全員が同じ場合
一人勝ち、二人勝ちの場合は、二人がおなじであと一人がどうなっているか
これだけでは?
もしかして If 文とか Case 文で列挙しようとしていませんか?それでも 3の3条で27通りしかありませんが。

投稿日時 - 2009-11-24 05:15:46

お礼

そうですね。
一人勝ち、二人勝ちのパターンを組み合わせることにより
アルゴリズムを組むことができました。
ご回答ありがとうございました。

投稿日時 - 2009-11-27 01:12:33

あわせてチェックしたい
  • [020-150]を020jpg 021jpg・・・と展開したい。 ...
  • ジャンケンであいこになる確立・・。 ...
  • ★奈良君★チョキチョキ ...
PR
【回答募集中】花粉にひと言、物申す![ 詳細 ]

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら