石头剪刀布游戏

描述

石头-剪刀-布是两个人玩的游戏。假设有两个人A和B,每个人都独立地选择石头,布或剪刀。选布的赢选石头的,选剪刀的赢选布的,选石头的赢选剪刀的,选相同的既不赢又不输。 
n个人参加,每个人与其他每个人比k轮石头-布-剪刀游戏,总共最多要赛k*n*(n-1)/2场。你的工作是计算每个人赢的平均数,这个平均数定义为W/(W+L),其中W是赢的场数,而L是输的场数。

输入

输入有多个测试用例。每个测试用例的第一行是n,k(1 ≤ n ≤ 1000 ,1 ≤ k ≤ 10000),n是参加的人数,k是每个人比赛的场数。对每场比赛,由包含四个整数的一行表示:p1,m1,p2,m2.其中1 ≤p1 ≤n,1 ≤p2 ≤n表示比赛的两人,m1,m2分别是他们出的手势(“rock”,“scissors”,或“paper”)。最后以一个0表示输入结束。 

输出

 

对每个参加者各输出一行,给出他们赢的平均场数,结果保留三位小数。如果赢的平均场数不定,则输出“-”。两测试用例间输出一空行。

 

样例输入

 

2 4
1 rock 2 paper
1 scissors 2 paper
1 rock 2 rock
2 rock 1 scissors
2 1
1 rock 2 paper
0

 

样例输出

 

0.333
0.667

0.000
1.000
 
 
 1 #include<iostream>
 2 using namespace std;
 3 
 4 int main()
 5 {
 6     int m, n, i, p1, p2,ying[10005],shu[10005],t=0;
 7     char a[10], b[10];
 8     while(cin>>m && m)
 9     {
10         cin>>n;
11         if(t)
12             printf("\n");
13         memset(ying,0,sizeof ying);
14         memset(shu,0,sizeof shu);
15         for(i = 1; i <= m*n/2; i++)
16         {
17             scanf("%d %s %d %s",&p1,a,&p2,b);
18             if(a[0]==b[0]) ;
19             else if(a[0]=='r'&&b[0]=='s' || a[0]=='s'&&b[0]=='p' ||a[0]=='p'&&b[0]=='r')
20             {
21                 ying[p1]++;
22                 shu[p2]++;
23             }
24             else 
25             {
26                 ying[p2]++;
27                 shu[p1]++;
28             }
29         }
30         for(i = 1; i <= m; i++)
31         {
32             if(ying[i]==0&&shu[i]==0)
33                 printf("-\n");
34             else
35                 printf("%.3lf\n",(1.0*ying[i])/(ying[i]+shu[i]));
36         }
37         t++;
38     }
39     return 0;
40 }

 

转载于:https://www.cnblogs.com/jianqian/p/5030897.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值