十一选五 胆拖 中奖 算法

十一选五 胆拖 中奖 算法


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

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




//此代码不全 

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");
	}

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值