动态规划计算二项式系数,主要用到了一个性质C(m,n)=C(m,n-1)+C(m-1,n-1);

这个式子将C(m , n)的计算问题表述为了(问题描述)C(m-1 , n -1)和C(m -1,n)两个较小的交叠子问题。

初始条件:C(m , m) = C(n , 0) = 1

得到c(n,k):


代码1(c(n,k):k为固定值):


import java.util.Scanner;/*** * @author fool song 计算二项式 某一特定的值(记录表横向填)* */
public class BinoCoeff3 {public static void main(String[] args) {// C(n,m)System.out.println("求C(n,m)");System.out.println("输入n:");Scanner input = new Scanner(System.in);int n = Integer.valueOf(input.nextInt());System.out.println("输入m:");int m = Integer.valueOf(input.nextInt());getBinoCoeff(n,m);}public static void getBinoCoeff(int n,int m) {int[][] arr = new int[n + 1][n + 1];boolean yn=true;for (int i = 0; i <= n; i++) {for (int j = 0; j < i + 1; j++) {if (i == j || j == 0) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}if(i==n&&j==m){yn=false;break;}}if(yn==false){break;}}System.out.println("c("+n+","+m+")="+arr[n][m]);}}

代码2(求c(n,k):k=0……n):


import java.util.Scanner;/*** * @author fool song 计算二项式系数 求出所有项*/
public class BinoCoeff2 {public static void main(String[] args) {// C(n,m)System.out.println("输入n:");Scanner input = new Scanner(System.in);int n = Integer.valueOf(input.nextInt());getBinoCoeff(n);}public static void getBinoCoeff(int n) {int[][] arr = new int[n + 1][n + 1];for (int i = 0; i <= n; i++) {for (int j = 0; j < i + 1; j++) {if (i == j || j == 0) {arr[i][j] = 1;} else {arr[i][j] = arr[i - 1][j - 1] + arr[i - 1][j];}}}printf(arr, n);}public static void printf(int[][] arr, int n) {for (int i = 0; i < n + 1; i++) {System.out.println("c("+n+","+i+")="+arr[n][i]);}}
}

动态规划 计算二项式系数相关推荐

  1. 动态规划 —— 计算二次项系数

    动态规划 -- 计算二次项系数 C(n,k) = C(n-1,k-1) + C(n-1,k)    当n>k>0 C(n,0) = C(n,n) = 1 方法一:用二维数组填充矩阵,时间复 ...

  2. 动态规划 —— 求解二项式系数

    (nk)=(n−1k−1)+(n−1k) \binom{n}{k}=\binom{n-1}{k-1}+\binom{n-1}{k} 和斐波那切一样,也是一个递归形式给出的定义. 递归版 def Cnk ...

  3. 由动态规划计算编辑距离引发的思考

    简单介绍 编辑距离算法: https://www.cnblogs.com/BlackStorm/p/5400809.html https://wizardforcel.gitbooks.io/the- ...

  4. C#递归、动态规划计算斐波那契数列

    //递归public static long recurFib(int num){if (num < 2){return num;}else{return recurFib(num - 1) + ...

  5. 菜鸟学算法——动态规划(二)

    概述 动态规划(dynamic programming)是运筹学的一个分支,是求解决策过程(decision process)最优化的数学方法,它是应用数学中用于解决某类最优化问题的重要工具.20世纪 ...

  6. 如何将整数数组转换为Zig-Zag格式?

    让我们再详细说明这个问题.基本上, 我们得到一个整数数组, 我们需要按以下顺序排列该数组:第一个元素小于第二个元素, 第二个元素大于第三个元素, 第三个元素小于第四个元素, 第四个元素大于第5个元素, ...

  7. 蓝桥杯动态规划基础篇(一)

    一.什么是动态规划?有套路吗? 动态规划(Dynamic Programming,DP)是运筹学的一个分支,是求解决策过程最优化的过程.20世纪50年代初,美国数学家贝尔曼(R.Bellman)等人在 ...

  8. 动态规划之状态机模型

    状态机模型 状态机 状态机与动态规划之间的联系 状态机的本质之动态规划描述 股票买卖系列 股票买卖 股票买卖Ⅱ 一.动态规划解法 二.贪心解法 股票买卖Ⅲ 前后缀分解 股票买卖Ⅳ 股票买卖Ⅴ KMP ...

  9. 每天一道LeetCode-----将数字集转成字母集,计算有多少种转换方式

    Decode Ways 原题链接Decode Ways 每一个数字和一个字母对应,总共有26个字母,对于每一个或每两个数字,都有可能将其转化成字母,计算有多少中转换形式 以1221为例,所有的转换形式 ...

  10. 动态规划——坐标型位操作型

    动态规划--坐标型&位操作型 坐标型动态规划--带阻碍的唯一路径 序列型动态规划--油漆房子 划分型动态规划--解密方式 坐标型动态规划--最长上升连续子序列 坐标型动态规划--最小路径和 坐 ...

最新文章

  1. 金山发布《2006年度信息安全报告》
  2. 【Java源码分析】Android-SparseArray源码分析
  3. Buffer Pool--内存总结2
  4. C++实现字符串数组作为函数的参数的反序输出
  5. python笔记之scrapy
  6. stm32 带通滤波器_带通滤波 - 基于STM32芯片和TFT-LCD的便携式心电图仪设计
  7. 字符串排序java_利用Java程序将字符串进行排序与拼接
  8. linux算法设计,嵌入式Linux平台下随机序列算法设计.doc
  9. C#控制台程序取得INSOYA视频区的视频的真实URL,视频标题,发布时间集合。
  10. 【Flink】Flink yarn 下报错ClassNotFoundException: org.apache.hadoop.yarn.api.ApplicationConstants$Environ
  11. 关公战秦琼java,IDE 之争是在争啥
  12. 【原创】Kakfa api包源代码分析
  13. STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.
  14. CentOS8下安装配置Wireguard
  15. 火星探险 (Mars)
  16. js利用数组创建图片对象
  17. USB组合设备——带鼠标功能的键盘
  18. 沭阳学爬虫10高效存储MongoDB
  19. 【CSS3】渐变背景
  20. COGS 2815. 天黑请闭眼

热门文章

  1. html表单size释义,关于html的表单元素详解(二)
  2. Android Bmob后端云简单使用-增删改查
  3. rockchip RGMII+mv88e6390 管理型交换机功能调试及vlan定制+Mac绑定
  4. Carson带你学Android:这是一份全面 详细的Android代码命名规范
  5. springboot中使用actuator进行监控
  6. Pandoc+TeXLive实现Markdown转PDF
  7. 5G NR LDPC码(3)—— DL-SCH和UL-SCH的LDPC处理(含代码)
  8. Arduino Uno 人体红外传感器实验-图文详录
  9. (数位dp) 算法竞赛入门到进阶 书本题集
  10. 华硕a53s拆机图解_华硕a53s配置 功能与外观描述【图解】