algorithm - 了解动态规划中的基本案例
问题描述
考虑这个问题计数的不同方式 express-n sum-1-3-4
我的理解是 f(n) 是将 n 表示为 1、3 和 4 之和的方法数
f(n-1) 是将 n-1 表示为 1、3 和 4 之和的方法数
f(1) 是将 1 表示为 1、3 和 4 之和的方式数
f(0) 是将 0 表示为 1、3 和 4 之和的方式数
不应该是 0,因为没有办法将 0 表示/表示为 1,3,4 的总和
刚开始学习动态编程,但我不明白为什么这应该是 1 而不是 0
解决方案
好吧,假设您想将某个总和 S 表示为 1、3 和 4 的总和
你可以用数学方法把它写成等式S = 1*x + 3*y + 4*z
,其中 x,y,z 表示总和中的一、三和四的数量。
所以现在f(S)
只是方程解的数量(记住 x,y,z 是非负整数)
当S=0
我们可以很容易地看到这个方程有一个解时——x=0, y=0, z=0
推荐阅读
- laravel - 如何使用 phpmyadmin 的凭据正确连接并设置我的 laravel .env 文件
- less - 如何在 Nuxt.js 中为 LESS 启用内联 JavaScript?
- php - Laravel 路由已定义但显示空白页面
- reactjs - 反应不将授权标头传递给rails api
- c# - 如何在 .netcore 1.1 中循环使用动态类型的 Json?
- python - DAI 如何在生产环境中处理新的(训练中看不到的)分类值?
- vue.js - How to check component id, if id same then hide other component
- postgresql - 使用终端安装 PostgreSQL 和`createdb`
- c# - FluentValidation - 在嵌套结构中将上下文从父级带入子级的最佳方法
- python - ModuleNotFoundError:Django 2.2.1 中没有名为“clients.urls”的模块