zoukankan      html  css  js  c++  java
  • N颗骰子的问题

    使用 动态规划问题 :

                               当 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
  • 相关阅读:
    Mongodb 插入数据的方式
    vue插槽(slot)的模板与JSX写法
    vue-resource+iview上传文件取消上传
    封装全局icon组件 svg (仿造element-ui源码)
    vue 修改框架less变量
    vue webpack多页面构建
    vue2 自定义全局组件(Loading加载效果)
    制作npm插件vue-toast-m实例练习
    iview+axios实现文件取消上传
    CSS Variables
  • 原文地址:https://www.cnblogs.com/woainifanfan/p/6638508.html
Copyright © 2011-2022 走看看