最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java算法實現(xiàn)預(yù)測雙色球中獎號碼

 更新時間:2015年12月07日 10:06:43   投稿:hebedich  
這篇文章主要介紹了java算法實現(xiàn)預(yù)測雙色球中獎號碼的相關(guān)資料,需要的朋友可以參考下

雙色球選號規(guī)則紅球是1~33選6個,藍(lán)球1~16選1個。
它有17721088種排列組合,
這個代碼實現(xiàn)了如何將一組雙色球號碼 轉(zhuǎn)換成第n個排列組合數(shù)字,
以及如何根據(jù)第n個排列組合數(shù)字生成一組雙色球號碼。

分析一下今年的中獎號碼所隱含的排列組合序號,也許你會找到規(guī)律,
哈哈,或許你能用它算出下一次的中獎號碼,趕快試試吧!

DoubleColorBall.java

import java.util.Arrays;
 
public class DoubleColorBall {
  /**
   * 根據(jù)雙色球生成絕對序號(原理:排列組合算法)
   * a b c d e f 是紅球由小到大 g是藍(lán)球
   */
  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;
  }
  /**
   * 根據(jù)絕對序號生成雙色球(原理:遍歷所有組合)
   * 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++){//最多循環(huán)1107568次,即為紅球組合數(shù)
      count++;
      if(redIndex==count){
        return Arrays.toString(new int[]{a,b,c,d,e,f,1+((int)ballIndex-1)%16});
      }
    }
    return null;
  }
  /**
   * 計算組合數(shù)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日開獎結(jié)果對應(yīng)序號:
    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日開獎結(jié)果對應(yīng)序號:
    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日開獎結(jié)果對應(yīng)序號:
    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("預(yù)測下次開獎號碼,趕快去買吧!");
    System.out.println(getBall(System.nanoTime()));
  }
}

另外附上java雙色球復(fù)式號碼,排列組合出所有單注號碼

public class Test {

	/**
	* 雙色球復(fù)式組合
	* @param redBall	紅球數(shù)組
	* @param blueBall	籃球數(shù)組
	* @return	產(chǎn)生的組合個數(shù)
	*/
	public static int getDoubleChromosphere(Integer [] redBall,int [] blueBall){
		
		int count = 0;//產(chǎn)生的組合個數(shù)
		
		List<Integer> result = new LinkedList<Integer>();;//產(chǎn)生的雙色球組合
		
		//外層循環(huán)控制籃球
		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]);
				
				//輸出組合結(jié)果
				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);
				
				//組合數(shù)加一
				count++;
			}
		}
		return count;
	}
}

相關(guān)文章

  • 聊聊注解@controller@service@component@repository的區(qū)別

    聊聊注解@controller@service@component@repository的區(qū)別

    這篇文章主要介紹了聊聊注解@controller@service@component@repository的區(qū)別,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • IDEA修改生成jar包名字的兩種方法實現(xiàn)

    IDEA修改生成jar包名字的兩種方法實現(xiàn)

    本文主要介紹了IDEA修改生成jar包名字的兩種方法實現(xiàn),通過簡單的步驟,您可以修改項目名稱并在打包時使用新的名稱,具有一定的參考價值,感興趣的可以了解下
    2023-08-08
  • JAVA HTTP反向代理實現(xiàn)過程詳解

    JAVA HTTP反向代理實現(xiàn)過程詳解

    這篇文章主要介紹了JAVA HTTP反向代理實現(xiàn)過程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • Spring Boot2.x如何自定義Endpoint

    Spring Boot2.x如何自定義Endpoint

    這篇文章主要介紹了Spring Boot2.x如何自定義Endpoint,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • springboot如何配置Filter過濾器

    springboot如何配置Filter過濾器

    這篇文章主要介紹了springboot如何配置Filter過濾器問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • idea運行tomcat報錯找不到catalina.bat,系統(tǒng)找不到指定的文件問題

    idea運行tomcat報錯找不到catalina.bat,系統(tǒng)找不到指定的文件問題

    這篇文章主要介紹了idea運行tomcat報錯找不到catalina.bat,系統(tǒng)找不到指定的文件問題,具有很好的參考價值,希望對大家有所幫助,
    2023-11-11
  • Java超詳細(xì)講解設(shè)計模式之一的工廠模式

    Java超詳細(xì)講解設(shè)計模式之一的工廠模式

    工廠模式有 3 種不同的實現(xiàn)方式,分別是簡單工廠模式、工廠方法模式和抽象工廠模式,工廠模式最大的特點就是解耦合,本篇帶你詳細(xì)了解它
    2022-03-03
  • Mybatis-Plus中的條件參數(shù)使用

    Mybatis-Plus中的條件參數(shù)使用

    這篇文章主要介紹了Mybatis-Plus中的條件參數(shù)使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-05-05
  • Java基礎(chǔ)知識之CharArrayReader流的使用

    Java基礎(chǔ)知識之CharArrayReader流的使用

    這篇文章主要介紹了Java基礎(chǔ)知識之CharArrayReader流的使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • spring?boot使用@Async注解解決異步多線程入庫的問題

    spring?boot使用@Async注解解決異步多線程入庫的問題

    最近在寫項目是需要添加異步操作來提高效率,所以下面這篇文章主要給大家介紹了關(guān)于spring?boot使用@Async注解解決異步多線程入庫問題的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-05-05

最新評論

冀州市| 莲花县| 大渡口区| 吴忠市| 新宾| 东乌珠穆沁旗| 肃南| 交城县| 原阳县| 江永县| 瑞安市| 水富县| 广平县| 仪陇县| 新昌县| 班戈县| 清新县| 古交市| 揭东县| 来安县| 皋兰县| 灵石县| 雅江县| 天门市| 逊克县| 沂南县| 温泉县| 荥经县| 涟水县| 乌兰察布市| 临颍县| 莒南县| 榆树市| 绥中县| 敦煌市| 灵山县| 新昌县| 体育| 潞西市| 平南县| 涿鹿县|