作业777

实验报告

课程名称 《算法分析与设计》
实验日期 2021年 4 月 25 日 至 2021年 5 月 1日

实验名称 实验七:7.3投资问题
实验地点 同组人员 无

  1. 问题
    在这里插入图片描述

假设分配给第i个项目xi元钱,即求MAX(Σ1->i fi(xi));

  1. 解析
    主要使用动态规划的方法来对问题进行解决。
    Fk(x)表示x万元投给前k个项目的最大收益;
    Fk(x) = MAX{(fk(xk) + Fk-1(x - xk)},k=2,3,…,n.
    F1(x)=f1(x)
    即求MAX(Fk(x)) k<=n

  2. 设计
    [核心伪代码]
    Int invest[10][10]; //用来存储单个投资的效益f的映射关系。其中每行代表了一个投资的效益f的映射关系
    Point F[10][10];//用来保存引入的新的映射,[m][n]上的point结构体数据中,使用F来表示,给定m单位的钱,使用前n项投资所获得的最大效益,使用x表示,在达成上述的最大效益时,第n项投资所投入的钱。
    int main()
    {
    获取m和n,并得到投资的映射invest
    for(int k = 0;k < n;k++)
    for(int x = 1;x <= m;x++)
    int maxi = 0;
    int tmp = 0;

                 for(int xi = 0;xi <= x;xi++)
                        if(invest[k][xi] + F[k-1][x-xi].F > maxi)
                               maxi = invest[k][xi] + F[k-1][x-xi]
                               tmp = xi;
                                       F[k][x].F = maxi;
    

}
4. 分析
[算法复杂度推导]
在这里插入图片描述

  1. [github源码地址]
    https://github.com/zjk715/–homework
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值