30选7的所有号码有2035800个
C7-30=30X29X28X27X26X25X24/7X6X5X4X3X2X1=2035800种
1 2 3 4 5 6 7到24 25 26 27 28 29 30
考虑将所有的可能组合都写出来并存入数据库
代码如下
public class QLC_ProductALLNumber {
//样本数组合
Integer one []={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24};
Integer two []={2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25};
Integer three []={3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26};
Integer four []={4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27};
Integer five []={5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28};
Integer six []={6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29};
Integer seven []={7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30};
Integer count=0;
public void productNumber()
{
//遍历取第一个数字
for(int i=0;i<one.length;i++)
{
int int_qlc_one =one[i];
// 遍历取第二个数字
for(int j=0;j<two.length;j++)
{
int int_qlc_two = two[j];
if(int_qlc_one<int_qlc_two)
{
// 遍历取第三个数字
for(int k=0;k<three.length;k++)
{
int int_qlc_three = three[k];
if(int_qlc_two<int_qlc_three)
{
// 遍历取第四个数字
for(int h=0;h<four.length;h++)
{
int int_qlc_four = four[h];
if(int_qlc_three<int_qlc_four)
{
// 遍历取第五个数字
for(int f=0;f<five.length;f++)
{
int int_qlc_five = five[f];
if(int_qlc_four<int_qlc_five)
{
// 遍历取第六个数字
for(int s=0;s<six.length;s++)
{
int int_qlc_six = six[s];
if(int_qlc_five<int_qlc_six)
{
// 遍历取第七个数字
for(int z=0;z<seven.length;z++)
{
int int_qlc_seven = seven[z];
if(int_qlc_six<int_qlc_seven)
{
count++;
T_qlcallBean qlcall = new T_qlcallBean();
qlcall.setH1(String.valueOf(int_qlc_one));
qlcall.setH2(String.valueOf(int_qlc_two));
qlcall.setH3(String.valueOf(int_qlc_three));
qlcall.setH4(String.valueOf(int_qlc_four));
qlcall.setH5(String.valueOf(int_qlc_five));
qlcall.setH6(String.valueOf(int_qlc_six));
qlcall.setH7(String.valueOf(int_qlc_seven));
try {
qlcall.insert();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(count);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
计算了一下时间,我使用的事xp笔记本 CPU是2Ghz,内存2G,mysql数据库 大于跑完用16个小时
自己做了下测试 如果不插入数据库仅仅是生成数据大约需要32分钟
后来将id的策略改为手动生成,并没提高速度反而慢了一点
改成多线程理论速度应该在5个小时内
感觉当时应该选择sqlserver数据库