【算法】算法分析技术(第一章习题解答)

news2024/9/27 7:15:49

1 算法分析技术

在这里插入图片描述

1.1 假设 f f f g g g 是定义在自然数集合上的函数, 若对某个其他函数 h h h f = O ( h ) f = O(h) f=O(h) g = O ( h ) g = O(h) g=O(h) 成立, 那么证明 f + g = O ( h ) f + g = O(h) f+g=O(h)

证明:

根据已知条件 f = O ( h ) f = O(h) f=O(h),存在 c 1 > 0 c_{1}>0 c1>0 和正整数 n 1 n_{1} n1 使得当使得当 n ⩾ n 1 n \geqslant n_{1} nn1 时, 有 f ( n ) ⩽ c 1 h ( n ) f(n) \leqslant c_{1} h(n) f(n)c1h(n)

同理根据已知条件 g = O ( h ) g = O(h) g=O(h),存在 c 2 > 0 c_{2}>0 c2>0 和正整数 n 2 n_{2} n2 使得当使得当 n ⩾ n 2 n \geqslant n_{2} nn2 时, 有 g ( n ) ⩽ c 2 h ( n ) g(n) \leqslant c_{2} h(n) g(n)c2h(n)

取常数 c 0 = max ⁡ { 2 c 1 , 2 c 2 } c_{0}=\max \left\{2 c_{1}\right. , \left.2 c_{2}\right\} c0=max{2c1,2c2} n 0 = max ⁡ { n 1 , n 2 } n_{0}=\max \left\{n_{1}, n_{2}\right\} n0=max{n1,n2}, 那么当 n ⩾ n 0 n \geqslant n_{0} nn0 时,可以得到
f ( n ) + g ( n ) ⩽ c 1 h ( n ) + c 2 h ( n ) ⩽ c h ( n ) f(n)+g(n) \leqslant c_{1} h(n)+c_{2} h(n) \leqslant c h(n) f(n)+g(n)c1h(n)+c2h(n)ch(n)
由此可证 f + g = O ( h ) f + g = O(h) f+g=O(h)

1.2 设 n , a , b n, a, b n,a,b 为正整数, 证明下述性质:

