当前位置: 代码迷 >> Web前端 >> 十一选5 胆拖 中奖 算法
  详细解决方案

十一选5 胆拖 中奖 算法

热度:434   发布时间:2013-10-10 14:14:51.0
十一选五 胆拖 中奖 算法

十一选五 胆拖 中奖 算法


以前的算法是 二中二一个类  三中三 一个类  .. . .    并且算法到后面 写得很长   主要原因是 他把该有多少注  每注进行计算是否中奖的

这个算法是先计算是否中奖 然后 根据中奖情况(胆码中的个数 和 拖码 中的个数来计算总中奖注数 )   并且 拖码全部用这个算法都行




//此代码不全 

package com.sscgameservice.manager.lottery.renxuan.dantuo;

import java.math.BigDecimal;

import com.sscgameservice.manager.lottery.Lottery;
import com.sscgameservice.model.LotteryBean;

public class RXDTBASELottery  extends Lottery{
	/**
	 * 任选胆拖
	 */
	
	private int q; // 几中几    二q中h二  q=2 h=2
	private int h;
	
	
	
	public void setQ(int q) {
		this.q = q;
	}

	public void setH(int h) {
		this.h = h;
	}

	
	//计算中奖注数      strBuy 为开奖号码 中间用 符号链接    
	private  BigDecimal jisuanZhuShu(String[] danMa, String[] tuoMa, String strBuy) {
		int FlagDM = 0;
		int FlagTM = 0;
		for (String string : tuoMa) {
			if(strBuy.indexOf(string.replace(" ", ""))!=-1){
				FlagTM++;
			}
		}
		for (String string : danMa) {
			if(strBuy.indexOf(string.replace(" ", ""))!=-1){
				FlagDM++;
			}
		}
		//
		if(FlagDM+FlagTM >= h  && FlagTM >= 1 && FlagDM >= 1  && danMa.length-FlagDM <= q-h  ){
			//中奖
			
			int zhushu = 1;
			if(h!=5){
				for(int i = FlagTM; i > 1;i--){
					zhushu*=i;
				}
				for(int i = FlagTM-(h-FlagDM); i>1;i--){
					zhushu/=i;
				}
				for(int i = h-FlagDM; i>1;i--){
					zhushu/=i;
				}
				
			}
			
			return new BigDecimal(zhushu); //中奖注数
		}else{
			//没中奖
		}
		
		return new BigDecimal("0");
	}

}


  相关解决方案