Lecture 9

2024-03-25 21:59
文章标签 lecture

本文主要是介绍Lecture 9,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

绪论

这一章节介绍的是divide-and-conquer multiplication,divide的意思是分开,conquer的意思是占据,控制,divide-and-conquer直译下来就是分开后控制,其实就是分而治之的意思,multiplication的意思是乘法。divide-and-conquer multiplication算法的主要核心思想就是分治,通过分治来简化各种较为复杂的乘法运算。

后面还介绍了有关FFT的知识点,因为我也是问了别人才弄懂的,不做过多赘述。


Integer Multiplication

首先讨论实数与实数(整型与整型,浮点型与浮点型)之间的运算:

之前提到过基础的运算加减乘除,左移右移等的复杂度都视作O(1),这个O(1)不是说只做一次操作,而是相对于字节长度固定的整型(浮点型)而言,因为字节长度也就是位数固定,和位数相关的运算的复杂度也看做常数级。

例如加减运算和左移右移运算,如果限定的位数为n,需要依次对每一位进行运算和记录进位,所以复杂度为O(n)

int整型的位数为32,也就是说一次加法运算做的操作次数约为32个常数单位。

在这里插入图片描述
如果是两个二进制数的乘法,需要其中的一个二进制数对另一个二进制数的每一位逐步进行运算,然后将运算的结果进行错位的相加。每一位(乘法)运算的复杂度为O(n),n位的运算的复杂度就为O(n2),错位相加总共需要相加的位数为n*n=n2,根据前面的结论也可以得到复杂度为O(n2),总结n位二进制数相乘的复杂度为O(n2)。

int整型的位数为32,也就是说一次乘法运算做的操作次数约为32*32=1024个常数单位。同样都为基础运算,相较于加减法和左右移位,乘法的复杂度就要高很多。这就是为什么在前面提到的哈希技术中,需要尽可能地将乘法和模运算用左移右移运算来代替。

在这里插入图片描述

上面是一般的二进制乘法,分治思想是考虑将大的问题分割成若干个子问题解决,用分治法来优化二进制乘法就是将n位的二进制数相乘看作一个规模为n的问题,将一个二进制数分割成前半的部分和后半的部分,前半和后半的部分分别进行计算,规模为n的问题不断地切割成若干个规模为n/2的问题。

在这里插入图片描述

伪代码和对应部分的时间复杂度如下:

这篇关于Lecture 9的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/846368

相关文章

【UCB CS61C】Lecture 2 3 - C Basics

目录 C 语言的编译(Compilation)变量类型(Variable Types)字符(Characters) C 语言的类型转换(Typecasting)类型函数(Typed Functions) 结构体(Structs)成员的对齐与填充(Alignment & Padding)节省结构体对齐填充的空间 联合体(Unions)`main()` 函数True or False?指针(Po

MEMS:Lecture 18 Feedback

讲义 Linear feedback MEMS热板 Hotplate MEMS(微机电系统)热板是现代气体传感器的重要组成部分。它们通过加热一种活性材料来工作,这种材料与气体发生反应,从而改变其电阻。电阻的变化可以用来检测和测量特定气体的存在和浓度。 MEMS热板通常由以下几个部分组成: 加热元件:通常是由薄金属膜(如钛/钛氮化物)构成的螺旋形加热器。这些加热器被设计成能够快速且均匀

智能数据分析(1)Lecture 6-8b

Lecture 6: Generative Models 生成模型 vs 判别模型 判别模型(Discriminative Models) 判别模型的主要任务是直接学习输入 x x x 和类别 y y y 之间的关系。它们不关心数据的生成过程,而是直接估计类别的边界。 定义:判别模型直接学习 p ( y ∣ x ) p(y|x) p(y∣x),即在给定输入 x x x 的情况下,属

【计算机视觉】Lecture 22:相机运动

移动的相机 相机拍摄由时间t索引的图像(帧)序列 从一个时间到下一个时间,相机经历旋转(滚转、俯仰、偏航)和平移(tx、ty、tz) 运动(位移)场 运动场Motion Field和光流Optic Flow 运动场:三维相对速度矢量在二维图像平面上的投影 光流:在图像中观察到的亮度模式(brightness patterns)的二维位移 运动场是我们想知道的。 光流是我们可以

【计算机视觉】Lecture 20:八点法

提醒 本质/基础矩阵 本质矩阵和基础矩阵都是 3x3 的矩阵,用于“编码”两个视图的对极几何。 动机:给定一张图像中的一个点,乘以本质/基础矩阵将告诉我们在第二个视图中沿着哪个极线搜索。 本质/基础矩阵总结 Longuet-Higgins方程 极线: 极点: 本质矩阵 vs 基础矩阵: 本质矩阵E在成像坐标上作用(内参校准相机) 基础矩阵F在像素坐标上作用(未内参校准

【计算机视觉】Lecture 19:本质矩阵和基础矩阵

对极几何 左边 极点:相机1所看到的相机2的位置。 右边 极点:相机2所看到的相机1的位置 对极几何 对应点位于共轭极线上 对极几何 给定一幅图像中的一个点,我们如何确定在第二幅图像中要搜索的对应极线? 本质矩阵Essential Matrix 本质矩阵和基础矩阵都是 3x3 的矩阵,用于“编码”两个视图的对极几何。 动机:给定一张图像中的一个点,乘以本质/基础矩阵将告

【计算机视觉】Lecture 18:广义的立体视觉:对极几何

广义的立体视觉 主要思想:任何两张有重叠视图的图像,它们都可以被视为一对立体图像 我们只需要弄清楚这两个视图是如何关联的 视觉中一些最“漂亮”的数学问题是描述多个视图之间的几何关系。 回忆:对极约束(Epipolar Constraint) 重要的立体视觉概念: 给定左图像上的一个点,我们不必在整个右图像中搜索对应的点 “对极约束”将搜索空间缩小为一条一维的直线。 回顾:简单的立体

【计算机视觉】Lecture 17:拼接与稳定

回忆:平面投影 回忆:射影(逆)变换 回忆:平面投影 应用:稳定(Stabilization) 给定一系列视频帧,将它们变换到一个公共图像坐标系 这样“稳定”了视频,使其看起来好像相机不动一样。 稳定例子 链式稳定 如果参考图像没有与所有源图像重叠怎么办?只要有成对重叠,我们就可以连锁(合成)成对单应性变换。 不建议用于长序列,因为对齐误差会随着时间累积

【计算机视觉】Lecture 16:平面单应变换

动机:在平面上的点 回顾:正向投影 世界坐标系到相机坐标系的变换 透视矩阵方程(相机坐标系到成像坐标系) 成像坐标系到像素坐标系 从成像坐标(x,y)到像素坐标(u,v)的二维仿射变换Maff 平面上点的投影 单应性矩阵H(平面投影变换) 单应性矩阵H(平面投影变换) 对于平面,3D到2D的透视投影降为2D到2D的变换。,并且此变换是可逆的 特殊情况:

【计算机视觉】Lecture 15:鲁棒估计:RANSAC

回忆:参数估计 假设我们找到了两幅图像之间的匹配点,我们认为它们是通过一些参数化变换(例如平移;尺度欧几里德;仿射)相关联的。我们如何估计此变换的参数? 基本策略 基于对应点的最小二乘估计 但这个方法有一些问题… 问题:异常点(外点Outliers) 粗略地说,外点是不符合模型的点。 错误数据->外点 粗略地说,外点是不符合模型的点。 符合模型的点被称为内点 外点问题 最