⌈ ⌈ n a ⌉ b ⌉ = ⌈ n a b ⌉ , ⌊ ⌊ n a ⌋ b ⌋ = ⌊ n a b ⌋ \left\lceil\frac{\left\lceil\frac{n}{a}\right\rceil}{b}\right\rceil=\left\lceil\frac{n}{a b}\right\rceil,\left\lfloor\frac{\left\lfloor\frac{n}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor\frac{n}{a b}\right\rfloor ban=abn,ban=abn

证明:

n n n a b ab ab的整数倍时,设 n = p a b n=pab n=pab,命题1和命题2的等式左右两边化简后均为 p p p,命题显然成立。

n n n不是 a b ab ab的整数倍时,设 n = p a b + r ( 0 < r < a b ) n=pab+r(0<r<ab) n=pab+r(0rab)

命题1等式左边进行如下化简:
⌈ ⌈ n a ⌉ b ⌉ = ⌈ ⌈ p a b + r a ⌉ b ⌉ = ⌈ p b + ⌈ r a ⌉ b ⌉ = ⌈ p + ⌈ r a ⌉ b ⌉ = p + ⌈ ⌈ r a ⌉ b ⌉ = p + 1 \left\lceil\frac{\left\lceil\frac{n}{a}\right\rceil}{b}\right\rceil=\left\lceil\frac{\left\lceil\frac{p a b+r}{a}\right\rceil}{b}\right\rceil=\left\lceil\frac{p b+\left\lceil\frac{r}{a}\right\rceil}{b}\right\rceil=\left\lceil{p+\frac{\left\lceil\frac{r}{a}\right\rceil}{b}}\right\rceil=p+\left\lceil\frac{\left\lceil \frac{r}{a}\right\rceil}{b}\right\rceil=p+1 ban= bapab+r =bpb+ar=p+bar=p+bar=p+1
命题1等式右边进行如下化简:
⌈ n a b ⌉ = ⌈ p a b + r a b ⌉ = ⌈ p + r a b ⌉ = p + ⌈ r a b ⌉ = p + 1 \left\lceil\frac{n}{a b}\right\rceil=\left\lceil\frac{pab+r}{a b}\right\rceil=\left\lceil{p+\frac{r}{a b}}\right\rceil=p+\left\lceil{\frac{r}{a b}}\right\rceil=p+1 abn=abpab+r=p+abr=p+abr=p+1
由此可证
⌈ ⌈ n a ⌉ b ⌉ = ⌈ n a b ⌉ \left\lceil\frac{\left\lceil\frac{n}{a}\right\rceil}{b}\right\rceil=\left\lceil\frac{n}{a b}\right\rceil ban=abn
同理对命题2等式左边进行化简:
⌊ ⌊ n a ⌋ b ⌋ = ⌊ ⌊ p a b + r a ⌋ b ⌋ = ⌊ p b + ⌊ r a ⌋ b ⌋ = ⌊ p + ⌊ r a ⌋ b ⌋ = p + ⌊ ⌊ r a ⌋ b ⌋ = p \left\lfloor\frac{\left\lfloor\frac{n}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor\frac{\left\lfloor\frac{p a b+r}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor\frac{p b+\left\lfloor\frac{r}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor{p+\frac{\left\lfloor\frac{r}{a}\right\rfloor}{b}}\right\rfloor=p+\left\lfloor\frac{\left\lfloor \frac{r}{a}\right\rfloor}{b}\right\rfloor=p ban= bapab+r =bpb+ar=p+bar=p+bar=p
对命题2等式右边进行化简:
⌊ n a b ⌋ = ⌊ p a b + r a b ⌋ = ⌊ p + r a b ⌋ = p + ⌊ r a b ⌋ = p \left\lfloor\frac{n}{a b}\right\rfloor=\left\lfloor\frac{pab+r}{a b}\right\rfloor=\left\lfloor{p+\frac{r}{a b}}\right\rfloor=p+\left\lfloor{\frac{r}{a b}}\right\rfloor=p abn=abpab+r=p+abr=p+abr=p
由此可证
⌊ ⌊ n a ⌋ b ⌋ = ⌊ n a b ⌋ \left\lfloor\frac{\left\lfloor\frac{n}{a}\right\rfloor}{b}\right\rfloor=\left\lfloor\frac{n}{a b}\right\rfloor ban=abn

1.3 对于下面每个函数 f ( n ) f(n) f(n), 用 Θ 符号表示成 f ( n ) = Θ ( g ( n ) ) f(n) = Θ(g(n)) f(n)=Θ(g(n)) 的形式, 其中 g ( n ) g(n) g(n) 要尽可能简洁. 比如 f ( n ) = n 2 + 2 n + 3 f(n) = n^2 + 2n + 3 f(n)=n2+2n+3 可以写成 f ( n ) = Θ ( n 2 ) f(n) = Θ(n^2 ) f(n)=Θ(n2). 然后按照阶递增的顺序将这些函数进行排列:

( n − 2 ) ! , 5 log ⁡ ( n + 100 ) 10 , 2 2 n , 0.001 n 4 + 3 n 3 + 1 , ( ln ⁡ n ) 2 n 1 / 3 + log ⁡ n , 3 n , log ⁡ ( n ! ) , log ⁡ ( n n + 1 ) , 1 + 1 2 + ⋯ + 1 n \begin{array}{c} (n-2) !, 5 \log (n+100)^{10}, 2^{2 n}, 0.001 n^{4}+3 n^{3}+1,(\ln n)^{2} \\ n^{1 / 3}+\log n, 3^{n}, \log (n !), \log \left(n^{n+1}\right), 1+\frac{1}{2}+\cdots+\frac{1}{n} \end{array} (n2)!,5log(n+100)10,22n,0.001n4+3n3+1,(lnn)2n1/3+logn,3n,log(n!),log(nn+1),1+21++n1

解:

下表格从上到下按照函数的阶递增的顺序排列:

Θ表达式函数
Θ ( log ⁡ n ) \Theta(\log n) Θ(logn) 1 + 1 2 + ⋯ + 1 n , 5 log ⁡ ( n + 100 ) 10 1+\frac{1}{2}+\cdots+\frac{1}{n}, 5 \log (n+100)^{10} 1+21++n1,5log(n+100)10
Θ ( log ⁡ 2 n ) \Theta\left(\log ^{2} n\right) Θ(log2n) ln ⁡ n ) 2 \ln n)^{2} lnn)2
Θ ( n 3 ) \Theta(\sqrt[3]{n}) Θ(3n ) n 1 / 3 + log ⁡ n , 3 n n^{1 / 3}+\log n, 3^{n} n1/3+logn,3n
Θ ( n log ⁡ n ) \Theta(n \log n) Θ(nlogn) log ⁡ ( n n + 1 ) , log ⁡ ( n ! ) \log \left(n^{n+1}\right),\log (n !) log(nn+1),log(n!)
Θ ( n 4 ) \Theta\left(n^{4}\right) Θ(n4) 0.001 n 4 + 3 n 3 + 1 0.001 n^{4}+3 n^{3}+1 0.001n4+3n3+1
Θ ( 3 n ) \Theta\left(3^{n}\right) Θ(3n) 3 n 3^{n} 3n
Θ ( 4 n ) \Theta\left(4^{n}\right) Θ(4n) 2 2 n 2^{2 n} 22n
Θ ( ( n − 2 ) ! ) \Theta((n-2) !) Θ((n2)!) ( n − 2 ) ! (n-2) ! (n2)!

1.4 求解以下递推方程:

{ T ( n ) = T ( n − 1 ) + n 2 T ( 1 ) = 1 \left\{\begin{array}{c} T(n)=T(n-1)+n^{2} \\ T(1)=1 \end{array}\right. {T(n)=T(n1)+n2T(1)=1

解:

由递推公式 T ( n ) = T ( n − 1 ) + n 2 T(n)=T(n-1)+n^{2} T(n)=T(n1)+n2不断迭代可得
T ( n ) = n 2 + ( n − 1 ) 2 + ⋯ + 2 2 + T ( 1 ) = 1 + 2 2 + ⋯ + n 2 = n ( n + 1 ) ( 2 n + 1 ) 6 = Θ ( n 3 ) T(n) =n^{2}+(n-1)^{2}+\cdots+2^{2}+T(1)\\=1+2^{2}+\cdots+n^{2}=\frac{n(n+1)(2 n+1)}{6}=\Theta\left(n^{3}\right) T(n)=n2+(n1)2++22+T(1)=1+22++n2=6n(n+1)(2n+1)=Θ(n3)

1.5 求解以下递推方程:

{ T ( n ) = 9 T ( n / 3 ) + n T ( 1 ) = 1 \left\{\begin{array}{c} T(n)=9 T(n / 3)+n \\ T(1)=1 \end{array}\right. {T(n)=9T(n/3)+nT(1)=1

解:

已知 a = 9 , b = 3 , f ( n ) = n a=9,b=3,f(n)=n a=9,b=3,f(n)=n,运用主定理可得
T ( n ) = Θ ( n log ⁡ 3 9 ) = Θ ( n 2 ) T(n)=\Theta\left(n^{\log _{3} 9}\right)=\Theta\left(n^{2}\right) T(n)=Θ(nlog39)=Θ(n2)

1.6 求解以下递推方程:

{ T ( n ) = T ( n 2 ) + T ( n 4 ) + c n , c  为常数  T ( 1 ) = 1 \left\{\begin{array}{c} T(n)=T\left(\frac{n}{2}\right)+T\left(\frac{n}{4}\right)+c n, c \text { 为常数 } \\ T(1)=1 \end{array}\right. {T(n)=T(2n)+T(4n)+cn,c 为常数 T(1)=1

解:

对该递推方程构建递归树求解,可得第x个递归层复杂度总和为 ( 3 4 ) x − 1 c n \left(\frac{3}{4}\right)^{x-1}cn (43)x1cn

由此可得
T ( n ) = T ( n 2 ) + T ( n 4 ) + c n = T ( n 4 ) + 2 T ( n 8 ) + T ( n 16 ) + 3 c n 4 + c n = c n + 3 c n 4 + ( 3 4 ) 2 c n + ⋯ = [ 1 + 3 4 + ( 3 4 ) 2 + ⋯   ] c n = Θ ( n ) T(n)=T\left(\frac{n}{2}\right)+T\left(\frac{n}{4}\right)+c n=T\left(\frac{n}{4}\right)+2T\left(\frac{n}{8}\right)+T\left(\frac{n}{16}\right)+\frac{3 c n}{4}+c n\\=c n+\frac{3 c n}{4}+\left(\frac{3}{4}\right)^{2} c n+\cdots=\left[1+\frac{3}{4}+\left(\frac{3}{4}\right)^{2}+\cdots\right] c n=\Theta(n) T(n)=T(2n)+T(4n)+cn=T(4n)+2T(8n)+T(16n)+43cn+cn=cn+43cn+(43)2cn+=[1+43+(43)2+]cn=Θ(n)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140015.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

错题记录2:源码补码二进制转换

补码原码二进制一直是本人比较头疼的问题,今日找题目来做发现还是错得多,记录以下,再回顾一遍。 1.如下代码输出的是什么( ) char a101; int sum200; a27;suma; printf("%d\n",sum); A: 327 B: 99 C: 3…

【MySQL】详解MySQL数据库事务

MySQL数据库事务数据库事务特性事务的并发问题事务的隔离级别分布式事务解决方案1.XA 协议2.TCC3.消息一致性方案4.阿里云中的全局事务服务 GTS数据库事务特性 数据库事务具备ACID四大特性: 原子性:是指事务操作时具备原子操作的,就是说整…

分布式系统架构

分布式系统定义 分布式系统:硬件或软件组件分布在不同的网络计算机上,彼此之间仅仅通过消息传递进行通信和协调的系统。 为什么需要分布式系统 提升系统吞吐量:集群协同解决单机性能瓶颈提高系统可用性 :冗余部署,各…

OSS阿里云存储

一、开通“对象存储OSS”服务 2、进入管理控制台 二、控制台使用 点击Buket列名,Buket可以看作是一系列的虚拟内存空间它是一个独立的小个体 创建mystudent 创建成功后就有下面的样子了 ,创建的时候读写权限,我们选择公共读&#xff0c…

matlab中sign函数的使用(提取符号)

仅用于记录自己学习过程中遇到的函数 matlab中sign函数的使用,提取符号 一、语法 Y sign(x) 返回与 x 大小相同的数组 Y,其中 Y 的每个元素是: 1,前提是 x 的对应元素大于 0。 0,前提是 x 的对应元素等于 0。 -1&am…

CAP定理与分布式事务理论

文章目录一、CAP定理1.1 一致性1.2 可用性1.3 分区容错1.4 定理的矛盾点二、分布式事务理论2.1 BASE理论2.2 解决分布式事务思路一、CAP定理 分布式系统有三个指标。 Consistency(一致性)Availability(可用性)Partition toleranc…

GBASE斩获2022科技赋能金融业数字化转型突出贡献奖

12月27日,由中国人民银行主管的《金融电子化》杂志社主办的“2022中国金融科技年会暨第十三届金融科技应用创新奖颁奖典礼”成功举办,在本次活动上,GBASE南大通用“多模多态分布式数据库GBase 8c”,荣获“2022科技赋能金融业数字化…

PyCharm高级配置

pycharm设置内存大小步骤1,Help -> FindAction -> (输入 “VM”) -> (点击)“Edit Custom VM options”2,Pycharm会在编辑器中打开适当的vmoptions文件(pycharm.vmoptions或pycharm64.options)。3,将**-Xms**…

CCIE重认证350-401

拖图题 QoS traffic policing: causes TCP retransmissions when traffic is dropped导致TCP重传时流量下降 introduces no delay and jitter引入无延迟和抖动 drops excessive traffic减少过多的流量 traffic shaping: buffers excessive traffic缓冲过多的流量 introduce…

Sensor+ISP专栏-Demosaic

SensorISP专栏-Demosaic 1.what is raw raw图指的是从cmos sensor直接输出的原始图像,它本身没有颜色分量。在CMOS Sensor中使用彩色滤镜阵列(color filter array,CFA) 的方式捕获彩色图像,每个感光像素的上面覆盖一个语物理像素相同面积大…

OpenStack-Mitaka版本部署

1.环境准备 centos7.2相关文件 镜像:https://mirrors.aliyun.com/centos-vault/7.2.1511/isos/x86_64/CentOS-7-x86_64-DVD-1511.iso?spma2c6h.25603864.0.0.5c565932JYniuU openstack-mitaka rpm包:https://mirrors.aliyun.com/centos-vault/7.2.15…

hadoop 3.x 案例7: hadoop大数据平台日志

文章目录一. Hadoop日志1.1 namenode日志1.2 datanode日志1.3 secondarynamenode日志1.4 yarn日志1.4.1 resourcemanger日志1.4.2 nodemanager日志1.5 historyServer日志二. Hive日志三. Spark日志四. Flink日志一. Hadoop日志 cd $HADOOP_HOME/logs日志分类: namenode日志 d…

【ROS】—— ROS通信机制进阶(七)

文章目录前言1. 常用API(C)1.1 初始化1.2 话题与服务相关对象1.3 回旋函数(重点)1.4 时间1.4.1 获取当前时刻and指定时刻1.4.2 持续时间1.4.3 时间运算1.4.4 设置运行频率1.4.5 定时器1.5 其他函数2. 常用API(python)2.1 初始化2.2 话题与服务相关对象2.3 回旋函数2.4 时间2.4.…

Bandit算法学习[网站优化]02——epsilon-Greedy 算法

Bandit算法学习[网站优化]02——epsilon-Greedy 算法 参考资料 White J. Bandit algorithms for website optimization[M]. " O’Reilly Media, Inc.", 2013.https://github.com/johnmyleswhite/BanditsBook 实验环境:jupyter python 3.7 项目地址&am…

twrp Xposed zip包脚本定制全解析

声明:本文不对印刷机导致的任何结果承担责任,请谨慎尝试 想要研究一个新技术,最好的办法就是read the fuck source code,读源码时最直接高效的方式,当然,这很难啃,所以通常也可以配合网上一些教程来理解,但是通常,值钱的技术一般人是不会在网上发布的,因为技术的价值就…

大厂必备Stream流、方法引用的使用

大厂必备Stream流、方法引用的使用 1 Stream的基本使用 1.1 思想 当需要对多个元素进行操作(特别是多步操作)的时候,考虑到性能及便利性,我们应该首先拼好一个“模型”步骤方案,然后再按照方案去执行它。【流水线】 …

spring源码-容器refresh

spring源码 铺垫 1.xml信息封装 我们可以预测的大致顺序 xml里的bean 封装成对象定义信息更容易进一步的 创建 注入 BeanDefinition的属性:可以看出是对xml里信息的封装 public interface BeanDefinitionReader 定义规范2.使用反射 为什么不用new创建对象&#x…

NXP EMDA学习(1):TCD寄存器详解

eDMA(Enhanced DMA)即增强型DMA,它是NXP芯片中独有的功能,其最重要的一个特性也是eDMA的核心就是TCD(Transfer Control Descriptor)即传输控制描述符。所以,我们就来看一下这个结构体中各个字段的内容的含义,对这些字段有一个基础…

位置检测有哪些传感器可以用?(带磁编码器AS5600代码)

常见的有三种 编码器、霍尔传感器、磁传感器。 编码器一般指AB相正交脉冲的增量器件,有的还会有一个Z相信号,用来指示零位; 霍尔传感器一般是指ABC三个成120度角度间隔排列的器件,这种传感器一般集成在电机内部,电机…

[Amazon]人工智能入门学习笔记---AI-机器学习-深度学习

⬜⬜⬜ 🐰🟧🟨🟩🟦🟪 (*^▽^*)欢迎光临 🟧🟨🟩🟦🟪🐰⬜⬜⬜ ✏️write in front✏️ 📝个人主页:陈丹宇jmu &a…