iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言实现计算双色球的中奖率
  • 387
分享到

C语言实现计算双色球的中奖率

摘要

目录规则编写思路运行结果源码规则 “双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1--33 中选择;蓝色球号码从 1--1

规则

“双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1--33 中选择;蓝色球号码从 1--16 中选择。“双色球”每注 2 元。总而言之,就是从 1-33 个数中选择 6 个数,再从 1-16 个数中选择 1 个数。中奖的条件如下:

编写思路

编写该程序我使用了结构体数组。如果这个号码被选中,就会被标记,下次就不会选择。选择我使用了随机数生成,并且随机种子使用了毫秒级别,防止短时间内产生两相同的数。

首先生成一组双色球中奖号码。然后用循环随机生成 N 组购买号码,使用购买号码与中奖号码进行对比来确定是否中奖,以及中奖等级,然后计算中奖金额,将中奖的总次数除以购买的次数,就可以计算出中奖率,如果次数不够,计算出来的就不准确,我使用 1000000 次,可以模拟出中奖率在 6.7% 左右。但是中一等奖的概率是几乎没有。

感兴趣的同学可以将多试几次看能否出现一等奖。

运行结果

源码

// 程序功能:双色球中奖率计算
// 编译环境:VS2013
// 结    论:中奖率为 6.7%
 
#include<stdio.h>
#include<stdlib.h>
#include<coNIO.h>
#include<time.h>
#include<sys/timeb.h>
 
struct RED
{
  bool IS_CHOSE;
  int number;
};
 
struct BLUE
{
  bool IS_CHOSE;
  int number;
};
 
void initBALL(RED *red, BLUE *blue);
void printfZJ(RED *red, BLUE *blue);
int printfZT(RED *red, BLUE *blue, RED *myred, BLUE *myblue);
 
int main()
{
  struct timeb timeSeed;
  ftime(&timeSeed);
  srand(timeSeed.time * 1000 + timeSeed.millitm);
  printf("彩票中奖号码为:\n");
  RED red[33];
  BLUE blue[16];
  initBALL(red, blue);
  printfZJ(red, blue);
  int CS = 1000000;  // 购买次数
  int ZERO = 0;
  int ONE = 0;
  int TWO = 0;
  int THREE = 0;
  int FOUR = 0;
  int FIVE = 0;
  int SIX = 0;
  for (int i = 0; i < CS; i++)
  {
    //printf("购买的彩票号码为:\n");
    RED myred[33];
    BLUE myblue[16];
    initBALL(myred, myblue);
    //printfZJ(myred, myblue);
    int DJ = printfZT(red, blue, myred, myblue);
    switch (DJ)
    {
    case 0:ZERO++; break;
    case 1:ONE++; break;
    case 2:TWO++; break;
    case 3:THREE++; break;
    case 4:FOUR++; break;
    case 5:FIVE++; break;
    case 6:SIX++; break;
    }
  }
 
  printf("总共选择%d次\n", CS);
  printf("没中奖%d次\n", ZERO);
  printf("一等奖%d次\n", ONE);
  printf("二等奖%d次\n", TWO);
  printf("三等奖%d次\n", THREE);
  printf("四等奖%d次\n", FOUR);
  printf("五等奖%d次\n", FIVE);
  printf("六等奖%d次\n", SIX);
  int outmoney = CS * 2;
  int inmoney = SIX * 5 + FIVE * 10 + FOUR * 200 + THREE * 3000 + TWO * 341021 + ONE * 10000000;
  printf("共耗资%d元,中奖%d元,亏损%d元\n", outmoney, inmoney, outmoney - inmoney);
  int ZJ = CS - ZERO;
  double ZJL = (ZJ*1.0) / CS * 100;
  printf("中奖率为:%lf", ZJL);
  _getch();
  return 0;
}
void initBALL(RED *red, BLUE *blue)
{
  for (int i = 0; i < 33; i++)
  {
    red[i].IS_CHOSE = false;
    red[i].number = i + 1;
  }
  for (int i = 0; i < 16; i++)
  {
    blue[i].IS_CHOSE = false;
    blue[i].number = i + 1;
  }
  for (int i = 0; i < 6; i++)
  {
    while (true)
    {
      int NUM = rand() % 33 + 1;
      if (red[NUM - 1].IS_CHOSE)
      {
        continue;
      }
      else
      {
        red[NUM - 1].IS_CHOSE = true;
        red[NUM - 1].number = NUM;
        break;
      }
    }
  }
  int NUM = rand() % 16 + 1;
  blue[NUM - 1].IS_CHOSE = true;
  
}
 
