谁没有个发财梦? 科学发财, 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
其中 红球彼此不能重复, 蓝球和红球可重复
- #include <stdio.h>
- #include <stdlib.h>
- #include <time.h>
- // 双色球: 6 个红球 (1-33) 1 个蓝球 (1-16)
- // 问题: 红色球不可以重复, 蓝球 可以和红球重复 => 去重操作
- int main()
- {
- int temp, isexist, arr[7];
- srand((unsigned int)time(NULL));
- // 生成号码 个数
- int t = 10;
- while (t--)
- {
- // 随机抽号
- for (int i = 0; i < 6; i++)
- {
- temp = rand() % 33 + 1;
- isexist = 0;
- for (int j = 0; j < i; j++) {
- if (temp == arr[j]) {
- isexist = 1; // 重复 退出内层循环
- break;
- }
- }
- if (isexist)
- i--;
- else
- arr[i] = temp;
- }
- arr[6] = rand() % 16 + 1;
- // 输出
- printf("为您生成的双色球号:");
- for (int i = 0; i < 7; i++)
- if (i == 6)
- printf("+%02d", arr[i]);
- else if(i == 5)
- printf("%02d", arr[i]);
- else
- printf("%02d-", arr[i]);
- printf("\n");
- }
- system("pause");
- }
再来看一看可怜的中奖概率吧, 也不能太天真, 代码还是要老老实实敲:
一等奖: 1/(33x32x31x30x29x28x16) = 1/12759183360? = 7.837492195111773e-11, 也就是 10 亿人有 0.7 个人中奖 (计算不一定准确, 是我的理解)
. . .
理想太丰满, 显示太骨感.
不怕天上掉馅饼没运气接, 就怕被砸个啥好歹
来源: http://www.bubuko.com/infodetail-3416866.html