java算法实现预测双色球中奖号码_java

双色球选号规则红球是1~33选6个,蓝球1~16选1个。
它有17721088种排列组合,
这个代码实现了如何将一组双色球号码 转换成第n个排列组合数字,
以及如何根据第n个排列组合数字生成一组双色球号码。

分析一下今年的中奖号码所隐含的排列组合序号,也许你会找到规律,
哈哈,或许你能用它算出下一次的中奖号码,赶快试试吧!

DoubleColorBall.java

import java.util.Arrays;

public class DoubleColorBall {
  /**
   * 根据双色球生成绝对序号(原理:排列组合算法)
   * a b c d e f 是红球由小到大 g是蓝球
   */
  public static final int getBallIndex(int a,int b,int c,int d,int e,int f,int g){
    return (comp(33,6)-comp(34-a,6)+comp(33-a,5)-comp(34-b,5)
        +comp(33-b,4)-comp(34-c,4)+comp(33-c,3)-comp(34-d,3)
        +comp(33-d,2)-comp(34-e,2)+comp(33-e,1)-comp(33-f,1))*16+g;
  }
  /**
   * 根据绝对序号生成双色球(原理:遍历所有组合)
   * a b c d e f 是红球由小到大
   */
  public static final String getBall(long ballIndex){
    if(ballIndex>17721088)ballIndex=ballIndex%17721088;
    int redIndex=(int) (ballIndex/16);
    int count=0;
    for(int a=1;a<29;a++)
    for(int b=a+1;b<30;b++)
    for(int c=b+1;c<31;c++)
    for(int d=c+1;d<32;d++)
    for(int e=d+1;e<33;e++)
    for(int f=e+1;f<34;f++){//最多循环1107568次,即为红球组合数
      count++;
      if(redIndex==count){
        return Arrays.toString(new int[]{a,b,c,d,e,f,1+((int)ballIndex-1)%16});
      }
    }
    return null;
  }
  /**
   * 计算组合数C(m,n)
   */
  public static final int comp(int m, int n)
  {
    int sum=1;
    for(int i=m;i>m-n;i--)sum=sum*i;
    for(int i=n;i>1;i--)sum=sum/i;
    return sum;
  }
  public static void main(String[] args) {
    //11月29日开奖结果对应序号:
    System.out.println(getBallIndex(6,20,28,29,30,31,12));//12964124
    System.out.println(getBall(12964124));//[6, 20, 28, 29, 30, 31, 12]
    //12月1日开奖结果对应序号:
    System.out.println(getBallIndex(3,8,19,25,27,28,2));//7353378
    System.out.println(getBall(7353378));//[3, 8, 19, 25, 27, 28, 2]
    //12月3日开奖结果对应序号:
    System.out.println(getBallIndex(13,17,19,20,22,25,11));//17009451
    System.out.println(getBall(17009451));//[13, 17, 19, 20, 22, 25, 11]
    System.out.println("预测下次开奖号码,赶快去买吧!");
    System.out.println(getBall(System.nanoTime()));
  }
}

另外附上java双色球复式号码,排列组合出所有单注号码

public class Test {

	/**
	* 双色球复式组合
	* @param redBall	红球数组
	* @param blueBall	篮球数组
	* @return	产生的组合个数
	*/
	public static int getDoubleChromosphere(Integer [] redBall,int [] blueBall){

		int count = 0;//产生的组合个数

		List<Integer> result = new LinkedList<Integer>();;//产生的双色球组合

		//外层循环控制篮球
		for(int i = 0;i < blueBall.length;i++){

			//控制红球
			List<Integer> redList = new LinkedList<Integer>();
			for(Integer j : redBall){
				redList.add(j);
			}
			List<Integer> orign = new LinkedList<Integer>();
			orign.addAll(redList);

			for(int k = 0;k < redList.size();k++){
				redList.remove(k);
				result = redList;

				//最后篮球的赋值
				result.add(blueBall[i]);

				//输出组合结果
				System.out.print("红球为:\t");
				for(int j = 0;j < result.size();j++){
					if(6 == j){
						System.out.println("篮球为:\t"+result.get(j));
						break ;
					}
					System.out.print(result.get(j)+"\t");
				}
				System.out.println();

				//清空redLisr,重新赋值
				redList.clear();
				redList.addAll(orign);

				//组合数加一
				count++;
			}
		}
		return count;
	}
}

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索java
双色球预测中奖号、双色球下期预测中奖号、双色球中奖预测、复试双色球中奖算法、双色球中奖算法,以便于您获取更多的相关知识。

时间: 2024-11-02 16:30:02