void printfZJ(RED *red, BLUE *blue)
{
  printf("红色球为\n");
  for (int i = 0; i < 33; i++)
  {
    if (red[i].IS_CHOSE)
    {
      printf("%d\t", red[i].number);
    }
  }
  printf("\n");
  printf("蓝色号为:\n");
  for (int i = 0; i < 16; i++)
  {
    if (blue[i].IS_CHOSE)
    {
      printf("%d\t\n", blue[i].number);
    }
  }
}
 
int printfZT(RED *red, BLUE *blue, RED *myred, BLUE *myblue)
{
  int rednumber = 0;
  int bluenumber = 0;
  for (int i = 0; i < 33; i++)
  {
    if (red[i].IS_CHOSE)
    {
      for (int j = 0; j < 33; j++)
      {
        if (myred[j].IS_CHOSE)
        {
          if (red[i].number == myred[j].number)
          {
            rednumber++;
            break;
          }
        }
      }
    }
  }
  for (int i = 0; i < 16; i++)
  {
    if (blue[i].IS_CHOSE)
    {
      for (int j = 0; j < 16; j++)
      {
        if (myblue[j].IS_CHOSE)
        {
          if (blue[i].number == myblue[j].number)
          {
            bluenumber++;
            break;
          }
        }
      }
      break;
    }
  }
  //printf("红色中%d\t蓝色中%d\n",rednumber,bluenumber);
  int DJ = 0;
  if (rednumber == 6 && bluenumber == 1)
  {
    DJ = 1;
  }
  if (rednumber == 6 && bluenumber == 0)
  {
    DJ = 2;
  }
  if (rednumber == 5 && bluenumber == 1)
  {
    DJ = 3;
  }
  if (rednumber == 5 && bluenumber == 0)
  {
    DJ = 4;
  }
  if (rednumber == 4 && bluenumber == 1)
  {
    DJ = 4;
  }
  if (rednumber == 4 && bluenumber == 0)
  {
    DJ = 5;
  }
  if (rednumber == 3 && bluenumber == 1)
  {
    DJ = 5;
  }
  if ((rednumber == 2 && bluenumber == 1) || (rednumber == 1 && bluenumber == 1) || (rednumber == 0 && bluenumber == 1))
  {
    DJ = 6;
  }
  return DJ;
}

到此这篇关于C语言实现计算双色球的中奖率的文章就介绍到这了,更多相关C语言计算双色球中奖率内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网! 

--结束END--

本文标题: C语言实现计算双色球的中奖率

