上后谈爱情

导航

 

使用 动态规划问题 :

                           当 dice=1:

                             当 dice=2:

进行对比 第m颗 dice时候 和位S :等于前m-1颗dice 结果S-1出现结果有关系的 f(n)=f(n-1)+f(n-2)+f(n-3)+f(n-4)+f(n-5)+f(n-6) 当前 m-1颗dice 与现状 和S相差 最多6时候,结果等于此连加

 1 package LeetCode;
 2 
 3 public class offer43 {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         
 8      PrintProbability(2);
 9     }
10  public static void PrintProbability(int num)
11  {
12      if(num<=0)
13          return;
14      
15      int g_maxvalue=6;
16      int[][]probability=new int[2][];
17      
18      probability[0]=new int[g_maxvalue*num+1];
19      probability[1]=new int[g_maxvalue*num+1];
20      
21      int dice=0;
22      
23      /*第一颗 dice 1-6 出现次数全是1*/
24      for(int i=1;i<=g_maxvalue;i++)
25          probability[0][i]=1;
26      
27      for(int k=2;k<=num;k++)
28      {
29          for(int i=0;i<k;i++)
30          // 使用两个数组,轮回记录当前dice 和前 dice 出现次数,不断重复轮回
31            probability[1-dice][i]=0;
32         
33          //开始进行计数baocun
34          for(int i=k;i<=g_maxvalue*k;i++)
35          {
36              probability[1-dice][i]=0;
37              
38              for(int j=1;j<=g_maxvalue && j<=i;j++)
39              {
40                  probability[1-dice][i]+=probability[dice][i-j];
41              }
42          }
43          
44          // 让 dice 在 0-1之间变化
45          dice=1-dice;
46          
47      }
48      
49      double total=Math.pow(g_maxvalue,num);
50      for(int i=num;i<=g_maxvalue*num;i++)
51      {
52          double ratio= (double)probability[dice][i]/total;
53          System.out.print(i + " " + probability[dice][i] +" "+ratio );
54          System.out.println();
55      }
56  }
57 }
 1 2 1 0.027777777777777776
 2 3 2 0.05555555555555555
 3 4 3 0.08333333333333333
 4 5 4 0.1111111111111111
 5 6 5 0.1388888888888889
 6 7 6 0.16666666666666666
 7 8 5 0.1388888888888889
 8 9 4 0.1111111111111111
 9 10 3 0.08333333333333333
10 11 2 0.05555555555555555
11 12 1 0.027777777777777776

 

posted on 2017-03-29 10:45  上后谈爱情  阅读(162)  评论(0编辑  收藏  举报