生成全部的彩票组可能

  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数据库

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值