精华内容
下载资源
问答
  • 中奖概率计算

    千次阅读 2009-04-21 16:48:00
    其中中奖的计算比较恶心,用户要改动各个奖项的中奖概率,而且每天的奖项有个数限制。一二三四五六等奖,概率不通,怎么算一个用户参与了中没中将呢?苦思了一下,可以用Random类的 nextInt(int x)方法产生一个范围...

    做移动的项目,有个需求,做个摇奖的活动!其中中奖的计算比较恶心,用户要改动各个奖项的中奖概率,而且每天的奖项有个数限制。一二三四五六等奖,概率不通,怎么算一个用户参与了中没中将呢?苦思了一下,可以用Random类的 nextInt(int x)方法产生一个范围内的随机数,产生到那个区间就是几等奖了,中奖区间的产生是动态的。贴出源代码,仅供参考!

    package Mzone;

    import java.util.ArrayList;
    import java.util.Random;

    public class Mzone {

        /**
        * CopyRright(c)2009-04:
        * Project:
        * Module ID:
        * Comments: 概率计算
        * JDK version used: <JDK1.4>
        * Author:ch
        * Create Date:2009-04-20
        * Modified By:
        * Modified Date:
        * Why & What is modified
        * Version: 1.0
        */
        static Random r = new Random();
       
        public static void main(String[] args) {
           
            //各个奖项的中奖概率的分母
            Integer _5m = new Integer(5);
            Integer _500m = new Integer(30);
            Integer _ipod = new Integer(500);
            Integer _phone = new Integer(1000);
            Integer _notebook = new Integer(1500);
            Integer _jay = new Integer(50);
           
            ArrayList list = new ArrayList();
           
            if(_5m.intValue()!=0)
                list.add(_5m);
            if(_500m.intValue()!=0)
                list.add(_500m);
            if(_ipod.intValue()!=0)
                list.add(_ipod);
            if(_phone.intValue()!=0)
                list.add(_phone);
            if(_notebook.intValue()!=0)
                list.add(_notebook);
            if(_jay.intValue()!=0)
                list.add(_jay);
           
            //计算最小公倍数
            int common = getN(list);
            System.out.println("最小公倍数:"+common);
           
            int a = 0;int b = 0;int c = 0;int d = 0;int e = 0;int f = 0;int g = 0;

            int first = 0;int second = 0;int third = 0;int four = 0;int fifth = 0;int sixth = 0;
           
            if(_5m.intValue()!=0){
                first = common/_5m.intValue();
            }
            if(_500m.intValue()!=0){
                second = first + (common/_500m.intValue());
            }else second = first;
            if(_ipod.intValue()!=0){
                third =  second + (common/_ipod.intValue());
            }else third = second;
            if(_phone.intValue()!=0){
                four =   third + (common/_phone.intValue());
            }else four = third;
            if(_notebook.intValue()!=0){
                fifth =  four + (common/_notebook.intValue());
            }else fifth = four;
            if(_jay.intValue()!=0){
                sixth =  fifth + (common/_jay.intValue());
            }else sixth = fifth;
               
            int times = 30000;//循环次数
           
            for(int i = 0;i < times; i++){
                int ri = getRandom(common);//产生随机数
               
                if(ri >= 0 && ri < first){
                    a++;
                }else if(ri >= first && ri < second){
                    b++;
                }else if(ri >= second && ri < third){
                    c++;
                }else if(ri >= third && ri < four){
                    d++;
                }else if(ri >= four && ri < fifth){
                    e++;
                }else if(ri >= fifth && ri < sixth){
                    f++;
                }else{
                    g++;
                }
            }
           
            System.out.println("5m值:" + a + " 500m值:" + b + " ipodMP3:" + c + " 手机:" + d + " 笔记本电脑:" + e + " 演唱会门票:" + f + " 谢谢参与:" + g);
        }
       
        /**
         * 求最大公约数
        */
        public static int gcd(int m, int n){
            while (true){
                if ((m = m % n) == 0)
                return n;
                if ((n = n % m) == 0)
                return m;
            }
        }
       
        /**
        * 求最小公倍数
        */
        public static int gys(int z, int y){
            int t = 0;
            int c = 0;
            c = gcd(z,y);
            t = z * y / c;
           
            return t;
        }
       
        /**
         * 求几个数的最小公倍数
        */
        public static int getN(ArrayList list){
           
            int t = 1;
           
            for(int i = 0;i<list.size();i++){
                Integer temp = (Integer)list.get(i);
                t = gys(t,temp.intValue());
            }
            return t;
        }
       
        /**
         * 产生随机数
        */
        public static int getRandom(int y){
            int result = r.nextInt(y);
           
            return result;
        }
       
    }

    展开全文
  • 彩票中奖概率计算

    万次阅读 2018-12-06 21:40:07
    彩票中奖概率计算1.双色球彩票研究1.1 玩法1.2 中奖概率1.3 中奖期望1.3.1 奖金&amp;lt;1亿1.3.2 奖金&amp;gt;1亿2.3D彩票研究2.1 玩法2.2单注期望3.7乐彩票研究3.1 玩法3.2.单注概率3.3单注期望4.七星彩4.1...

    0.基本排列组合算法

    import numpy as np
    
    def A_n_m(n,m):
        return float(np.math.factorial(n))/float(np.math.factorial(n-m))
    
    def C_n_m(n,m):
        return  A_n_m(n,m)/np.math.factorial(m)
    
    def Prob(t,n,m):
        return  C_n_m(n,m)*C_n_m(t-n,n-m)/C_n_m(t,n)
    

    1.双色球彩票研究

    1.1 玩法

    红色球 33选6,蓝色球 16选1

    奖金                      中奖方法 
    一等奖             <1亿 70%高等奖+奖金池 单注封顶500w 6+1
                       >1亿 50%高等奖+奖金池+%20 单注封顶1000w          
    二等奖: 30%高等奖 6+0
    三等奖: 3000 5+1
    四等奖: 200 5+0,4+1
    五等奖: 10 4+0,3+1
    六等奖: 5 2+1,1+1,0+1
    

    1.2 中奖概率

    
    #一等奖 6+1
    P_1 = C_n_m(6,6) * C_n_m(27,0) /  C_n_m(33,6) * C_n_m(15,0)* C_n_m(1,1)/ C_n_m(16,1)
    print '一等奖中奖概率(百万人):%10.2f' %(P_1*1000000)
    
    #二等奖 6+0
    P_2 = C_n_m(6,6) * C_n_m(27,0) /  C_n_m(33,6) * C_n_m(1,0)* C_n_m(15,1)/ C_n_m(16,1)
    print '二等奖中奖概率(百万人):%10.2f' %(P_2*1000000)
    
    #三等奖 5+1 
    
    P_3 = C_n_m(6,5) * C_n_m(27,1) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    print '三等奖中奖概率(百万人):%10.2f' %(P_3*1000000)
    
    #四等奖 5+0 ,4+1 
    P_4 = C_n_m(6,5) * C_n_m(27,1) /  C_n_m(33,6) * C_n_m(1,0)* C_n_m(15,1)/ C_n_m(16,1)
    
    P_4 += C_n_m(6,4) * C_n_m(27,2) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    print '四等奖中奖概率(百万人):%10.2f' %(P_4*1000000)
    
    #五等奖 4+0 ,3+1 
    
    P_5 = C_n_m(6,4) * C_n_m(27,2) /  C_n_m(33,6) * C_n_m(1,0)* C_n_m(15,1)/ C_n_m(16,1)
    
    P_5 += C_n_m(6,3) * C_n_m(27,3) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    print '五等奖中奖概率(百万人):%10.2f' %(P_5*1000000)
    
    #六等奖 2+1,1+1,0+1
    
    P_6 = C_n_m(6,2) * C_n_m(27,4) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    
    P_6 += C_n_m(6,1) * C_n_m(27,5) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    
    P_6 += C_n_m(6,0) * C_n_m(27,6) /  C_n_m(33,6) * C_n_m(1,1)* C_n_m(15,0)/ C_n_m(16,1)
    print '六等奖中奖概率(百万人):%10.2f' %(P_6*1000000)
    
    print '总的中奖概率(百万人):%10.2f' %((P_1+P_2+P_3+P_4+P_5+P_6)*1000000)
    

    一等奖中奖概率(百万人): 0.06
    二等奖中奖概率(百万人): 0.85
    三等奖中奖概率(百万人): 9.14
    四等奖中奖概率(百万人): 434.23
    五等奖中奖概率(百万人): 7757.71
    六等奖中奖概率(百万人): 58892.55
    总的中奖概率(百万人): 67094.53

    1.3 中奖期望

    1.3.1 奖金<1亿

    E1 = P_1*5000000 + P_2*150000 + P_3*3000 + P_4*200 + P_5*10 + P_6*5
    print '<1亿元时,单注期望:%f' %(E1)
    

    <1亿元时,单注期望:0.895428

    1.3.2 奖金>1亿

    E1 = P_1*10000000 + P_2*300000 + P_3*3000 + P_4*200 + P_5*10 + P_6*5
    print '>1亿元时,单注期望:%f' %(E1)
    

    >1亿元时,单注期望:1.304545

    2.3D彩票研究

    2.1 玩法

    竟猜三位开奖号码,即百位、十位和个位,且顺序一致。 奖金1040元

    2.2单注期望

    #获奖概率
    P = 0.001;
    #期望
    E = P * 1040
    print '总的中奖概率(百万人):%10.2f' %(P*1000000)
    print '3D 单注期望:%f' %(E)
    

    总的中奖概率(百万人): 1000.00
    3D 单注期望:1.040000

    3.7乐彩票研究

    3.1 玩法

    七乐彩设奖奖金为销售总额的50%,其中当期奖金为销售总额的49%,调节基金为销售总额的1%。

    七乐彩当期奖金设七个奖等,一至三等奖为高奖等,四至七等奖为低奖等。高奖等采用浮动设奖,低奖等采用固定设奖。当期奖金减去当期低奖等奖金为当期高奖等奖金,具体设奖如下:

    一等奖:奖金总额为当期高奖等奖金的70%,最高500w;

    二等奖:奖金总额为当期高奖等奖金的10%;

    三等奖:奖金总额为当期高奖等奖金的20%;

    四等奖:单注奖金额固定为200元;

    五等奖:单注奖金额固定为50元;

    六等奖:单注奖金额固定为10元;

    七等奖:单注奖金额固定为5元。

    1.玩法
    30选7,6+1

    一等奖:投注号码与当期开奖号码中7个基本号码完全相同(顺序不限,下同);

    二等奖:投注号码与当期开奖号码中任意6个基本号码及特别号码相同;

    三等奖:投注号码与当期开奖号码中任意6个基本号码相同;

    四等奖:投注号码与当期开奖号码中任意5个基本号码及特别号码相同;

    五等奖:投注号码与当期开奖号码中任意5个基本号码相同;

    六等奖:投注号码与当期开奖号码中任意4个基本号码及特别号码相同;

    七等奖:投注号码与开奖号码中任意4个基本号码相同。

    3.2.单注概率

    #一等奖
    P_1 = C_n_m(7,7) * C_n_m(23,0) / C_n_m(30,7) 
    print '一等奖中奖概率(百万人):%10.2f' %(P_1*1000000)
    
    #二等奖
    P_2 = C_n_m(7,6) * C_n_m(22,0) * C_n_m(1,1) / C_n_m(30,7)
    print '二等奖中奖概率(百万人):%10.2f' %(P_2*1000000)
    
    #三等奖
    P_3 = C_n_m(7,6) * C_n_m(22,1) * C_n_m(1,0) / C_n_m(30,7) 
    print '三等奖中奖概率(百万人):%10.2f' %(P_3*1000000)
    
    #四等奖
    P_4 = C_n_m(7,5)*C_n_m(22,1)*C_n_m(1,1)/C_n_m(30,7)
    print '四等奖中奖概率(百万人):%10.2f' %(P_4*1000000)
    
    #五等奖
    P_5 = C_n_m(7,5)*C_n_m(22,2)*C_n_m(1,0)/C_n_m(30,7)
    print '五等奖中奖概率(百万人):%10.2f' %(P_5*1000000)
    
    #六等奖
    P_6 = C_n_m(7,4)*C_n_m(22,2)*C_n_m(1,1)/C_n_m(30,7)
    print '六等奖中奖概率(百万人):%10.2f' %(P_6*1000000)
    
    #七等奖
    P_7 = C_n_m(7,4)*C_n_m(22,3)*C_n_m(1,0)/C_n_m(30,7)
    print '七等奖中奖概率(百万人):%10.2f' %(P_7*1000000)
    
    print '总概率(百万人):%f' %((P_1+P_2+P_3+P_4+P_5+P_6+P_7)*1000000)
    

    一等奖中奖概率(百万人): 0.49
    二等奖中奖概率(百万人): 3.44
    三等奖中奖概率(百万人): 75.65
    四等奖中奖概率(百万人): 226.94
    五等奖中奖概率(百万人): 2382.85
    六等奖中奖概率(百万人): 3971.41
    七等奖中奖概率(百万人): 26476.08
    总概率(百万人):33136.850378

    3.3单注期望

    2017096期的中奖结果 一等奖 一注870305 二等奖22605 三等奖2210

    E = P_1*870305 + P_2*22605 + P_3*2210 + P_4*200 + P_5*50 +P_6*10 + P_7*5
    print '3D 单注期望:%f' %(E
    

    3D 单注期望:1.009028

    4.七星彩

    4.1玩法

    一等奖:奖金总额为当期奖金额减去固定奖总额后的90%,以及奖池资金和调节基金转入部分;

    二等奖:奖金总额为当期奖金额减去固定奖总额后的10%;

    三等奖:单注奖金固定为1800元;

    四等奖:单注奖金固定为300元;

    五等奖:单注奖金固定为20元;

    六等奖:单注奖金固定为5元。
    一等奖:投注号码与开奖号码全部相符且排列一致,即中奖;

    二等奖:投注号码有连续6位号码与开奖号码相同位置的连续6位号码相同,即中奖;

    三等奖:投注号码有连续5位号码与开奖号码相同位置的连续5位号码相同,即中奖;

    四等奖:投注号码有连续4位号码与开奖号码相同位置的连续4位号码相同,即中奖;

    五等奖:投注号码有连续3位号码与开奖号码相同位置的连续3位号码相同,即中奖;

    六等奖:投注号码有连续2位号码与开奖号码相同位置的连续2位号码相同,即中奖。

    4.2单注概率

    #一等奖
    P_1 = pow(C_n_m(1,1)/C_n_m(10,1),7)
    print '一等奖中奖概率(百万人):%10.2f' %(P_1*1000000)
    
    #二等奖
    P_2 = pow(C_n_m(1,1)/C_n_m(10,1),6)*C_n_m(9,1)/C_n_m(10,1)*C_n_m(2,1)
    print '二等奖中奖概率(百万人):%10.2f' %(P_2*1000000)
    
    #三等奖
    P_3 = pow(C_n_m(1,1)/C_n_m(10,1),5)*C_n_m(9,1)/C_n_m(10,1)*C_n_m(10,1)/C_n_m(10,1)*C_n_m(2,1)
    P_3 += C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(1,1)/C_n_m(10,1),5)*C_n_m(9,1)/C_n_m(10,1)
    print '三等奖中奖概率(百万人):%10.2f' %(P_3*1000000)
    
    #四等奖
    P_4 =  pow(C_n_m(1,1)/C_n_m(10,1),4)*C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(10,1)/C_n_m(10,1),2)*C_n_m(2,1)
    P_4 +=  C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(1,1)/C_n_m(10,1),4)*C_n_m(9,1)/C_n_m(10,1)*C_n_m(10,1)/C_n_m(10,1)*C_n_m(2,1)
    
    print '四等奖中奖概率(百万人):%10.2f' %(P_4*1000000)
    
    #五等奖
    P_5 =  pow(C_n_m(1,1)/C_n_m(10,1),3)*C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(10,1)/C_n_m(10,1),3)*C_n_m(2,1)
    P_5 +=  C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(1,1)/C_n_m(10,1),3)*C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(10,1)/C_n_m(10,1),2)*C_n_m(2,1)
    P_5 +=  pow(C_n_m(1,1)/C_n_m(10,1),3)*pow(C_n_m(9,1)/C_n_m(10,1),2)*pow(C_n_m(10,1)/C_n_m(10,1),2)
    P_5 -=  pow(C_n_m(1,1)/C_n_m(10,1),6)*C_n_m(9,1)/C_n_m(10,1)
    print '五等奖中奖概率(百万人):%10.2f' %(P_5*1000000)
    
    #六等奖
    P_6 = pow(C_n_m(1,1)/C_n_m(10,1),2)*C_n_m(9,1)/C_n_m(10,1)*pow(C_n_m(10,1)/C_n_m(10,1),4)*C_n_m(2,1)
    P_6 += pow(C_n_m(1,1)/C_n_m(10,1),2)*pow(C_n_m(9,1)/C_n_m(10,1),2)*pow(C_n_m(10,1)/C_n_m(10,1),3)*C_n_m(4,1)
    P_6 -= (6*2+3*2+2)*P_1
    print '六等奖中奖概率(百万人):%10.2f' %(P_6*1000000)
    
    print '总概率(百万人):%f' %((P_1+P_2+P_3+P_4+P_5+P_6)*1000000)
    

    一等奖中奖概率(百万人): 0.10
    二等奖中奖概率(百万人): 1.80
    三等奖中奖概率(百万人): 26.10
    四等奖中奖概率(百万人): 342.00
    五等奖中奖概率(百万人): 4229.10
    六等奖中奖概率(百万人): 50398.00
    总概率(百万人):54997.100000

    4.3单注期望

    2017096期的中奖结果 一等奖 一注3965569 二等奖4508

    E = P_1*3965569 + P_2*45081 + P_3*1800 + P_4*300 + P_5*20 +P_6*5
    print '3D 单注期望:%f' %(E)
    

    3D 单注期望:0.963855

    5.大乐透

    5.1玩法

    35选5+12选2

    一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;

    二等奖:投注号码与当期开奖号码中的5个前区号码及任意1个后区号码相同,即中奖;

    三等奖:投注号码与当期开奖号码中的5个前区号码相同,或者任意4个前区号码及2个后区号码相同,即中奖;

    四等奖:投注号码与当期开奖号码中的任意4个前区号码及任意1个后区号码相同,或者任意3个前区号码及2个后区号码相同,即中奖;

    五等奖:投注号码与当期开奖号码中的任意4个前区号码相同,或者任意3个前区号码及1个后区号码相同,或者任意2个前区号码及2个后区号码相同,即中奖;

    六等奖:投注号码与当期开奖号码中的3个前区号码相同,或者任意1个前区号码及2个后区号码相同,或者任意2个前区号码及任意1个后区号码相同,或者2个后区号码相同,即中奖。

    2 奖金
    一等奖:当奖池资金低于1亿元时,奖金总额为当期奖金额减去固定奖总额后的75%与奖池中累积的奖金之和,单注奖金按注均分,单注最高限额封顶500万元。当奖池资金高于1亿元(含)且低于3亿元时,奖金总额包括两部分,一部分为当期奖金额减去固定奖总额后的58%与奖池中累积的奖金之和,单注奖金按注均分,单注最高限额封顶500万元;另一部分为当期奖金额减去固定奖总额后的17%,单注奖金按注均分,单注最高限额封顶500万元。当奖池资金高于3亿元(含)时,奖金总额包括两部分,第一部分为当期奖金额减去固定奖总额后的42%与奖池中累积的奖金之和,单注奖金按注均分,单注最高限额封顶500万元;第二部分为当期奖金额减去固定奖总额后的33%,单注奖金按注均分,单注最高限额封顶500万元。

    二等奖:奖金总额为当期奖金额减去固定奖总额后的18%,单注奖金按注均分,单注最高限额封顶500万元。

    三等奖:奖金总额为当期奖金额减去固定奖总额后的7%,单注奖金按注均分,单注最高限额封顶500万元。

    四等奖:单注奖金固定为200元。

    五等奖:单注奖金固定为10元。

    六等奖:单注奖金固定为5元。

    5.2中奖概率

    #一等奖 5+2
    P_1 = Prob(35,5,5)*Prob(12,2,2)
    print '一等奖中奖概率(百万人):%10.2f' %(P_1*1000000)
    
    #二等奖 5+1
    P_2 =  Prob(35,5,5)*Prob(12,2,1)
    print '二等奖中奖概率(百万人):%10.2f' %(P_2*1000000)
    
    #三等奖 5+0 ,4+2
    P_3 = Prob(35,5,5)*Prob(12,2,2)
    P_3 += Prob(35,5,4)*Prob(12,2,2)
    print '三等奖中奖概率(百万人):%10.2f' %(P_3*1000000)
    
    #四等奖 4+1,3+2
    P_4 = Prob(35,5,4)*Prob(12,2,1)
    P_4 += Prob(35,5,3)*Prob(12,2,2)
    print '四等奖中奖概率(百万人):%10.2f' %(P_4*1000000)
    
    #五等奖 4+0,3+1, 2+2
    P_5 = Prob(35,5,4)*Prob(12,2,0)
    P_5 += Prob(35,5,3)*Prob(12,2,1)
    P_5 += Prob(35,5,2)*Prob(12,2,2)
    print '五等奖中奖概率(百万人):%10.2f' %(P_5*1000000)
    
    #六等奖 3+0,1+2, 2+1, 0+2
    P_6 = Prob(35,5,3)*Prob(12,2,0)
    P_6 += Prob(35,5,1)*Prob(12,2,2)
    P_6 += Prob(35,5,2)*Prob(12,2,1)
    P_6 += Prob(35,5,0)*Prob(12,2,2)
    print '五等奖中奖概率(百万人):%10.2f' %(P_6*1000000)
    
    print '总概率(百万人):%.3f' %((P_1+P_2+P_3+P_4+P_5+P_6)*1000000)
    

    一等奖中奖概率(百万人): 0.05
    二等奖中奖概率(百万人): 0.93
    三等奖中奖概率(百万人): 7.05
    四等奖中奖概率(百万人): 343.05
    五等奖中奖概率(百万人): 6270.50
    五等奖中奖概率(百万人): 60081.13
    总概率(百万人):66702.707

    5.3中奖期望

    17096 一等奖 10000000 二等奖 107135 三等奖 6408 (未追加)

    E = P_1*10000000 + P_2*107135 +P_3*6408 +P_4*200+ P_5*10 +P_6*5
    print '大乐透期望:%f' %(E)
    

    大乐透期望:1.043616

    一等奖 10000000 二等奖 107135+64281 三等奖 6408+3844 (追加)

    E = P_1*10000000 + P_2*(107135+64281) +P_3*(6408+3844) +P_4*(200+100)+ P_5*(10+5) +P_6*5
    print '大乐透期望:%f' %(E)
    

    大乐透期望:1.196368

    6.15选5

    6.1玩法

    特等奖:单注投注号码与当期5个开奖号码全部相同,且至少包含4个连续号码(中奖号码顺序不论,并可以同一等奖视为兼中)。

    一等奖:单注投注号码与当期5个开奖号码全部相同,若有4个连续号码则同特等奖兼中。

    二等奖:单注投注号码与当期开奖号码中任意4个号码相同,不得与以上奖等兼中。

    2 奖金
    浮动奖金 二等奖 10元

    6.2 中奖概率

    #一等奖或特等奖
    P_1 = Prob(15,5,5)
    print '一等奖中奖概率(百万人):%10.2f' %(P_1*1000000)
    P_2 = Prob(15,5,4)
    print '二等奖中奖概率(百万人):%10.2f' %(P_2*1000000)
    print '总概率(百万人):%.3f' %((P_1+P_2)*1000000)
    

    一等奖中奖概率(百万人): 333.00
    二等奖中奖概率(百万人): 16650.02
    总概率(百万人):16983.017

    6.3 中奖期望

    浙江 2017220 一等奖奖金 3045 二等奖奖金 1

    E = P_1*3045+P_2*10
    print '15选5期望:%f' %(E)
    

    15选5期望:1.180486

    7.新快三

    7.1 玩法

    三个数(0~6)之和(0 ~ 18)分布。
    奖金:
    3,18 :240 4,17 :80 5,16 :40 6,15 :25 7,14 :16 8,13 :12 9,12 :10 10,11:9

    7.2中奖概率

    P = {}
    for i in range(16):
        P[i+3] = 0
    
    for i in [1,2,3,4,5,6]:
        for j in [1,2,3,4,5,6]:
            for k in [1,2,3,4,5,6]:
                sum = i+j+k
                P[sum] += 1  
    P_total = 0
    PP= {}
    for i in range(16):
        PP[i+3] = float(P[i+3])/(6*6*6)
        print '和数为 %d 的概率(百万人): %f' %(i+3,PP[i+3]*1000000)
        P_total += float(P[i+3])/(6*6*6)
    

    和数为 3 的概率(百万人): 4629.629630
    和数为 4 的概率(百万人): 13888.888889
    和数为 5 的概率(百万人): 27777.777778
    和数为 6 的概率(百万人): 46296.296296
    和数为 7 的概率(百万人): 69444.444444
    和数为 8 的概率(百万人): 97222.222222
    和数为 9 的概率(百万人): 115740.740741
    和数为 10 的概率(百万人): 125000.000000
    和数为 11 的概率(百万人): 125000.000000
    和数为 12 的概率(百万人): 115740.740741
    和数为 13 的概率(百万人): 97222.222222
    和数为 14 的概率(百万人): 69444.444444
    和数为 15 的概率(百万人): 46296.296296
    和数为 16 的概率(百万人): 27777.777778
    和数为 17 的概率(百万人): 13888.888889
    和数为 18 的概率(百万人): 4629.629630

    7.3中奖期望

    E = PP[3]*240
    print '和数为3或18的期望:%f' %(E)
    E = PP[4]*80
    print '和数为4或17:%f' %(E)
    E = PP[5]*40
    print '和数为5或16:%f' %(E)
    E = PP[6]*25
    print '和数为6或15:%f' %(E)
    E = PP[7]*16
    print '和数为7或14:%f' %(E)
    E = PP[8]*12
    print '和数为8或13:%f' %(E)
    E = PP[9]*10
    print '和数为9或12:%f' %(E)
    E = PP[10]*9
    print '和数为10或11:%f' %(E)
    

    和数为3或18的期望:1.111111
    和数为4或17:1.111111
    和数为5或16:1.111111
    和数为6或15:1.157407
    和数为7或14:1.111111
    和数为8或13:1.166667
    和数为9或12:1.157407
    和数为10或11:1.125000

    展开全文
  • 所以就计算了一下中奖概率。 中奖规则: 一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖; 二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖; 三等奖:投注号码与当期开奖...

    周六周末无聊,想着买彩票,万一中奖了就不用上班啦,哈哈。所以就计算了一下中奖概率。

    中奖规则:

    一等奖:投注号码与当期开奖号码全部相同(顺序不限,下同),即中奖;

    二等奖:投注号码与当期开奖号码中的6个红色球号码相同,即中奖;

    三等奖:投注号码与当期开奖号码中的任意5个红色球号码和1个蓝色球号码相同,即中奖;

    四等奖:投注号码与当期开奖号码中的任意5个红色球号码相同,或与任意4个红色球号码和1个蓝色球号码相同,即中奖;

    五等奖:投注号码与当期开奖号码中的任意4个红色球号码相同,或与任意3个红色球号码和1个蓝色球号码相同,即中奖;

    六等奖:投注号码与当期开奖号码中的任意2个红色球号码相同和1个蓝色号码相同,或与任意1个红色球号码和1个蓝色球号码相同,或当期开奖号码中的1个蓝色球号码相同,即中奖

    排列组合:

    红色:33个红色选6个:

    蓝色:16个蓝色选1个:

    共有组合: * =17721088

    分析中奖概率:

    一等奖的概率:中6红1蓝, * =1,概率是1/17721088

    二等奖的概率:中6红蓝不中,**=15,概率是15/17721088

    三等奖的概率:中5红1蓝,所以从中奖号码6个红球选5个,再从不中的27个红球选1个, * * =162,概率是162/17721088

    四等奖的概率:中5红蓝不中, * * * =2430,或者4红1蓝, * * =5265,加起来是7695注,概率是7695/17721088

    五等奖的概率:中4红蓝不中, * * * =78975,或者3红1蓝, * * =58500,加起来是137475注,概率是137475/17721088

    六等奖的概率:中2红1蓝,  * * =263250,或者中1红1蓝, * * =484380,或者1蓝, * * =296010,加起来是1043640注,概率是1043640/17721088

    共计中奖率:(1+15+162+7695+137475+1043640)/ 17721088=6.70945%。

    展开全文
  • //概率数组循环 foreach ($proCount as $key => $val) { if ($val ) { continue; } else { $proSum = $proSum + $proArr[$key]; } } foreach ($proArr as $key => $proCur) { if ($proCount[$key] ...
    public function get_lottery(){
            
            header('Access-Control-Allow-Origin:*');
            $pinfo = $this->get_z();
            $return = ["rid"=>$pinfo["id"],"rname"=>$pinfo["name"]];
            return json($return);
        }    
        
        public function get_z(){
            $prizes = array( 
                0 => array( 
                    "id" => 0, //中奖id 
                    "name" => "谢谢参与", //奖品名称 
                    "count" => "1", //库存 
                ), 
                1 => array( 
                    "id" => 1, 
                    "name" => "罗浮山门票", 
                    "count" => "10", 
                ), 
                2 => array( 
                    "id" => 2, 
                    "name" => "罗浮山嘉宝田温泉体验券", 
                    "count" => "50", 
                ), 
                3 => array( 
                    "id" => 3, 
                    "name" => "精美旅游书籍《山水酿惠州》", 
                    "count" => "0", 
                ), 
                4 => array( 
                    "id" => 4, 
                    "name" => "碧海湾漂流门票", 
                    "count" => "50", 
                ), 
                5 => array( 
                    "id" => 5, 
                    "name" => "南昆山门票", 
                    "count" => "0", 
                ), 
                6 => array( 
                    "id" => 6, 
                    "name" => "云顶温泉精美礼品", 
                    "count" => "0", 
                ), 
            );
            
            foreach ($prizes as $key => $val) { 
                $arr[$val['id']] = $val['count'];
            }
            $rid =  $this->getRand($arr,$arr);
            return $prizes[$rid];
        }
        public function getRand($proArr, $proCount) { 
            $result = ''; 
            $proSum = 0; //概率数组循环 
            foreach ($proCount as $key => $val) { 
                if ($val <= 0) { 
                    continue; 
                } else { 
                    $proSum = $proSum + $proArr[$key]; 
                }
            }
            foreach ($proArr as $key => $proCur) { 
                if ($proCount[$key] <= 0) { 
                    continue; 
                } else { 
                    $randNum = mt_rand(1, $proSum); 
                    if ($randNum <= $proCur) { 
                        $result = $key; 
                        break; 
                    } else { 
                        $proSum -= $proCur; 
                    } 
                } 
            } 
            unset($proArr); 
            return $result; 
        }

    前端调用请求 get_lottery 方法,返回中奖奖项。

    转载于:https://my.oschina.net/u/914487/blog/1926317

    展开全文
  • 问题:红色球全部选中的概率为多少? 2. 代码: package v1ch03.BigIntegerTest; import java.math.*; import java.util.*; /** * This program uses big numbers to compute the odds of winning the grand ...
  • 上次项目中有个抽奖活动,中奖概率算法整理成一篇笔记/*** 中奖概率算法* v表示中奖概率,注意其中的v必须为整数,可以将对应的奖项的v设置成0,即意味着该奖项抽中的几率是0,数组中v的总和(基数),基数越大越能体现...
  • c++ 计算彩票中奖概率

    2018-09-28 19:39:00
    输入两个数字,第一个数字是备选总数,第二个数字是选择总数,然后返回中将概率。 可以投注多次,结束的时候返回总的中将概率。 #include <iostream> using namespace std; long double probability...
  • 文章目录Python - 彩票模拟器,模拟彩票的摇奖,并计算中奖概率,保本概率1、代码2、运行结果3、玩法 Python - 彩票模拟器,模拟彩票的摇奖,并计算中奖概率,保本概率 1、代码 # 概率发生器 import random # ...
  • 计算—的中奖概率

    2012-04-16 16:22:00
    特等奖的中奖概率 中特奖,好像就是六个全中,加中特码。 全部有49个数字,所以,中头奖几率特低。 由于最后一个特码的位置是固定的,所以,它的全排列有:C(49,6)*C(43,1) = 13983816 * 43 = 601304088 所以,...
  • Matlab计算福利彩票的中奖概率

    千次阅读 2015-12-21 23:17:46
    Quez:计算福彩双色球一等奖的中奖概率。福彩双色球的玩法如下:从编号1~33的红球里任选6个,另外在编号1~16的蓝球里再任选1个。如果选择的红球和蓝球和当期的开奖结果完全一致(顺序可不同)则中一等奖。 Analysis:...
  • JS简单实现:根据奖品权重计算中奖概率实现抽奖的方法 胖子依然6 2019-12-26 12:10:12 264 收藏 版权 本文主要介绍:使用 JS 根据奖品权重计算中奖概率实现抽奖的方法。 一、示例场景 纯爱小说 www.shupu.org 1.1、...
  • 1 /** ... System.out.println("[双色球末等奖中奖几率]-> [1/" + Bingo(6) + "]\n亲,月月都来一次!" ); 67 } 68 }   转载于:https://www.cnblogs.com/xujianbo/p/5066166.html

空空如也

空空如也

1 2 3 4 5 ... 12
收藏数 234
精华内容 93
关键字:

中奖概率计算