
三人でじゃんけんをするプログラムを作るために
法則性を探しています。
グーを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人のじゃんけんの
結果を示すプログラムを導く方法はあるかもしないので
もしご存知でしたらご教授お願いします。
No.3ベストアンサー
- 回答日時:
アルゴリズム系の問題は苦手だけど回答に挑戦。
じゃんけんする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ドキドキ♪
ご返信遅れて申し訳ありませんでした。
大変参考になりました。
一人勝ちの場合と二人勝ちの場合に分けるという
発想はありませんでした。

No.4
- 回答日時:
勝ちの定義と負けの定義はどうなってますか?
001が勝ちとなってますが、1(チョキ)の一人負けにもとれます。
002が負けとなってますが、2(パー)の一人勝ちにもとれます。
No.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人のじゃんけんなら、このことを利用してより簡単に判断する方法がありそうですね。
あとは、勝ちのパターンと負けのパターンとが鏡合わせになっていることを何らかの形で利用することが出来たら面白そうです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 至急!研究の統計について 6 2023/07/12 00:38
- 数学 『4色問題③』 2 2022/11/14 00:31
- 数学 時々、回答者の見識に疑念を抱いてしまうんです。私だって本当は皆様のことを疑いたくはありません。しかし 2 2022/11/27 12:23
- 数学 高校数学の質問です。 問:5人でじゃんけんをする時、あいことなる確率を求めよ。 という問題について、 4 2022/04/04 13:45
- ゲーム 皆さん「グラニー」というゲームをご存知ですか?最近そのゲームの3が出ましたが、私はちょっと前から1を 2 2022/08/06 10:34
- 数学 コインを投げて特定のパターンが出現する確率 5 2022/07/31 09:06
- 統計学 サイコロの確率問題。なぜ罠にはまってしまうのか? 10 2023/08/26 13:49
- アニメ アニメ製作が形成してきたパターンや方式と今後について 2 2023/08/11 03:49
- 仕事術・業務効率化 効率的な勉強方法(分野問わず)を教えてください 1 2023/08/16 01:33
- いじめ・人間関係 テストの点で勝手に勝負してくる友達について 1 2022/10/25 21:24
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
完全一致の検索
-
DataGridViewでyyyy/MM/dd
-
コンボボックスに日付を表示する
-
ノートパソコン タスクバー 日付。
-
該当の日付以外を消去するプロ...
-
ユーザーフォームのラベルに日...
-
VB.net 登録されている日付の連...
-
JSPからYYYYMMDDで日付入力する
-
【VBA】土日をスキップして日付...
-
Eclipseの対応する括弧の強調表...
-
1970年1月1日からの現在時間...
-
エクセルのVBAで日付を検索し転...
-
日別集計(その2)
-
システム日付とは?
-
「eclipseで作るカレンダー(ス...
-
ExcelVBAでSQLサーバの日付時刻...
-
3人のじゃんけんのプログラム
-
ミリ秒の取得の仕方について
-
EXCEL VBA マクロ 日付
-
VB6.0 のformat関数について
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseの対応する括弧の強調表...
-
人をはめた人は 自分に返ってく...
-
DataGridViewでyyyy/MM/dd
-
エクセルのVBAで日付を検索し転...
-
ユーザーフォームのラベルに日...
-
VisualBasic6.0のFormat関数で...
-
コンボボックスに日付を表示する
-
テキストボックスにカレンダー...
-
1本あたり○円と表示する時どの...
-
指定した日付が、その月の第何...
-
VBAで当月の1日を表示するには...
-
VBA 日付・時刻の判別 時刻を認...
-
今日より前の書き方 マクロ
-
テキストボックスに今日の日付...
-
システム日付とは?
-
DateTimePickerを西暦表示にす...
-
JSPからYYYYMMDDで日付入力する
-
C++で日付判定を行いたい!!
-
ExcelVBAでSQLサーバの日付時刻...
-
VBでDate型の大小比較がうまく...
おすすめ情報