开奖号码是怎样产生的呢?可以肯定,开奖号码是由装在电脑里的摇奖系统软件产生的。大概分三种情况。
第一情况:电脑 *** 作者控制返奖比例,开奖前运行摇奖系统软件,给电脑发出指令,设定返奖比例范围,封机后电脑自动统计奖票销售况,在返奖比例范围彩票内,由软件的随机桐绝庆函数随机产生开奖号码。电脑再给摇奖发出指令,摇奖机把带奖号的号码球摇出来。具体开出什么号码,电脑 *** 作者不知道。
第二种情况:电脑里装的摇奖系统软件里有N种开奖方案,每一种方案是一个随机函数,产生的组3、组6、奇偶、和值、跨度、全顺、半顺等各种形态比例是不同的。开奖前,电脑 *** 作者运行摇奖软件,给摇奖机发出按何种方案开奖,摇奖软件按这种方案随机产生局握开奖号码,再给摇奖机发出指令,摇奖机把带奖号的号码球摇出来。具体开出什么号码,电脑 *** 作者不知道。何种方案开什么号码、有什么特点,电脑 *** 作者不知道。这只有摇奖机生产厂家的软件设计人员知道。这里有一点是清楚的,时间长了以后,何种方案有什么特点, *** 作电脑的人他一定有所了解。例如,他采用A方案开奖一段时间,用B方案开奖一段时间,通过观察比较,这两方案在号码形态上有什么特点,他就一目了然了。
第三种情况:就是用上述两种情况,混合交替使用。
/***************************************设计一个体育彩票的投彩和开奖过程
体彩的中奖等级分为特等奖(7位数字全部吻合),一等奖(6个连续的数字吻合),
二等奖(5个连续的数字吻合)、三等奖(4个连续的数字吻合)和安慰奖(2个连续的数字吻合),
设立奖励规则,各个等级的奖激猜庆金金额自定。
为了避免输入的麻烦,我明握把你的各个等级的奖金金额及模拟参数都存在里,
并把模拟结果存在Output.txt文件里。
Set.set文件的书写规则如下:
第一行为模拟参数,第一个数为模拟的次数,第二、第三个数为号码的最小
值和最大值,第四个数为是否显示投注和开奖的过程(0表示否,1表示是),每个数用空格隔开。
第二行为各奖项的奖金数额,每个数用空格隔开。
如:
1000000 1 9 1
1000000 500000 5000 100 5
注意Set.set文件必须用英文半角输入法编辑,并保存为ANSI编码方式。
****************************************/
#include <iostream>
#include <fstream>
#include <stdlib.h>
#include <time.h>
using namespace std
class Lottery
{
private:
int simuCount//模拟的次数
int nCodes //号码的总数
int minCode //最小的号码
int maxCode //最大的号码
int countCode//每个号码的选择个数
bool bDisplay//是否显示过程
double awards[6] //各奖项的奖金数额
public:
//初始化各参数
void InitLottery()
{
int i
fstream fileSet
fileSet.open("Set.set",ios_base::in)
if(fileSet.is_open())
{
fileSet>>simuCount>>minCode>>maxCode>>bDisplay
awards[5]=0.0 //设五等奖为不中奖
for(i=0i<5i++)
{
fileSet>>awards[i]
cout<<i<<"等奖:"<<awards[i]<<"\t"
}
}
else
{
cout<<"Set.set不存在,将以默认参数进行模拟\n"
simuCount=1000000
minCode=1maxCode=9
bDisplay=true
awards[0]=100000
awards[1]=50000
awards[2]=5000
awards[3]=100
awards[4]=5
awards[5]=0
}
fileSet.close()
cout<<"兆轿模拟次数:"<<simuCount<<"\n"
cout<<"最小号码:"<<minCode<<" 最大号码:"<<maxCode<<"\n"
cout<<"显示过程:"<<bDisplay<<"\n"
cout<<"各奖项的奖金数额:\n"
for(i=0i<5i++)
{
cout<<i<<"等奖:"<<awards[i]<<"\t"
}
srand(time(0))
}
//随机生成7个不重复号码
void GenerateCodes(int code[])
{
int n,i,j
int m = maxCode - minCode
code[0] = rand() % m + minCode
for(i=1i<7i++)
{
n = rand() % m + minCode
for(j=0j<ij++)
{
if(n==code[j])
{
n = rand() % m + minCode
j=-1
}
}
code[i]=n
}
}
//比较号码并判断中了几等奖
int CompareCodes(int rightCode[],int myCode[])
{
int i,j,n
n=0
for(i=0i<7i++)
{
for(j=0j<7j++)
{
if(myCode[i]==rightCode[j])
{
n++
}
}
}
switch(n)
{
case 7:
return 0 //特等奖(7位数字全部吻合)
case 6:
return 1 //一等奖(6个连续的数字吻合)
case 5:
return 2 //二等奖(5个连续的数字吻合)
case 4:
return 3 //三等奖(4个连续的数字吻合)
case 3:
case 2:
return 4 //安慰奖(2个以上连续的数字吻合)
default:
return 5 //其余不中奖
}
return 5
}
//进行模拟
void Simulate()
{
double prop[6]
int np[6]
int right_code[7]
int my_code[7]
int c,l,i
for(c=0c<6c++)
{
np[c]=0
}
//开始模拟
for(c=0c<simuCountc++)
{
GenerateCodes(my_code)
GenerateCodes(right_code)
l=CompareCodes(right_code,my_code)
if(l>=0 &&l<6)
{
np[l]++
}
if(bDisplay)
{
cout<<"投注号码:"
for(i=0i<6i++)
{
cout<<my_code[i]<<", "
}
cout<<"开奖号码:"
for(i=0i<6i++)
{
cout<<right_code[i]<<", "
}
cout<<"您中了 "<<l<<" 等奖\n"
}
}
//统计结果
fstream fileOut
fileOut.open("Output.txt",ios_base::out)
cout<<"模拟结果:\n"
fileOut<<"模拟结果:\n"
for(c=0c<6c++)
{
prop[c] = 1.0* np[c] / simuCount
cout<<c<<" 等奖的中奖概率:"<<prop[c]*100<<"%\n"
fileOut<<c<<" 等奖的中奖概率:"<<prop[c]*100<<"%\n"
}
fileOut.close()
}
}
main()
{
cout<<"体育彩票的投彩和开奖过程模拟\n"
Lottery lot
lot.InitLottery()
lot.Simulate()
}
将就看下吧<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<button id="buySelef">买一张(自选)</button>
<button id="buyRandom">买一张(机选)</button>
<button id="result">买一张(开奖)</button>
<div id='resultList'>
<span>结果</span>
</div>
</body>
</html>
<script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script>
window.Prize={LotteryResults:0 }
$("#buySelef").click(function(){
var num = Math.floor(Math.random() * (300 - 100) ) + 100
$("#resultList").append('<p>自选结果:'+num+'<p>')
})
$("#buyRandom").click(function(){
var num = Math.floor(Math.random() * (300 - 100) ) + 100
$("#resultList").append('<p>禅升机选结果:'+num+'<p>')
})
$("#result").click(function(){
if(window.Prize.LotteryResults<=0)
{
var num = Math.floor(Math.random() * (300 - 100) ) + 100
window.Prize.LotteryResults=num
}
else{
var num = window.Prize.LotteryResults
}
$("#result").append('<p>开奖结果:'+num+'逗派<p>山袭贺')
})
</script>
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)