zoukankan      html  css  js  c++  java
  • 双色球随机生成

    谁没有个发财梦?科学发财,C语言学起来!

    故事还要从一个吃 蝙蝠的憨批说起,公元2020年春节初有某" 恶 " 人,,,此处省略n 万字

    此刻本应该在学校的我还在家呆着,感觉这个年过的 太憋太闷。

    无聊,没事干,就学习一点网课,复习一下之前的C语言,感觉之前学习的时候 还是有点粗心的。

    #include <time.h>
    time_t time(time_t *t);
    功能:获取当前系统时间
    参数:常设置为NULL
    返回值:但钱时间 time_t 相当于 long 类型,单位是 毫秒ms
     
    #include <stdlib.h>
    void srand(unsigned int seed);
    功能:用来设置rand() 产生随机数的随机种子
    参数:如果每次 seed相等,rand()产生随机数相等
    返回值:无
     
    #include <stdlib.h>
    int rand(void);
    功能:返回一个随机数值
    参数:无
    返回值:随机数
     
    普及一下双色球的小知识吧
    • 开奖号码 是连着的7个号码,其中包括6个红球号码,1个蓝球号码,红球号码范围1-33,蓝球号码1-16
    • 其中 红球彼此不能重复,蓝球和红球可重复
     

     

     1 #include <stdio.h>
     2 #include <stdlib.h>
     3 #include <time.h>
     4 
     5 // 双色球:6个红球(1-33) 1个蓝球(1-16)
     6 // 问题:红色球不可以重复,蓝球 可以和红球重复 => 去重操作
     7 
     8 int main()
     9 {
    10     int temp, isexist, arr[7];
    11 
    12     srand((unsigned int)time(NULL));
    13     // 生成号码 个数
    14     int t = 10;
    15     while (t--)
    16     {
    17         //随机抽号
    18         for (int i = 0; i < 6; i++)
    19         {
    20             temp = rand() % 33 + 1;
    21             isexist = 0;
    22             for (int j = 0; j < i; j++) {
    23                 if (temp == arr[j]) {
    24                     isexist = 1;  //重复 退出内层循环
    25                     break;
    26                 }
    27             }
    28             if (isexist)
    29                 i--;
    30             else
    31                 arr[i] = temp;
    32         }
    33         arr[6] = rand() % 16 + 1;
    34         //输出
    35         printf("为您生成的双色球号: ");
    36         for (int i = 0; i < 7; i++)
    37             if (i == 6)
    38                 printf("+%02d", arr[i]);
    39             else if(i == 5)
    40                 printf("%02d", arr[i]);
    41             else
    42                 printf("%02d-", arr[i]);
    43         printf("
    ");
    44     }
    45     system("pause");
    46 }
    再来看一看可怜的中奖概率吧,不能太天真,代码还是要老老实实敲:
     
    • 一等奖:1/(33x32x31x30x29x28x16) = 1/12759183360‬ = 7.837492195111773e-11,也就是10亿人有0.7 个人中奖(计算不一定准确,是我的理解)
    • . . .
     
    理想太丰满,显示太骨感。
     
     
     
  • 相关阅读:
    20181127-1附加作业 软件工程原则的应用实例
    20181120-1每周例行报告
    20181113-2 每周例行报告
    20181030-4每周例行报告
    20181023-3 每周例行报告
    20181016-10 每周例行报告
    百度笔试题
    字节跳动笔试题
    安装pyltp安装包出现: error: command 'D:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\BIN\x86_amd64\cl.exe' failed with exit status 2
    软件评测师复习经验谈
  • 原文地址:https://www.cnblogs.com/guoyujiang/p/12297480.html
Copyright © 2011-2022 走看看