把n个骰子扔在地上,求出现和为s的概率
可得n<=s<=6n
方法:定义6n-n+1长度的数组,然后对所有可能出现的组合进行计算,把结果进行计数存进数组;递归
方法二:动态规划,大问题小化:考虑使用两个数组存储点子的总数之和出现的次数,每增一个骰子,是前几个数组值的和,因为6个面,所以前n的前6的和

   void Print_F1(int number) {
          if(number<1) return;
          int maxVaule=6;
          int [][]array=new int [2][number*maxVaule+1];
          int flag=0;
          //第一颗骰子
          for(int i=1;i<=maxVaule;i++)
              array[flag][i]=1;
          for(int k=2;k<=number;k++) {            
              //本项数组归零,
              for(int i=0;i<=k;++i)
                   array[1-flag][i]=0;               for(int i=k;i<=maxVaule*k;i++) {
                   array[1-flag][i]=0;
                   //n=另一个数组n项前6的和,j<=i防止前面少于6项而出错
                   //每加一个骰子,则可选范围(1-6);没有0;所以不需要加本身
                   for(int j=1;j<=i&&j<=maxVaule;j++)
                        array[1-flag][i]+=array[flag][i-j];
              }
              flag=1-flag;
              
          }
          //如果求概率,那么需要进行double运算
          //总数是maxVaule的number次方
          for(int i=number;i<=maxVaule*number;i++)
              System.out.print(array[flag][i]+" ");
     }

最新文章

  1. 一些有用的SAP技术TCODE
  2. kali2.0中dradis的使用方法
  3. @SerializedName注解
  4. .NET(Core)应用程序模型及未来
  5. 二模 (1) day2
  6. header(&#39;Content-type:text/html;charset = utf-8&#39;);出现中文乱码
  7. Android02--debug.keystore的注册信息
  8. 搭建splinter+python环境时遇到的错误
  9. Unity Navigation自动寻路
  10. KVM虚拟机介绍
  11. hdoj 1285 确定比赛名次 【拓扑排序】
  12. Struts 2 之 OGNL
  13. [Abp 源码分析]六、工作单元的实现
  14. JS语法转换-ES6转ES5
  15. 【SparkStreaming学习之二】 SparkStreaming算子操作
  16. 服务器上定时自动执行php
  17. OceanBase 2.0让百万支付不是梦?
  18. WIN10平板 传递优化文件能否删除
  19. 数据结构(C语言版)-第5章 树和二叉树
  20. Python正则表达式使用

热门文章

  1. mybatis缓存之一级缓存(一)
  2. webstom 汉化,激活
  3. 浅谈MySQL数据库基本操作
  4. 用户不在sudoers文件中怎么办,ziheng is not in the sudoers file解决方法
  5. linux根据进程查端口,根据端口查进程
  6. 一行一行源码分析清楚AbstractQueuedSynchronizer
  7. JS数据类型判断的几种方法
  8. MACOS使用VScode进行C语言编程
  9. A Simple Problem,题解
  10. POJ1328贪心