体彩 超级大乐透(C++) 测测你的中奖概率

news/2024/10/25 18:28:41/
随机购买n注彩票,或者手动输入彩票数字,看看你的幸运值如何?
对体彩超级大乐透的前区5个数字和后区2个数字进行区分,前区(1-35),后区(1-12),避免错误输入,避免输入数字超过范围,避免前区或后区中有重复数字,判断获奖情况。

在这里插入图片描述

代码如下

#include <iostream>
#include<ctime>
#include<stdlib.h>
#include<vector>
using namespace std;//生成随机数
void produceNum(vector<int> &A);
//检测数字是否存在
bool checkSamenum(vector<int>A,int temp);
//打印数字
void printNum(vector<int> A);
//检测单注前后区中奖数字个数
vector<int> correctNum(vector<int> predictNum,vector<int> chooseNum);
//选择购买数字
void chooseNum(vector<vector<int>>&buyNum);
//保存所有中奖情况
vector<vector<int>> winSum(vector<int> &winNum,vector<vector<int>> buyNum);
//获奖情况
void awards(vector<vector<int>> &winSum);
//随机购买数字
void randomBuyNum(vector<vector<int>>&buyNum);void produceNum(vector<int> &A){//srand((unsigned)time(NULL));int a = 1, b = 35,c=12;bool label=false;bool label1=false;for(int i=0;i<5;i++){// 生成[a,b]的随机数int temp=(rand() % (b-a+1)) + a;if(i==0){A.push_back(temp);}else{label=checkSamenum(A,temp);while(label==true){temp=(rand() % (b-a+1)) + a;//cout<<"same number: "<< temp<<endl;label=checkSamenum(A,temp);}A.push_back(temp);}}//printNum(storagea);//    cout<<"second area"<<endl;vector<int> B;for(int j=0;j<2;j++){int temp1=(rand() % (c-a+1)) + a;if(j==0){B.push_back(temp1);}else{label1=checkSamenum(B,temp1);while(label1==true){temp1=(rand() % (c-a+1)) + a;//cout<<"same number2: "<< temp1<<endl;label1=checkSamenum(B,temp1);}B.push_back(temp1);}}A.push_back(B[0]);A.push_back(B[1]);//cout<<"size:"<<storageb.size()<<endl;//cout<<"<<<<winning number>>>>"<<endl;printNum(A);}
bool checkSamenum(vector<int>A,int temp){int label=false;int size=A.size();for(int i=0;i<size;i++){if(A[i]==temp){label=true;return label;}}return label;
}
void printNum(vector<int> A){for(vector<int>::iterator it=A.begin();it!=A.end();it++){cout<<*it<<" ";}cout<<endl;}
vector<int> correctNum(vector<int> predictNum,vector<int> chooseNum){vector<int> rightSum;int corct1=0,corct2=0;for(int i=0;i<5;i++){for(int j=0;j<5;j++){if(chooseNum[j]==predictNum[i]){corct1+=1;}}}for(int i=5;i<7;i++){for(int j=5;j<7;j++){if(chooseNum[j]==predictNum[i]){corct2+=1;}}}rightSum.push_back(corct1);rightSum.push_back(corct2);return rightSum;}void randomBuyNum(vector<vector<int>>&buyNum){cout<<"random buy lottery tickets"<<endl;cout<<"How many lottery tickets do you want to buy? (0~100)"<<endl;int totalNum;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number :"<<endl;cin>>totalNum;}while(totalNum<0||totalNum>100){cout<<"wrong number,please rechoose lottery tickets: (0~100)"<<endl;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number :"<<endl;cin>>totalNum;}}cout<<"the number you buy:"<<endl;for(int i=0;i<totalNum;i++){vector<int> single;produceNum(single);buyNum.push_back(single);}//    for(int i=0;i<totalNum;i++){
//        printNum( buyNum[i]);
//    }}void chooseNum(vector<vector<int>>&buyNum){cout<<"How many lottery tickets do you want to buy (0~30) ?"<<endl;int totalNum;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~30)"<<endl;cin>>totalNum;}while(totalNum<0||totalNum>30){cout<<"wrong number,please rechoose lottery tickets: "<<endl;cin>>totalNum;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~30)"<<endl;cin>>totalNum;}}for(int i=0;i<totalNum;i++){cout<<"choose the "<<i+1<<" ticket"<<endl;vector<int> single;bool label=false;cout<<"cin 5 first number (1~35)"<<endl;for(int i=0;i<5;i++){int d=0;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)"<<endl;cin>>d;}if(i==0){while(d<0||d>35){cout<<"wrong number,please choose again a"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}}single.push_back(d);}else{while(d<0||d>35){cout<<"wrong number,please choose again "<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35) "<<endl;cin>>d;}}label=checkSamenum(single,d);while(label==true){cout<<"same number: "<< d<<" .please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}while(d<0||d>35){cout<<"wrong number,please choose again "<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~35)!"<<endl;cin>>d;}}label=checkSamenum(single,d);}single.push_back(d);}}
//        cout<<"single[5]"<<endl;
//        printNum(single);cout<<"cin 2 second number (1~12):"<<endl;vector<int> A;for(int i=0;i<2;i++){int d=0;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)"<<endl;cin>>d;}if(i==0){while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)"<<endl;cin>>d;}}A.push_back(d);}else{while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}}label=checkSamenum(A,d);while(label==true){cout<<"same number: "<< d<<" .please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}while(d<0||d>12){cout<<"wrong number,please choose again"<<endl;cin>>d;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin number (1~12)!"<<endl;cin>>d;}}label=checkSamenum(A,d);}A.push_back(d);}}
//        cout<<"A[2]"<<endl;
//        printNum(A);single.push_back(A[0]);single.push_back(A[1]);buyNum.push_back(single);}cout<<"the number you buy:"<<endl;for(int i=0;i<totalNum;i++){printNum( buyNum[i]);}}vector<vector<int>> winSum(vector<int> &winNum,vector<vector<int>> buyNum){int size=buyNum.size();vector<vector<int>> sumCorct;for(int i=0;i<size;i++){vector<int> corct=correctNum(winNum,buyNum[i]);sumCorct.push_back(corct);}return sumCorct;
}void awards(vector<vector<int>> &winSum){int size=winSum.size();for(int i=0;i<size;i++){int a=winSum[i][0];int b=winSum[i][1];cout<<"the "<<i+1<<" lottery: 1_get: "<<a<<" 2_get: " <<b<<" won the :  ";if(a==5&&b==2){cout<<"First prize"<<endl;}else if(a==5&&b==1){cout<<"Second prize"<<endl;}else if(a==5&&b==0){cout<<"Third prize"<<endl;}else if(a==4&&b==2){cout<<"Fourth  prize"<<endl;}else if(a==4&&b==1){cout<<"Fifth prize"<<endl;}else if(a==3&&b==2){cout<<"Sixth prize"<<endl;}else if(a==4&&b==0){cout<<"Seventh prize"<<endl;}else if((a==3&&b==1)||(a==2&&b==2)){cout<<"Eighth prize"<<endl;}else if((a==3&&b==0)||(a==2&&b==1)||(a==1&&b==2)||(a==0&&b==2)){cout<<"Ninth prize"<<endl;}else{cout<<"nothing"<<endl;}}}int main()
{srand((unsigned)time(NULL));vector<int> producenumber;vector<vector<int>>buyNum;vector<vector<int>>winsum;string israndombuy="";cout<<"do you want to buy lottery tickets random ? (yes/no)"<<endl;cin>>israndombuy;while(cin.fail()){cin.clear();//清除cin的错误信息cin.ignore();//忽略掉缓冲区的内容,置于EOF位置cout<<"please cin (yes/no) :"<<endl;cin>>israndombuy;}if(israndombuy=="yes"){randomBuyNum(buyNum);}else if(israndombuy=="no"){chooseNum(buyNum);}else{cout<<"wrong answer"<<endl;cout<<"game over!"<<endl;return 0;}cout<<"***** winning number *****"<<endl;produceNum(producenumber);winsum=winSum(producenumber,buyNum);awards(winsum);cout<<"game over,thanks for you playing!"<<endl;system("pause");return 0;
}

http://www.ppmy.cn/news/966525.html

相关文章

PHP模拟体彩36选7代码,打造属于自己的EXCEL彩票选号软件-36选7/31选7/混合版(不喜彩票者勿入)-Excel函数与公式-ExcelHome技术论坛 -...

本帖最后由 SSJJWW 于 2012-12-30 05:05 编辑 本体育彩票走势图旨在为使用者提供客观的彩票走势,系彩票的辅助工具,不能作为彩票选号的决定依据,它只提供客观的技术统计分析,起到的仅仅是参考作用。任何彩软件或工具都只能为使用者提供参考号码,因此,彩票只能小玩,不可大…

2021年中国体育彩票行业市场现状分析,体彩销售额同比增长21.9%「图」

一、不同种类彩票特点 体育彩票是指&#xff1a;为筹集体育事业发展资金发行的&#xff0c;印有号码、图形或文字&#xff0c;供人们自愿购买并按照特定规则获取中奖权力的书面凭证。狭义的体育彩票指的是以比赛为媒体发行的彩票&#xff0c;亦可称为竞猜型体育彩票。如足球彩…

JS实现——体彩足球预测分析

说明:需要你自己去找个Jquery引用到当前页面就可以了 <html> <head> <script src="https://common.cnblogs.com/scripts/jquery-2.2.0.min.js"></script> <script> function js() {//$("tr").children("td")[3].…

python爬取体彩排列3历史数据并验证其纯随机性

摘要&#xff1a;本文目的为验证体彩排列3的纯随机性。从网站上爬取一千二百多条历史开奖数据。将三个数字依次作为百位十位个位&#xff0c;以这些数据看作时间序列&#xff0c;然后利用时间序列分析白噪声检验其纯随机性&#xff0c;结果从大方向看体彩排列3开奖号确实是纯随…

vs无法打开源文件_体彩: 西汉姆联vs曼联 英超

【 体彩】 西汉姆联vs曼联 【体彩】西汉姆联vs曼联 【体彩】 西汉姆联vs曼联 2020年12月06日 01:30 西汉姆联 西汉姆联上赛季艰难逃过降级的命运&#xff0c;新赛季再度征战英超却是完全不用的发挥&#xff0c;现在积分榜暂列第五跻身欧联区&#xff0c;是近些年来最好的开局。…

scrapy 抓取 体彩-超级大乐透,历年开奖号码【娱乐篇】

最近正好在看scrapy&#xff0c;手贱有了如下代码&#xff0c;核心代码如下&#xff1a;&#xff08;不要给我讲pipline&#xff0c;我完全是图方便才这么写的&#xff09; 彩票中出现频率最高的号码整理&#xff0c;如下&#xff1a; 【05&#xff0c;19&#xff0c;29&…

Java基于Set集合实现体彩大乐透2.0

编写程序实现体彩大乐透机选5注 题目 编写程序实现体彩大乐透机选五注&#xff0c;把机选结果打印在控制台上&#xff0c;具体规则如下 大乐透由前区和后区构成前区&#xff1a;从1-35中随机选出不重复的5个数后区&#xff1a;从1-12中随机选出不重复的2个数 Set集合实现就…

html中使用js实现体彩大乐透随机选号

体彩大乐透随机选号 页面预览&#xff1a; 代码实现&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>体彩大乐透随机选号</title><script>function start() {var arr1 ne…