双色球随机生成
Posted guoyujiang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了双色球随机生成相关的知识,希望对你有一定的参考价值。
谁没有个发财梦?科学发财,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 个人中奖(计算不一定准确,是我的理解)
- . . .
理想太丰满,显示太骨感。
不怕天上掉馅饼没运气接,就怕被砸个啥好歹
以上是关于双色球随机生成的主要内容,如果未能解决你的问题,请参考以下文章