首页 > 其他分享 >动态规划 - 股票

动态规划 - 股票

时间:2023-01-05 11:35:23浏览次数:63  
标签:状态 股票 最佳时机 卖出 动态 规划 dp 前一天

动态规划的本质是

从子状态推出当前状态,且无后效性;需要我们合理地定义状态。

对于股票的最大利润,决定性的状态因素有三个:

第i天结束时,最多能进行k次交易,当前是否持有股票。

dp[i][k][0],dp[i][k][1]表示当前最大金额

其实,dp[i][k][0] > dp[i][k][1],我们最终需要的是前者,但必须引入是否持有股票状态,这是由子状态推出当前状态的必要条件。

  1. 学习 股票问题系列通解
  2. 股票问题一共有六道题,链接如下:
    1. 买卖股票的最佳时机(求出某点右侧最大值 / 动态规划)
    2. 买卖股票的最佳时机 II(贪心 / 动态规划 k +∞,k和k-1一样)
    3. 买卖股票的最佳时机 III( k = 2)
    4. 买卖股票的最佳时机 IV(给定k)
      1. 对于每一天需要使用不同的 k 值更新所有的最大收益,对应持有 0 份股票或 1 份股票。如果 k 超过一个临界值,最大收益就不再取决于允许的最大交易次数,而是取决于股票价格数组的长度,因此可以进行优化。那么这个临界值是什么呢?
      2. 一个有收益的交易至少需要两天(在前一天买入,在后一天卖出,前提是买入价格低于卖出价格)。如果股票价格数组的长度为 n,则有收益的交易的数量最多为 n / 2(整数除法)。因此 k 的临界值是 n / 2。如果给定的 k 不小于临界值,即 k >= n / 2,则可以将 k 扩展为正无穷,此时问题等价于情况二。
    5. 最佳买卖股票时机含冷冻期
      1. 买入时前一天未持有,且前一天不是卖出,所以前一天在休息;考虑前一天的前一天i-2应该是未持有,且可以是卖出状态。如果是非卖出状态,可以由前一天在休息获取到其值
    6. 买卖股票的最佳时机含手续费(就是在买入时加上手续费或卖出时减去手续费)
  3. codetop搜索股票问题求解
    1. 注意只有买入计入交易次数就行
    2. 每天只有休息、买入、卖出三个状态

标签:状态,股票,最佳时机,卖出,动态,规划,dp,前一天
From: https://www.cnblogs.com/iterationjia/p/17027044.html

相关文章

  • 基于目标检测和从粗到精静态概率的动态场景视觉SLAM算法CFP-SLAM
    以下内容来自从零开始机器人SLAM知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包论文#CFP-SLAM:AReal-timeVisualSLAMBasedonCoarse-to-Fin......
  • 动态共享库/静态共享库
    0.前言在学习如何制作静态库和共享库之前,我们来了解GCC编译器的基本工作流程和GCC常用参数的使用。1.GCC基本工作流程现在假设有一个helloworld.c源程序,功能是只打印Hel......
  • 软件开发入门教程网 Search之C++ 动态内存
       C++基本的输入输出   ......
  • MySQL event事件,定时按年份动态创建表
    参考资料:1、MySQL事件(定时任务):https://blog.51cto.com/u_15549234/5138457;2、mysql创建存储过程语法(MySQL创建存储过程sql语句):https://www.gaojipro.com/a/108616;3、my......
  • 动态NAT
    注意:将外部的ip地址池映射到内部地址池第一步:创建地址池 nataddress-group120.1.1.1020.1.1.100第二步:感兴趣数据流aclnumber2001 rule5permitsource192.168......
  • linux动态库加载相关
    查看编译时会链接的动态库ldconfig-v|greplibCmp添加编译时的动态链接目录到终端环境,然后启动,这种方式可以为不同的程序配置不同的加载路径exportLD_LIBRARY_PA......
  • GCC链接库的一个坑:动态库存在却提示未定义动态库的函数
    背景在GCC中已经指定链接库,然而编译时却提示动态库函数未定义!测试出现的错误提示如下:  [GMPY@13:48tmp]$gcc-otest-L.-lmylibtest.c /tmp/ccys......
  • 【即将开源】实例语义分割和ORB特性来跟踪动态对象
    以下内容来自从零开始机器人SLAM知识星球每日更新内容点击领取学习资料→机器人SLAM学习资料大礼包论文#DynaSLAMII:Tightly-CoupledMulti-ObjectTrackingandS......
  • PostgreSQL动态SQL(兼容oracle DBMS_SQL)
    PostgreSQL动态SQL(兼容oracleDBMS_SQL)PostgreSQL sql 数据库 postgresql oracle中的dbms_sql包可以用来执行动态SQL,让我们在存储过程的动态SQL中使用prepared......
  • 动态网页技术-Servlet(1)
    1.Servlet特点按照Servlet规范开发的一个Java程序(类),由服务器调度执行。----只要遵守开发规范编写出来的都叫Servlet,例如:tomcat下的Servlet,weblogic下的Servlet使用时候......