其中第二题是在第一题基础上的,第三题是在第二题基础上的1)1 2 3 4 5 6 7 8 9 10 中选两个号8 9 10 11 12 13 14 15 16 17 18 19 20 中选一个号21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45中
来源:学生作业帮助网 编辑:六六作业网 时间:2025/02/02 13:33:02
其中第二题是在第一题基础上的,第三题是在第二题基础上的1)1 2 3 4 5 6 7 8 9 10 中选两个号8 9 10 11 12 13 14 15 16 17 18 19 20 中选一个号21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45中
其中第二题是在第一题基础上的,第三题是在第二题基础上的
1)1 2 3 4 5 6 7 8 9 10 中选两个号
8 9 10 11 12 13 14 15 16 17 18 19 20 中选一个号
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45中选3个号
让他们自由组合成6个号
同时排列需要从小到大排列.
结果
2)在组合中要求有4 8 12 14 16 18 20 25 30 中的任意两个
在组合中要求有1 2 3 5 9 13 15 17 30 38 44 45 中有任意的一个号
剩下的中含有三个号
同时排列需要从小到大排列.
结果
3)组合中 4 5 6 7 10 11 12 13 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 至少含有四个号
组合中 4 5 6 7 10 11 12 13 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 含有任意的五个号
同时排列需要从小到大排列.
结果
其中第二题是在第一题基础上的,第三题是在第二题基础上的1)1 2 3 4 5 6 7 8 9 10 中选两个号8 9 10 11 12 13 14 15 16 17 18 19 20 中选一个号21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45中
花了一下午时间把程序写出来了.一次性满足1,2,3个条件
程序代码在vc6.0下编译.在cmd里运行程序,重定向输出到一个文件可以得到如下数据:
1 4 10 23 24 25
1 4 10 23 24 30
1 4 10 23 25 26
1 4 10 23 25 27
...
等等.数据量非常大啊,不知道是不是弄错了,但是对照你的条件好像都满足.
程序代码如下,时间紧凑,没怎么好好想算法,用了比较笨的方法.
// lottery.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include <iostream>
int num[1400000][6];//ΪÁËÊ¡Ê£¬Ö±½Ó¶¨ÒåÒ»¸ö¾Þ´óÊý×é
long len;
void chooseNum()
{
len=0;
for(int ia=1;ia<=10;ia++)
{
for(int ja=ia+1;ja<=10;ja++)
{
for(int ib=8;ib<=20;ib++)
{
for(int ic=21;ic<=45;ic++)
{
for(int jc=ic+1;jc<=45;jc++)
{
for(int kc=jc+1;kc<=45;kc++)
{
num[len][0]=ia;
num[len][1]=ja;
num[len][2]=ib;
num[len][3]=ic;
num[len][4]=jc;
num[len][5]=kc;
int label1=0;
int label2=0;
int label3=0;
int label4=0;
for(int i=0;i<6;i++)
{
switch (num[len][i])
{
case 4:
label1++;
break;
case 8:
label1++;
break;
case 12:
label1++;
break;
case 14:
label1++;
break;
case 16:
label1++;
break;
case 18:
label1++;
break;
case 20:
label1++;
break;
case 25:
label1++;
break;
case 30:
label1++;
break;
} //end switch
} //check for num
for(int j=0;j<6;j++)
{
switch (num[len][j])
{
case 1:
label2++;
break;
case 2:
label2++;
break;
case 3:
label2++;
break;
case 5:
label2++;
break;
case 9:
label2++;
break;
case 13:
label2++;
break;
case 15:
label2++;
break;
case 17:
label2++;
break;
case 30:
label2++;
break;
case 38:
label2++;
break;
case 44:
label2++;
break;
case 45:
label2++;
break;
} //end switch
} //check for num
for(int k=0;k<6;k++)
{
switch (num[len][k])
{
case 4:
label3++;
break;
case 5:
label3++;
break;
case 6:
label3++;
break;
case 7:
label3++;
break;
case 10:
label3++;
break;
case 11:
label3++;
break;
case 12:
label3++;
break;
case 13:
label3++;
break;
case 23:
label3++;
break;
case 24:
label3++;
break;
case 25:
label3++;
break;
case 26:
label3++;
break;
case 27:
label3++;
break;
case 28:
label3++;
break;
case 29:
label3++;
break;
case 30:
label3++;
break;
case 31:
label3++;
break;
case 32:
label3++;
break;
case 33:
label3++;
break;
case 34:
label3++;
break;
case 35:
label3++;
break;
case 36:
label3++;
break;
case 37:
label3++;
break;
case 38:
label3++;
break;
case 39:
label3++;
break;
case 40:
label3++;
break;
} //end switch
} //check for num
for(int m=0;m<6;m++)
{
switch (num[len][m])
{
case 4:
label4++;
break;
case 5:
label4++;
break;
case 6:
label4++;
break;
case 7:
label4++;
break;
case 10:
label4++;
break;
case 11:
label4++;
break;
case 12:
label4++;
break;
case 13:
label4++;
break;
case 23:
label4++;
break;
case 24:
label4++;
break;
case 25:
label4++;
break;
case 26:
label4++;
break;
case 27:
label4++;
break;
case 28:
label4++;
break;
case 29:
label4++;
break;
case 30:
label4++;
break;
case 31:
label4++;
break;
case 32:
label4++;
break;
case 33:
label4++;
break;
case 34:
label4++;
break;
case 35:
label4++;
break;
case 36:
label4++;
break;
case 37:
label4++;
break;
case 38:
label4++;
break;
case 39:
label4++;
break;
case 40:
label4++;
break;
} //end switch
} //check for num
if(2<=label1&&1<=label2&&4<=label3&&5<=label4)
{
len++;