一発で決まる多数決
久しぶりのawkネタ
じゃんけんで出す手を使った多数決を考えます。
それぞれ出せる手は「グー」「チョキ」「パー」のいずれかです。
このとき、一番多くの人が出した手が勝つことになります。
例えば、6人で行うときは表1のように1回で勝者が決まる場合もあれば、表2のようにいずえも決まらない場合もあります。
表1:決まる場合
グー | チョキ | パー | 結果 |
---|---|---|---|
3人 | 2人 | 1人 | グーの勝ち |
1人 | 4人 | 1人 | チョキの勝ち |
表2:決まらない場合
グー | チョキ | パー | 結果 |
---|---|---|---|
2人 | 2人 | 2人 | すべて同数のため決まらず |
3人 | 0人 | 3人 | グーとパーが同数のため決まらず |
ある人数でじゃんけんをするとき、「一度で」勝つ手が決まる組み合わせは何通りか? 例えば4人の場合は表3のパターンにより、全部で12通り
表3 4人の場合は12通り
グー | チョキ | パー | 結果 |
---|---|---|---|
0人 | 0人 | 4人 | パーの勝ち |
0人 | 1人 | 3人 | パーの勝ち |
0人 | 2人 | 2人 | 決まらず |
0人 | 3人 | 1人 | チョキの勝ち |
0人 | 4人 | 0人 | チョキの勝ち |
1人 | 0人 | 3人 | パーの勝ち |
1人 | 1人 | 2人 | パーの勝ち |
1人 | 2人 | 1人 | パーの勝ち |
1人 | 3人 | 0人 | パーの勝ち |
2人 | 0人 | 2人 | 決まらず |
2人 | 1人 | 1人 | グーの勝ち |
2人 | 2人 | 0人 | 決まらず |
3人 | 0人 | 1人 | グーの勝ち |
3人 | 1人 | 0人 | グーの勝ち |
4人 | 0人 | 0人 | グーの勝ち |
では、100人の場合、一度で勝つ手が決まるような人数の組み合わせは何通りか?
#!/usr/bin/awk -f BEGIN{ N = 100; cnt = 0; for(rock = 0;rock <= N;rock++){ # グーの人数 for(scissors = 0;scissors <= N - rock;scissors++){ # チョキの人数 paper = N - rock - scissors; # パーの人数 if(rock > scissors){ if(rock != paper){ cnt++; } }else if(rock < scissors){ if(scissors != paper){ cnt++; } }else{ if(rock < paper){ cnt++; } } } } print cnt; }
要するに、一番多い手がある場合のみカウントします。
実行してみる
awk -f q2_01.awk 5100
意外と沢山ありますね。