题目背景,集卡小游戏,有“恭”“喜”“发”“财”四种文字的卡片,一张卡片带一个字。有四次抽卡机会,看是否可以集齐这四个卡片。
讲解随机数和随机数种子,定义变量a从0到9中随机获取数字,然后当a为0的时候输出恭,当a为1或2的时候输出喜,当a为3,4,5的时候输出发,当a为6,7,8,9的时候输出财。以此来讲解概率。
之后让学生自己设计游戏,设计概率极低的抽卡方式,再设计概率极高的抽卡方式。
让小学生这么早就了解游戏的二进制规则,好像有点无趣
最近很久没更新了,现在离我喜欢的数据分析好像越来越远。
#include <bits/stdc++.h>
using namespace std;
const int maxs=10;
void f(int a){
if(a==0){
cout<<"恭" ;
}
else if(a==1||a==2){
cout<<"喜" ;
}
else if(a==3||a==4||a==5){
cout<<"发";
}
else if(a==6||a==7||a==8||a==9){
cout<<"财";
}
}
int main()
{
srand(time(NULL));
int a;
a=rand()%maxs;
f(a);
a=rand()%maxs;
f(a);
a=rand()%maxs;
f(a);
a=rand()%maxs;
f(a);
return 0;
}
上课的时候被学生激发灵感,又增加了一些内容,比如当抽奖一次后,可以选择是否继续抽奖,应用递归
#include <bits/stdc++.h>
using namespace std;
void choujiang(){
int a,b;
a=rand();//a是一个关于时间的随机数
b=a%10;//b的值是一个0-9的随机数
if(b<2){
cout<<"恭喜中奖!";
}
else{
cout<<"谢谢参与!";
}
}
void choujiang_y_n(){
cout<<"是否继续参与抽奖?"<<endl;
char b;
cin>>b;
if(b=='y'){
choujiang();
choujiang_y_n();//递归
}
if(b=='n'){
cout<<"游戏结束";
}
}
int main(){
srand(time(NULL));//关于时间的数字 随机数种子
choujiang();
choujiang_y_n();
return 0;
}