十一选五 胆拖 中奖 算法
以前的算法是 二中二一个类 三中三 一个类 .. . . 并且算法到后面 写得很长 主要原因是 他把该有多少注 每注进行计算是否中奖的
这个算法是先计算是否中奖 然后 根据中奖情况(胆码中的个数 和 拖码 中的个数来计算总中奖注数 ) 并且 拖码全部用这个算法都行
//此代码不全
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");
}
}