编写一个模拟唐僧师徒与妖精进行对决的游戏 每次战斗中妖精的战斗值从 0 到 29随机产生; 唐僧师徒随机选出代表参战 (唐僧 =0,沙僧 =10,八戒 =20,悟空 =30); 计算双方各自的胜率。大神就当做练习题吧跪求了
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int play()
{
int arr[] = {0,10,20,30};
int ghost = rand() % 30;
int shitu = arr[rand() %4];
return (ghost < shitu) * 2 + (ghost > shitu);
}
int main()
{
srand((int)time(0));
int shitu = 0;
int ghost = 0;
int n = 100000;
for (int i = 0; i < n; i++)
{
int r = play();
if (r == 2) shitu++;
if (r == 1) ghost++;
}
printf("shitu %f, ghost %f", shitu /(float)n, ghost /(float)n);
return 0;
}
shitu 0.500230, ghost 0.474490Press any key to continue . . .
唐僧胜:1/3*1/4+2/3*1/4+1*1/4 = 0.5
平:1/30*1/4+1/30*1/4+1/30*1/4 = 0.025
妖怪胜:29/30*1/4+19/30*1/4+9/30*1/4 = 0.475