java算法实现预测双色球中奖号码_java的相关文章

C#实现简单的双色球抽取中奖号码代码_C#教程

废话不多说,直接给大家贴代码,我我就是这么狠... 关键代码如下所示: int[] ss = new int[6]; Random s = new Random(); Console.WriteLine("双色球随机:"); for (int i = 0; i < 6; i++) { bool b = true; int a = s.Next(1, 34); for (int j = 0; j < i; j++) { if (a == ss[j]) { b = false;

Java算法之递归算法计算阶乘_java

本文为大家分享的java算法计算阶乘,在学习Java课程时经常会遇到求阶乘问题,今天接跟大家一起探讨一下 代码如下: package com.xu.main; import java.util.Scanner; public class P9 { static long fact(int n) { if(n <= 1) { return 1; } else { return n * fact(n - 1); } } public static void main(String[] args) {

链表-求助Java算法,这两个算法问题有Java代码实现

问题描述 求助Java算法,这两个算法问题有Java代码实现 从N个元素集合里面随机抽取M个元素(M<N). C/C++: void randomChoose(int*data, intn, int *result, int m); Java: void randomChoose(int data[], int result[]); 说明: 1.Data是待抽取的元素集合,n是data的长度,result是抽取的结果,m是结果集的长度. 2.同一个元素不能被反复抽取. 3.每个元素被抽取到的概率

JAVA算法实现图片透明化渐变

问题描述 JAVA算法实现图片透明化渐变 关于实现图像黑白的颜色渐变可以实现.用每行的红绿蓝都逐渐减少就能实现. 但是上面要求提供一个算法把传进来的图片覆盖一层从透明黑色的阴影逐渐变成透明的效果. 求指导~~ 要是能把源码发来就跟好了~~ 解决方案 源代码肯定是没有的,需要你自己实现. 图片,是什么格式的呢?BMP,还是 PNG? 要处理图片,你首先要能读到图片未处理前的每像素的数值吧,如果能读到,做黑白渐变只是简单的修改读到的 RGB 的数值. 透明黑色的阴影,如果是 PNG 格式,则可以通过

java算法题,公司的笔试题

问题描述 java算法题,公司的笔试题 suppose you have N cakes, N is an interger>0 // at each time, you can either eat 1 cake, or 2 cakes or 3 cakes // PROBLEM: How many ways can you eat all N cakes // for example, N = 4, (1,2,1) and (1,1,2) are considered to be diffe

百度知道-【java算法题】凑凑凑凑凑凑字数

问题描述 [java算法题]凑凑凑凑凑凑字数 题目:标题:猜字母???把abcd...s共19个字母组成的序列重复拼接106次,得到长度为2014的串.???接下来删除第1个字母(即开头的字母a),以及第3个,第5个等所有奇数位置的字母.??得到的新串再进行删除奇数位置字母的动作.如此下去,最后只剩下一个字母,请写出该字母./-----------------------------------从百度知道查看但是不懂 1024 和他的思维求大神解惑 /----------------------

c语言-电话号码本算法问题中一人多号码问题的解决方案

问题描述 电话号码本算法问题中一人多号码问题的解决方案 设计一个电话号码本算法,要求人物有两个及以上的电话号码的情况的C语言代码实现 解决方案 如果你不考虑可扩展性和内存的浪费问题,那么下面这个基本符合你的要求,注意:这里没有进行错误检测,和内存回收,这个自己可以稍加修改 #include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct _CallBookMark{ char name[30];

帮忙推荐一本JAVA算法的书!

问题描述 这几天准备买本JAVA算法的书,主要用来这几天找工作笔试编程题目.希望高手推荐一本好书给我.本人已经学过J2SE,J2EE.主要找J2EE工作.还有谁知道哪有下SPRING的视频教学谢谢... 解决方案 曾经回答过的, copy自: http://www.iteye.com/problems/1691<数据结构与算法-Java语言版>.机械工业出版社出版的.个人感觉很不错.整本书围绕代码而展开,每一个数据结构都从一个简单的Java代码开始,逐渐深入.同时,每章都会有一个专门针对当前数

java算法之数独游戏揭秘?

问题描述 java算法之数独游戏揭秘? 数独游戏的基本解法? 解决方案 Java 8支持Stream API和Lambda表达式,所以和C#写起来几乎是一样的. 解决方案二: 只要穷举即可.http://bbs.csdn.net/topics/390039859 解决方案三: 请指教 /* * 文 件 名: A.java * 版 权: . Copyright YYYY-YYYY, All rights reserved * 描 述: <描述> * 修 改 人: ShangZhang * 修改时