算法导论15章习题

本文探讨了算法导论第15章的习题,包括证明公式(15.4)从(15.3)的初始条件得出,展示了贪心策略在某些情况下不保证最优切割方案,并讨论了如何在考虑固定成本的情况下改进算法,同时提出了一个解决斐波那契数列的线性时间复杂度算法。
摘要由CSDN通过智能技术生成

15.1-1

由公式(15.3)的初始条件T(0)=1证明公式(15.4)成立

(1)T(N)=T(0)+T(1)+…T(N-1)=>T(N+1)=(2)T(0)+T(1)+…T(N-1)+T(N)
(2)-(1)即可推出
T(N+1)=2T(N)

T(2)=2T(1)
T(1)=2T(0)

=>T(N)=2^N

15.1-2

证明贪心策略( Pi/i)不能总保证得到最优切割方案

这里写图片描述

假如 长度n=4 ,那么 1 2 3 4中密度最高的 是 P3/3=2.68
根据贪心策略 会选择 1+3的切割方案。
而最好的切割策略是 2+2
此时并不能保证贪心策略取得最优解。

15.1-3

增加固定成本c再设计一个算法解决

#include<iostream>
using namespace std;
int r[11];//存储各种长度对应的最优收益
int s[11];//存储第一次切割长度 

const int c = 1; //切割成本
int CUT_ROD(int n[], int); //定义递归函数参数是价格数组和钢管长度

void PRINT_CUT_SOLUTION(int p[],   int n);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值