📄 main.cpp
字号:
#include<iostream.h>
#include<stdlib.h>
#include<time.h>
double g[201];
double s=0;
int n,m;
int a[200][8]={
2007118,4,10,16,18,25,32,15,
2007119,3,8,11,13,25,31,12,
2007120,6,7,11,12,18,25,1,
2007121,3,10,21,22,27,28,6,
2007122,4,7,19,24,26,32,9,
2007123,1,13,15,23,28,32,2,
2007124,3,7,13,16,19,32,16,
2007125,3,5,18,20,27,33,1,
2007126,9,10,19,23,26,31,9,
2007127,6,9,13,16,24,28,11,
2007128,9,10,19,21,27,31,5,
2007129,5,7,20,21,22,30,8,
2007130,3,5,9,11,27,31,4,
2007131,3,5,7,16,22,27,5,
2007132,1,9,16,21,22,23,5,
2007133,3,6,7,11,13,33,10,
2007134,1,4,10,13,18,25,15,
2007135,1,11,16,26,31,33,16,
2007136,1,2,18,21,25,29,14,
2007137,3,7,8,18,20,22,3,
2007138,2,3,15,17,19,25,16,
2007139,6,10,12,14,16,22,6,
2007140,1,5,16,21,22,26,11,
2007141,2,3,4,6,17,31,8,
2007142,11,20,25,26,27,30,8,
2007143,1,6,22,23,24,26,4,
2007144,8,14,23,25,28,32,16,
2007145,8,9,11,12,25,31,11,
2007146,4,18,22,24,26,30,9,
2007147,3,7,18,24,26,27,4,
2007148,3,9,16,17,23,28,7,
2007149,1,17,19,22,28,30,3,
2007150,3,5,11,13,19,24,5,
2007151,1,6,10,11,23,25,2,
2007152,11,17,21,29,30,33,8,
2007153,1,4,19,20,25,31,15,
2008001,2,4,7,9,14,29,3,
2008002,3,4,18,22,25,29,9,
2008003,6,8,11,13,17,19,12,
2008004,4,8,22,23,27,29,8,
2008005,3,5,15,22,24,25,15,
2008006,1,14,16,18,22,27,14,
2008007,1,13,17,22,23,30,11,
2008008,2,15,16,23,26,27,7,
2008009,9,21,29,30,31,32,16,
2008010,3,8,11,17,21,27,9,
2008011,2,14,17,21,30,32,3,
2008012,3,4,5,16,20,30,13,
2008013,2,8,15,16,22,28,10,
2008014,3,9,11,17,21,31,14,
2008015,6,8,11,16,29,33,3,
2008016,3,12,14,21,29,33,13,
2008017,2,5,7,17,20,22,2,
2008018,2,5,6,23,26,33,13,
2008019,2,9,11,17,27,31,5,
2008020,3,10,13,15,28,30,3,
2008021,9,12,19,20,26,28,15,
2008022,12,18,20,24,28,32,5,
2008023,8,16,18,25,26,32,2,
2008024,11,20,21,26,28,30,13,
2008025,8,16,17,18,19,21,14,
2008026,5,17,19,27,29,32,3,
2008027,15,18,19,23,24,26,13,
2008028,1,13,21,26,29,32,10,
2008029,1,9,14,22,29,32,12,
2008030,6,15,18,19,20,28,11,
2008031,3,6,11,15,21,31,13,
2008032,5,14,16,21,23,28,13,
2008033,12,17,18,30,31,33,4,
2008034,3,5,9,11,21,29,9,
2008035,7,11,14,17,18,29,16,
2008036,2,6,13,18,23,28,16,
2008037,1,12,22,24,28,31,6,
2008038,3,9,10,11,15,19,13,
2008039,1,7,10,13,22,29,1,
2008040,6,13,22,25,27,28,9,
2008041,8,11,20,22,23,27,4,
2008042,3,4,9,11,12,24,1,
2008043,3,10,16,22,27,33,14,
2008044,5,7,9,20,26,29,9,
2008045,1,10,13,21,29,32,4,
2008046,15,16,18,24,28,33,15,
2008047,9,12,13,14,20,22,10,
2008048,11,18,21,27,30,32,1,
2008049,3,10,12,13,19,25,4,
2008050,1,11,19,24,26,27,3,
2008051,1,4,8,10,13,33,11,
2008052,2,10,17,23,29,31,10,
2008053,6,12,19,20,21,27,4,
2008054,2,6,16,17,20,25,7,
2008055,11,16,19,23,26,31,4,
2008056,8,13,22,23,25,30,7,
2008057,19,20,21,26,28,30,8,
2008058,1,12,21,27,29,31,11,
2008059,2,6,15,29,31,32,16,
2008060,6,7,8,17,30,32,3,
2008061,1,2,5,12,26,31,6,
2008062,6,8,13,17,24,27,15,
2008063,5,9,11,14,16,17,15,
2008064,1,2,7,9,12,18,12,
2008065,5,13,15,19,30,31,5,
2008066,7,12,21,22,29,30,8,
2008067,10,11,15,19,26,33,13,
2008068,5,7,17,23,27,29,7,
2008069,5,8,17,20,26,30,10,
2008070,5,6,12,15,18,33,13,
2008071,1,6,21,26,27,28,9,
2008072,1,5,10,18,22,30,9,
2008073,1,9,13,22,28,33,8,
2008074,1,11,15,19,20,24,9,
2008075,1,8,14,18,22,30,3,
2008076,2,5,7,11,13,18,11,
2008077,4,12,22,26,30,33,9,
2008078,6,13,16,26,30,33,1,
2008079,3,4,5,10,20,32,9,
2008080,4,14,22,25,29,32,14,
2008081,2,12,13,18,25,31,4,
2008082,4,8,10,12,21,26,9,
2008083,7,8,9,18,29,32,9,
2008084,4,7,13,20,29,30,16,
2008085,1,4,12,20,24,29,15,
2008086,4,5,10,26,27,30,12,
2008087,1,7,26,29,30,31,6,
2008088,1,6,8,16,17,23,5,
2008089,3,6,11,16,22,27,11,
2008090,2,7,14,18,19,24,1,
2008091,3,12,14,23,31,32,10,
2008092,1,3,18,27,28,30,5,
2008093,4,10,12,16,26,28,7,
2008094,1,4,15,16,23,28,14,
2008095,3,8,14,21,28,29,3,
2008096,6,8,12,24,27,31,14,
2008097,3,6,8,9,16,17,13,
2008098,6,7,10,11,15,30,1,
2008099,10,15,16,22,23,24,7,
2008100,8,14,17,21,27,28,14,
2008101,9,17,21,26,28,30,4,
2008102,3,7,12,21,25,32,5,
2008103,1,12,16,18,22,33,4,
2008104,3,6,8,17,24,31,1,
2008105,5,17,19,27,28,32,2,
2008106,14,19,25,27,29,30,15,
2008107,6,13,18,22,27,32,4,
2008108,9,10,15,17,23,30,12,
2008109,4,7,9,16,21,28,10,
2008110,10,16,22,23,29,31,2,
2008111,17,18,21,25,31,32,6,
2008112,5,13,14,19,22,23,6,
2008113,6,9,10,12,17,22,9,
2008114,4,9,20,24,25,31,14,
2008115,2,12,13,14,17,18,6,
2008116,3,7,21,22,24,29,14,
2008117,3,5,7,10,14,33,7,
2008118,4,9,16,27,31,33,1,
2008119,5,7,9,15,24,29,7,
2008120,10,11,22,24,26,33,2,
2008121,2,22,23,27,31,32,6,
2008122,2,8,11,14,19,26,15,
2008123,10,11,15,16,25,29,2,
2008124,1,7,10,13,21,22,3,
2008125,10,11,12,15,26,29,9,
2008126,4,11,12,14,20,30,13,
2008127,5,8,19,22,27,30,13,
2008128,1,5,19,20,27,33,5,
2008129,1,3,18,24,25,32,15,
2008130,1,12,18,28,30,32,6,
2008131,2,12,15,18,22,32,8,
2008132,9,13,16,25,27,33,8,
2008133,8,11,16,19,24,26,11,
2008134,10,15,19,20,28,32,2,
2008135,5,14,15,16,19,21,15,
2008136,5,9,10,12,18,28,2,
2008137,1,4,24,28,29,33,9,
2008138,7,14,19,23,25,32,4,
2008139,8,9,19,23,25,26,7,
2008140,7,14,16,29,30,31,14,
2008141,3,13,20,25,29,33,15,
2008142,5,6,10,13,17,28,15,
2008143,12,17,18,19,26,27,6,
2008144,2,5,10,27,29,33,15,
2008145,7,13,18,22,26,29,2,
2008146,7,8,17,19,31,32,10,
2008147,7,8,14,22,26,33,2,
2008148,3,5,9,22,26,28,9,
2008149,10,14,22,28,29,33,2,
2008150,4,19,22,24,29,32,2,
2008151,6,8,10,14,17,19,6,
2008152,1,4,6,22,26,30,8,
2008153,1,4,18,21,24,30,16,
2008154,2,5,7,21,22,26,8,
2009001,4,21,23,24,30,31,4,
2009002,10,14,17,25,29,33,14,
2009003,2,3,6,15,25,30,2,
2009004,3,11,13,17,28,31,3,
2009005,1,3,8,15,17,21,13,
2009006,6,12,18,20,26,33,2,
2009007,1,5,12,23,25,26,15,
2009008,4,15,16,22,32,33,2,
2009009,8,15,21,30,31,33,2,
2009010,3,10,17,19,20,24,2,};
int c[6]={-1,-1,-1,-1,-1,-1,};
int c0[6];
int chuli(char b[1][20]);
void paicl(int c0[7],int );
void cl(int bum1,int n,int s);
void paixu(int c[],int);
double gailu();
int panduan(int kc[6],int);
int main()
{
int y=1,x=1,kc[6];
long t;
while(y)
{
int i,j=0;
s=0;
char b[1][20];
while(1)
{
cout<<"*******************功能1*******************"<<endl;
cout<<"输入一组数据(6个整数组成,每个数据用空格隔开)"<<endl;
for(i=0;i<6;i++)
{
cin>>c0[i];
if(c0[0]==0)
break;
}
if(c0[0]==0)
break;
paixu(c0,6);
cout<<"输入元素个数"<<endl;
cin>>n;
if(n==0)
break;
paicl(c0,n);
s=0;
cout<<endl;
cout<<"是否继续功能1?(是输入1,否输入0)"<<endl;
cin>>x;
if(x==0)
break;
}
cout<<"是否进入功能2(是 输入1,否输入0)"<<endl;
cin>>x;
cout<<endl;
while(x)
{
s=0;
cout<<"*******************功能2*******************"<<endl;
cout<<"输入要统计的组数"<<endl;
cin>>m;
if(m==0)
break;
while(m)
{
j++;
cout<<endl;
cout<<"输入第"<<j<<"组数据(数据与数据间用“*”号隔开)"<<endl;
for(i=0;i<20;i++)
b[0][i]='#';
cin>>b[0];
if(b[0][0]=='0')
break;
n=chuli(b);
g[j]=gailu();
s=s+g[j];
m--;
//cout<<n<<endl;
}
s=s/j;
cout<<"经统计,上述数据平均概率为"<<s<<"%"<<endl;
break;
}
while(1)
{
cout<<"*******************功能3*******************"<<endl;
cout<<"输入生成序列组数"<<endl;
cin>>n;
srand((unsigned)time(&t));
if(n==0)
break;
while(n)
{
for(i=0;i<6;i++)
{
kc[i]=rand()%(33)+1;
if(panduan(kc,i))
i--;
else
cout<<kc[i]<<" ";
}
cout<<endl;
n--;
}
cout<<"是否继续功能3?(是 输入1,否输入0)"<<endl;
cin>>n;
if(n==0)
break;
}
cout<<"是否继续?(是 输入1,否输入0)"<<endl;
cin>>y;
cout<<endl;
}
return 0;
}
int chuli(char b[1][20])
{
int i, i1,j1=0,j=0,x=0,k=0;
for(i=0;i<20;i++)
{
if(b[0][i]=='*')
{
for(i1=j1;i1<i;i1++)
{
k=b[0][i1]-48+k*10;
}
c[j]=k;
j++;
x++;
j1=i+1;
k=0;
}
else if(b[0][i]=='#')
break;
}
for(i1=j1;i1<i-1;i1++)
{
k=b[0][i1]-48+k*10;
}
c[j]=k;
j++;
x++;
j1=i+1;
k=0;
paixu(c,x);
/*for(i=0;i<7;i++)
{
if(c[i]!=-1)
cout<<c[i]<<" ";
else if(c[i]==-1)
break;
}*/
cout<<endl;
return x;
}
double gailu()
{
int i,j,k=0;
double g1,x=0;
for(i=0;i<200;i++)
{
j=1;
while(1)
{
if(c[k]==a[i][j])
{
//cout<<"c["<<k<<"]="<<c[k]<<endl;
//cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<endl;
//cout<<"Y"<<endl;
k++;
}
else
j++;
if(k>=n)
break;
if(j>=7)
break;
}
if(k==n)
{
cout<<"第"<<a[i][0]<<"期出现过该组数据"<<endl;
x++;
}
k=0;
}
g1=double(x/200.0);
cout<<"该组数据出现概率为"<<g1<<"%"<<endl;
return g1;
}
void paicl(int c0[7],int n)
{
int b=0,bum1,bum2,bum3,num1,num2,num3,ij;
int i,j=1;
int sk=0;
if(n==2||n==4)
sk=15;
else if(n==1||n==5)
sk=6;
else if(n==3)
sk=20;
else if(n==6)
sk=1;
for(i=1;i<=n;i++)
{
b=b*10+j;
j++;
}
//cout<<"b="<<b<<endl;
bum1=b;
bum2=b;
bum3=b;
num1=n;
num2=n;
num3=n;
i=1;
j=1;
ij=1;
int skc=sk;
int jum=0;
while(1)
{
//cout<<bum1<<endl;
cl(bum1,n,sk);
bum1=bum1+1;
if(bum1%10>6)
{
bum1=bum2+11*i;
i++;
//num1=num1-1;
if(i==6-num1+2)
{
//cout<<"i="<<i<<endl;
bum2=bum2+111;
bum1=bum2;
num1=num1+1;
//cout<<"num1="<<num1<<endl;
i=1;
j++;
//cout<<"j="<<j<<endl;
if(j==6-num2+2)
{
bum3=bum3+1111;
bum2=bum3;
bum1=bum2;
num2=num2+1;
//num1=num1-1;
//i--;
num1=n+1;
i=1;
j=1;
ij++;
if(ij==6-num3+2)
{
bum1=b+11111;
}
}
}
}
skc--;
jum++;
if(skc==0)
break;
}
cout<<"以上各组平均出现的概率为"<<s/sk<<"%"<<endl;
}
void cl(int bum,int n,int jum)
{
//cout<<bum<<endl;
int kc,sum,i,j=0,sa[6],sb[6],k=0;
sum=bum;
for(i=0;i<n;i++)
{
kc=sum%10;
sa[i]=kc;
//cout<<"sa[n-1]"<<sa[n-2]<<endl;
sum=sum/10;
}
for(i=n-1;i>=0;i--)
{
sb[i]=sa[j];
j++;
}
for(i=0;i<n;i++)
{
c[i]=c0[sb[i]-1];
cout<<c[i]<<" ";
}
cout<<endl;
//cout<<"c0[sb[i]-1]="<<c0[sb[0]-1]<<endl;
double g1,x=0;
for(i=0;i<200;i++)
{
j=1;
while(1)
{
if(c[k]==a[i][j])
{
//cout<<"c["<<k<<"]="<<c[k]<<endl;
//cout<<"a["<<i<<"]["<<j<<"]="<<a[i][j]<<endl;
//cout<<"Y"<<endl;
k++;
}
else
j++;
if(k>=n)
break;
if(j>=7)
break;
}
if(k==n)
{
cout<<"第"<<a[i][0]<<"期出现过该组数据"<<endl;
x++;
}
k=0;
}
g1=double(x/200.0);
s=g1+s;
cout<<"该组数据出现概率为"<<g1<<"%"<<endl;
}
void paixu(int a[6],int k)
{
int bum,i,j;
for(i=0;i<k;i++)
for(j=i+1;j<k;j++)
{
if(a[i]>a[j])
{
bum=a[i];
a[i]=a[j];
a[j]=bum;
}
}
/*for(i=0;i<6;i++)
cout<<a[i]<<" ";*/
}
int panduan(int kc[6],int num)
{
int i;
for(i=0;i<num;i++)
{
if(kc[num]==kc[i])
return 1;
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -