iOS 双色球 大乐透 计算注数与金额 胆拖

1.计算双色球注数需要用到排列组合算法固定公式

- (NSInteger)combinationSelectedNum:(NSInteger)n rulesNum:(NSInteger)m{
    if (n < 1 || m < 0 || n < m) {
        return 0;
    }
    // 第一种
    if (m == 0 || m == n) {
        return 1;
    }
    // 第二种
    if (m == 1 || m == n - 1) {
        return n;
    }
    // 第四种 -> 为了减少while循环
    if (m > n / 2) {
        return [self combinationSelectedNum:n rulesNum:n-m];
    }
    // 第三种
    int numerator = 1;
    int denominator = 1;
    while (m > 0) {
        numerator *= n;
        n--;
        
        denominator *= m;
        m--;
    }
    return numerator / denominator;
}

2.计算双色球普通选择的注数

//计算普通双色球默认选中的数量 与金额
- (void)calculateTheDoubleChromosphereDefault:(BallType)ballType{
    BallSectionModel *redBall = self.ballListArray.firstObject;
    BallSectionModel *buleBall = self.ballListArray.lastObject;
    NSInteger redRulesNum =0;
    NSInteger buleRulesNum =0;
    if (ballType == DoubleChromosphereBall) {
     //双色球
        redRulesNum = 6;
        buleRulesNum = 1;
    }else if (ballType ==DringsType){
        //大乐透
        redRulesNum = 5;
        buleRulesNum = 2;
    }
    NSInteger redNum =  [redBall combinationSelectedNum:redBall.ballSelectedNum rulesNum:redRulesNum];
    NSInteger buleNum =  [buleBall combinationSelectedNum:buleBall.ballSelectedNum rulesNum:buleRulesNum];
    //得到注数
    self.noteNumber = [NSString stringWithFormat:@"%ld",redNum * buleNum];
    self.price = [NSString stringWithFormat:@"%.2f",self.noteNumber.doubleValue *2.0f];
}

2.计算双色球胆拖选择的注数

//计算普通双色球胆拖 注数与金额
- (void)calculateTheDoubleChromospherebileDrag:(BallType)ballType{
    //M 拖码
    NSInteger redNum = 0;
    NSInteger buleNum = 0;;
    //计算双色球
    if (ballType == DoubleChromosphereBall) {
        //胆码
        BallSectionModel *braveryBall = self.ballListArray.firstObject;
        //拖码
        BallSectionModel *dragBall = self.ballListArray[1];
        //篮球
        BallSectionModel *buleBall = self.ballListArray.lastObject;
        redNum =  [braveryBall combinationSelectedNum:dragBall.ballSelectedNum rulesNum:6-braveryBall.ballSelectedNum];
        buleNum =  [buleBall combinationSelectedNum:buleBall.ballSelectedNum rulesNum:1];
    }
    //大乐透
    if(ballType == DringsType)
    {
        /**
         选了6个红拖码  2个红胆码
         选了3个蓝拖码  1个蓝胆码
         int total = C(6, 5 - 2) * C(3, 2 - 1)
         */
        //胆码
        BallSectionModel *sectionModel1 = self.ballListArray[0];
        BallSectionModel *sectionModel2 = self.ballListArray[1];
        BallSectionModel *sectionModel3 = self.ballListArray[2];
        BallSectionModel *sectionModel4 = self.ballListArray[3];
        redNum =  [self combinationSelectedNum:sectionModel3.ballSelectedNum rulesNum:5-sectionModel1.ballSelectedNum];

        buleNum =  [self combinationSelectedNum:sectionModel4.ballSelectedNum rulesNum:2 -sectionModel2.ballSelectedNum];
    }
//    注数
    self.noteNumber = [NSString stringWithFormat:@"%d",redNum * buleNum];
    self.price = [NSString stringWithFormat:@"%.2f",self.noteNumber.doubleValue *2.0f];
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • “双色球”游戏规则: 1、双色球”彩票投注区分为红色球号码区和蓝色球号码区。 2、“双色球”每注投注号码由6个红色...
    一头爱学习的猪阅读 19,937评论 3 0
  • 我想我真想我好想 痛痛快快地哭一场 去浇灭那火 我强我真强我好强 一滴眼泪也流不出来 泪也变成火 我太笨了还是太悲...
    牛不牛语阅读 1,717评论 35 28
  • 文/民京 简书原创首发 图片来自网络,侵删 最近几天都在上夜班,每天最大的感觉就是睡眠不足,临近年关,人也变得焦...
    民京阅读 828评论 4 28
  • 1.早起地铁上打开qq,就看到核桃先生昨晚的睡前晚安问候。 2.下雨天,虽然错过了固定时间点的那班地铁,但还是赶上...
    一帘潇湘梦未已阅读 216评论 0 0

友情链接更多精彩内容