c++概率的运用,基于控制台程序
  #include<iostream>
  #include<windows.h>
  #include<conio.h>
  #include<time.h>
  #include<stdlib.h>
  using namespace std;
  double Count_com=0; //电脑赢得次数
  double Count_you=0; //玩家赢得次数
  int stone = 1, cloth = 2, scissors = 3; //石头剪刀布中的三种状态
  /////////////////声明//////////////////////
  int randget(int start, int end);
  double getDoubleRand(int start, int end);
  void gameing();
  void start1();
  void start2();
  void start3();
  void tell(int com, int you);
  /////////////////定义randget///////////////
  int randget(int start, int end)
  {
  return rand() % (end - start + 1) + start; //从start到end开始取随机数;
  }
  /////////////////定义getDoubleRand/////////
  double getDoubleRand(int start, int end)
  {
  return rand() % (end - start + 1) + start;
  }
  ////////////////定义石头剪刀布////////////////
  void start1()
  {
  srand((unsigned int)time(NULL));
  char x;
  int com = 0, you = 0;
  cout 《 "\n Z:石头X:剪刀C:布 你出:" 《 endl;
  while (1)
  {
  if (_kbhit()) //_kbhit()判断是否有键盘操作
  {
  x = _getch();
  if ((x == 'Z' || x == 'z')) you = 1;
  if ((x == 'X' || x == 'x')) you = 3;
  if ((x == 'C' || x == 'c')) you = 2;
  while (_kbhit())
  _getch();
  com = randget(1, 3);
  tell(com,you);
  }
  }
  }
  ////////////////定义抛硬币///////////////
  void start2()
  {
  cout 《 "按任意键开始抛硬币" 《 endl;
  system("pause");
  srand((unsigned int)time(NULL));
  int coin = 0;
  long double rec = 0, times = 0, rec2 = 0;
  for (;;)
  {
  Sleep(50); //设置进程的速度。
  times += 1;
  coin = randget(0, 1); //随机取正反面
  if (coin == 1) //逻辑判断
  {
  rec++;
  cout 《 "正面 正面几率:" 《 rec / times 《 "%" 《 endl;
  }
  if (coin == 0)
  {
  rec2++;
  cout 《 "反面 反面几率:" 《 rec2 / times 《 "%" 《 endl;
  }
  }
  }
  ////////////////定义π的计算////////////
  void start3()
  {
  srand((unsigned int)time(NULL));
  cout 《 "现在讲进行π的计算,按任何键开始。(撒种子法)" 《 endl;
  double x = 0, y = 0; //随机取点定义x和y的坐标
  double pi = 0, times = 0, distance = 0, init = 0;
  for (;;)
  {
  Sleep(50);
  times += 1;
  x = getDoubleRand(0, 2);
  y = getDoubleRand(0, 2);
  distance = (x - 1)*(x - 1) + (y - 1)*(y - 1);
  if (distance <= 1)
  {
  init += 1;
  cout 《 "当前是第" 《 times 《 "次计算π的值,π当前测的值是:" 《 4 * ( init / times )/ 1 《 endl;
  }
  }
  }
  /////////////辨别输赢///////////////////
  void tell(int com, int you)
  {
  double rate, temp;
  temp = Count_you + Count_com;
  rate = Count_you / temp * 100;
  if (com == you)
  {
  cout 《 "打平了!" 《 "****************……你的胜率:" 《 rate 《 "%" 《 endl;
  }
  if ((com == 1) && (you == 2))
  {
  cout 《 "你赢了!****" 《 "电脑>>>石头****你>>>布" 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_you++;
  }
  if ((com == 1) && (you == 3))
  {
  cout 《 "你输了!****" 《 "电脑>>>石头****你>>>剪刀" 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_com++;
  }
  if ((com == 2) && (you == 1))
  {
  cout 《 "你输了!****" 《 "电脑>>>布 ****你>>>石头" 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_com++;
  }
  if ((com == 2) && (you == 3))
  {
  cout 《 "你赢了!****" 《 "电脑>>>布 ****你>>>剪刀" 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_you++;
  }
  if ((com == 3) && (you == 1))
  {
  cout 《 "你赢了!****" 《 "电脑>>>剪刀****你>>>石头" 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_you++;
  }
  if ((com == 3) && (you == 2))
  {
  cout 《 "你输了!****" 《 "电脑>>>剪刀****你>>>布 " 《 "……你的胜率:" 《 rate 《 "%" 《 endl;
  Count_com++;
  }
  }
  /////////////主函数//////////////////////
  int main()
  {
  int choice=0;
  again: cout 《 "________________________概率测试_____________________" 《 endl;
  cout 《 "1.石头剪刀布。" 《 endl;
  cout 《 "2.抛硬币。" 《 endl;
  cout 《 "3.π的计算。" 《 endl;
  cout 《 "_____________________________________________________" 《 endl;
  cin 》 choice;
  switch (choice)
  {
  case 1:start1();
  case 2:start2();
  case 3:start3();
  [cpp] view plaincopy在CODE上查看代码片派生到我的代码片
  default:goto again;
  }
  system("pause"); www.qcwyo68.com  托福答案