本文链接: https://www.lsjlt.com/news/174711.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言实现计算双色球的中奖率
    目录规则编写思路运行结果源码规则 “双色球”每注投注号码由 6 个红色球号码和 1 个蓝色球号码组成。红色球号码从 1--33 中选择;蓝色球号码从 1--1...
    99+
    2022-12-09
    C语言计算双色球中奖率 C语言 双色球中奖率 C语言 中奖率
  • 利用Java实现一个双色球抽奖的随机算法
    今天就跟大家聊聊有关利用Java实现一个双色球抽奖的随机算法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。原理如下:1首先初始化一个待抽奖的数组nums,数组的长度k 随机一个1-k...
    99+
    2023-05-31
    java 随机算法 ava
  • C语言实现双人反弹球游戏
    本文项目为大家分享C语言实现双人反弹球游戏的具体代码,供大家参考,具体内容如下 一、最终项目描述和效果 项目描述:   实现双人玩的弹跳球游戏 最终效果图如下: 二、基本...
    99+
    2024-04-02
  • c语言实现计算圆周率的近似值
    目录c语言计算圆周率的近似值用C语言解“计算圆周率”题思路代码总结c语言计算圆周率的近似值 用公式π/4=1-1/3+1/5-1/7+1/9-&hell...
    99+
    2022-12-08
    c语言近似值 c语言计算圆周率 计算圆周率近似值
  • C语言基于EasyX库实现有颜色弹跳小球
    本文实例为大家分享了基于EasyX库实现有颜色弹跳小球的具体代码,供大家参考,具体内容如下 1.目标要求 1.实现一个有颜色小球在窗口中弹跳2.遇到边界弹跳 2.C语言代码 #inc...
    99+
    2024-04-02
  • C语言实现简单计算器
    本文实例为大家分享了C语言实现简单计算器的具体代码,供大家参考,具体内容如下 实现效果如图: 实现代码如下: #include<stdio.h> #include...
    99+
    2024-04-02
  • C语言实现个税计算器
    最近在学C语言基础,在导师的指导下,先准备写个个税薪资计算器。这是一个简单的C语言小demo。主要用到了C语言的函数,if选择语句。 程序的主要代码如下(可运行): #inclu...
    99+
    2024-04-02
  • C语言实现简单的抽奖系统
    本文实例为大家分享了C语言实现简单的抽奖系统的具体代码,供大家参考,具体内容如下 效果图 #include<stdio.h> #include<string.h...
    99+
    2024-04-02
  • c语言实现足球比赛积分统计系统
    本文实例为大家分享了c语言实现足球比赛积分统计系统的具体代码,供大家参考,具体内容如下    //为简单化,这里没有加上文件的操作  #include <stdio.h&...
    99+
    2024-04-02
  • 用C语言实现计算器功能
    本文实例为大家分享了用C语言实现计算器功能的具体代码,供大家参考,具体内容如下 代码如下: #include<stdio.h> //C语言编写计算器程序 ^_^ v...
    99+
    2024-04-02
  • C语言实现计算器的两种方法
    本文实例为大家分享了C语言实现计算器的具体代码,供大家参考,具体内容如下 C语言计算器两种方法 //一般做法 #include<stdio.h> #include<...
    99+
    2024-04-02
  • C语言实现简易计算器功能
    本文实例为大家分享了C语言实现简易计算器功能的具体代码,供大家参考,具体内容如下 表达式求值项目(多功能计算器)。该项目主要包含了10个模块,10项功能: 1:加法运算:主要进行两个...
    99+
    2024-04-02
  • C语言实现计算器的代码怎么写
    这篇文章主要介绍了C语言实现计算器的代码怎么写的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇C语言实现计算器的代码怎么写文章都会有所收获,下面我们一起来看看吧。C语言计算器两种方法//一般做法#include&...
    99+
    2023-06-29
  • 用C语言实现简单的计算器功能
    本文实例为大家分享了C语言实现简单的计算器功能的具体代码,供大家参考,具体内容如下 简单计算器,实现简单的加减乘除功能,选择对应的运算符输出运算符对应的编号,然后输入我们要计算的两个...
    99+
    2024-04-02
  • c语言实现向上取整计算方法
    目录c语言向上取整计算c语言向上取整的一点技巧c语言向上取整计算 用整数N 除以 M,要求向上取整数 int n = (N + M -1) / M ; 简化后就是: int n= (...
    99+
    2024-04-02
  • 实现C语言的幂运算
    C语言乘方运算的代码实现 在C语言中,实现乘方运算(即求一个数的幂)并不难。通常有两种方法可以实现乘方运算,分别是循环计算和递归计算。下面将分别介绍这两种方法的代码实现。 方法一:循环...
    99+
    2024-02-24
    c语言乘方运算
  • Go语言在云计算中的角色是什么?
    随着云计算技术的不断进步和应用,Go语言作为一门同时具有编译型和解释型特性的高效编程语言,在云计算中扮演着重要的角色。本文将从以下几个方面阐述Go语言在云计算中的优势和应用:一、Go语言的优势1、高级特性Go语言支持并发编程,旨在解决传统编...
    99+
    2023-05-16
    云计算 Go语言 角色
  • 详解C语言中双向循环链表的实现
    目录实现细节辅助理解图具体实现代码1、对链表进行初始化2、任意位置前的插入3、任意位置的删除4、头插和尾删完整代码头文件具体函数测试实现细节 1、带一个哨兵位(哨兵节点,初始节点,不...
    99+
    2024-04-02
  • C语言怎么实现24点游戏计算器
    要实现24点游戏计算器,可以使用递归的方法来进行计算。以下是一个简单的C语言实现:```c#include #include #de...
    99+
    2023-08-18
    C语言
  • C语言实现计算圆周长以及面积
    目录C语言计算圆周长及面积题目主要思想两种方法求圆的面积与周长编程方法一:程序如下方法二:程序如下 C语言计算圆周长及面积 题目 从键盘上获取圆的半径,计算圆的周长以及面积...
    99+
    2022-11-13
    C语言计算圆周长 C语言计算面积 计算圆周长
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作