常用推荐算法简介5篇范文

时间:2019-05-14 19:24:46下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《常用推荐算法简介》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《常用推荐算法简介》。

第一篇:常用推荐算法简介

1.前言

随着互联网技术和社会化网络的发展,每天有大量包括博客,图片,视频,微博等等的信息发布到网上。传统的搜索技术已经不能满足用户对信息发现的需求,原因有多种,可能是用户很难用合适的关键词来描述自己的需求,也可能用户需要更加符合他们兴趣和喜好的结果,又或是用户无法对自己未知而又可能感兴趣的信息做出描述。推荐引擎的出现,可以帮用户获取更丰富,更符合个人口味和更加有意义的信息。

个性化推荐根据用户兴趣和行为特点,向用户推荐所需的信息或商品,帮助用户在海量信息中快速发现真正所需的商品,提高用户黏性,促进信息点击和商品销售。推荐系统是基于海量数据挖掘分析的商业智能平台,推荐主要基于以下信息: 热点信息或商品

用户信息,如性别、年龄、职业、收入以及所在城市等等 用户历史浏览或行为记录 社会化关系

2.个性化推荐算法

2.1.基于人口统计学的推荐(同类人喜欢什么就推荐什么)

基于人口统计学的推荐机制(Demographic-based Recommendation)是一种最易于实现的推荐方法,它只是简单的根据系统用户的基本信息发现用户的相关程度,然后将相似用户喜爱的其他物品推荐给当前用户。

首先,系统对每个用户都有一个用户 Profile 的建模,其中包括用户的基本信息,例如用户的年龄,性别等等;然后,系统会根据用户的 Profile 计算用户的相似度,可以看到用户 A 的 Profile 和用户 C 一样,那么系统会认为用户 A 和 C 是相似用户,在推荐引擎中,可以称他们是“邻居”;最后,基于“邻居”用户群的喜好推荐给当前用户一些物品。这种基于人口统计学的推荐机制的好处在于:

因为不使用当前用户对物品的喜好历史数据,所以对于新用户来讲没有“冷启动(Cold Start)”的问题。

这个方法不依赖于物品本身的数据,所以这个方法在不同物品的领域都可以使用,它是领域独立的(domain-independent)。

然后,这个方法的缺点和问题就在于,这种基于用户的基本信息对用户进行分类的方法过于粗糙,尤其是对品味要求较高的领域,比如图书,电影和音乐等领域,无法得到很好的推荐效果。另外一个局限是,这个方法可能涉及到一些与信息发现问题本身无关却比较敏感的信息,比如用户的年龄等,这些用户信息不是很好获取。

2.2.基于内容的推荐(用户喜欢什么,就推荐相同类型的)

基于内容的推荐是在推荐引擎出现之初应用最为广泛的推荐机制,它的核心思想是根据推荐物品或内容的元数据,发现物品或者内容的相关性,然后基于用户以往的喜好记录,推荐给用户相似的物品。这种推荐系统多用于一些资讯类的应用上,针对文章本身抽取一些tag作为该文章的关键词,继而可以通过这些tag来评价两篇文章的相似度。这种推荐系统的优点在于:

易于实现,不需要用户数据因此不存在稀疏性和冷启动问题。基于物品本身特征推荐,因此不存在过度推荐热门的问题。

然而,缺点在于抽取的特征既要保证准确性又要具有一定的实际意义,否则很难保证推荐结果的相关性。豆瓣网采用人工维护tag的策略,依靠用户去维护内容的tag的准确性。

2.3.基于关联规则的推荐(用户喜欢A,A和B有紧密联系,就推荐B)

基于关联规则的推荐更常见于电子商务系统中,并且也被证明行之有效。其实际的意义为购买了一些物品的用户更倾向于购买另一些物品。基于关联规则的推荐系统的首要目标是挖掘出关联规则,也就是那些同时被很多用户购买的物品集合,这些集合内的物品可以相互进行推荐。目前关联规则挖掘算法主要从Apriori和FP-Growth两个算法发展演变而来。基于关联规则的推荐系统一般转化率较高,因为当用户已经购买了频繁集合中的若干项目后,购买该频繁集合中其他项目的可能性更高。该机制的缺点在于: 计算量较大,但是可以离线计算,因此影响不大。

由于采用用户数据,不可避免的存在冷启动和稀疏性问题。存在热门项目容易被过度推荐的问题。

2.4.基于协同过滤的推荐

协同过滤是一种在推荐系统中广泛采用的推荐方法。这种算法基于一个“物以类聚,人以群分”的假设,喜欢相同物品的用户更有可能具有相同的兴趣。基于协同过滤的推荐系统一般应用于有用户评分的系统之中,通过分数去刻画用户对于物品的喜好。协同过滤被视为利用集体智慧的典范,不需要对项目进行特殊处理,而是通过用户建立物品与物品之间的联系。

目前,协同过滤推荐系统被分化为两种类型:基于用户(User-based)的推荐和基于物品(Item-based)的推荐。

2.4.1.基于用户的推荐

基于用户的协同过滤推荐的基本原理是,根据所有用户对物品或者信息的偏好(评分),发现与当前用户口味和偏好相似的“邻居”用户群,在一般的应用中是采用计算“K-Nearest Neighboor”的算法;然后,基于这 K 个邻居的历史偏好信息,为当前用户进行推荐。这种推荐系统的优点在于推荐物品之间在内容上可能完全不相关,因此可以发现用户的潜在兴趣,并且针对每个用户生成其个性化的推荐结果。缺点在于一般的Web系统中,用户的增长速度都远远大于物品的增长速度,因此其计算量的增长巨大,系统性能容易成为瓶颈。因此在业界中单纯的使用基于用户的协同过滤系统较少。2.4.2.基于物品的推荐

基于物品的协同过滤和基于用户的协同过滤相似,它使用所有用户对物品或者信息的偏好(评分),发现物品和物品之间的相似度,然后根据用户的历史偏好信息,将类似的物品推荐给用户。基于物品的协同过滤可以看作是关联规则推荐的一种退化,但由于协同过滤更多考虑了用户的实际评分,并且只是计算相似度而非寻找频繁集,因此可以认为基于物品的协同过滤准确率较高并且覆盖率更高。

同基于用户的推荐相比,基于物品的推荐应用更为广泛,扩展性和算法性能更好。由于项目的增长速度一般较为平缓,因此性能变化不大。缺点就是无法提供个性化的推荐结果。两种协同过滤,在基于用户和基于物品两个策略中应该如何选择呢?其实基于物品的协同过滤推荐机制是 Amazon 在基于用户的机制上改良的一种策略,因为在大部分的 Web 站点中,物品的个数是远远小于用户的数量的,而且物品的个数和相似度相对比较稳定;同时基于物品的机制比基于用户的实时性更好。但也不是所有的场景都是这样的情况,在一些新闻推荐系统中,也许物品,也就是新闻的个数可能大于用户的个数,而且新闻的更新程度也有很快,所以它的相似度依然不稳定。所以,推荐策略的选择其实也和具体的应用场景有很大的关系。

基于协同过滤的推荐机制是现今应用最为广泛的推荐机制,它有以下几个显著的优点: 它不需要对物品或者用户进行严格的建模,而且不要求物品的描述是机器可理解的,所以这种方法也是领域无关的。

这种方法计算出来的推荐是开放的,可以共用他人的经验,很好的支持用户发现潜在的兴趣偏好。

然后而它也存在以下几个问题:

方法的核心是基于历史数据,所以对新物品和新用户都有“冷启动”的问题。推荐的效果依赖于用户历史偏好数据的多少和准确性。

在大部分的实现中,用户历史偏好是用稀疏矩阵进行存储的,而稀疏矩阵上的计算有些明显的问题,包括可能少部分人的错误偏好会对推荐的准确度有很大的影响等等。对于一些特殊品味的用户不能给予很好的推荐。

由于以历史数据为基础,抓取和建模用户的偏好后,很难修改或者根据用户的使用演变,从而导致这个方法不够灵活。

3.推荐系统与广告投放

互联网上的主题广告推广(例如,百度推广,google adsense)的目标在于实现一个面向用户的个性化广告投放系统。通过把个性化推荐算法在广告投放中的应用,就实现了我们个性化广告投放的目标。那么,这种演变是如何实现的呢?

在互联网中,例如,百度,拥有大量的网页信息,而主题广告推广的对象不是用户而是某一类型的页面。通过类比,每种网页类型对应于推荐系统中的一个用户,而每一个广告就对应于推荐系统中的一个物品,网页类型(用户)对广告(物品)的评分则可以用该网页类型中投放广告时的点击情况来计算,这样就构成了一个user-item-rating的矩阵。也就是,通过协同过滤算法可以实现对不同类型的网页进行广告推荐。

此外,实际应用协同过滤算法来进行广告投放也存在一个些问题。例如,协同过滤中的“冷启动”问题,也就是新增广告条目的推荐需要额外考虑;同时,也需要考虑用户对广告的接受程度,广告库存率等问题。

4.业界个性化推荐系统

4.1.Yahoo!Resarch豆瓣猜

豆瓣网在国内互联网行业美誉度很高,这是一家以帮助用户发现未知事物为己任的公司。它的“豆瓣猜”是一种个性化的推荐,其背后采用了基于用户的协同过滤技术。那么,豆瓣猜是如何向我们推荐产品的呢?

首先,确定什么样的产品适合推荐?豆瓣猜提出选择”具有媒体性的产品(Media Product)“来进行推荐,即选择多样、口味很重要、单位成本不重要,同时能够广泛传播(InformationCascade)的产品;接着在对真实的数据集进行定量分析后,进一步得出,应该是条目增长相对稳定、能够快速获得用户反馈,数据稀疏性与条目多样性、时效性比较平衡的产品,才是适合推荐的产品。

其次,豆瓣网的推荐引擎面对高成长性的挑战,通过降低存储空间,近似算法与分布式计算的设计,来实现对基于用户的协同过滤推荐系统的线性扩展。

最后,针对当前推荐系统面临的问题,包括倾向于给出平庸的推荐,有信息无结构,以及缺乏对用户的持续关注等黑盒推荐问题。豆瓣提出了分为 Prediction,Forecasting,Recommendation 三个阶段的下一代推荐系统,并探讨了一种下一代推荐引擎的构想——基于用户行为模型的、有记忆的、可进化的系统。

4.4.Hulu的个性化推荐

Hulu是一家美国的视频网站,它是由美国国家广播环球公司(NBC Universal)和福克斯广播公司(Fox)在2007年3月共同投资建立的。在美国,Hulu已是最受欢迎的视频网站之一。它拥有超过250个渠道合作伙伴,超过600个顶级广告客户,3千万的用户,3亿的视频,以及11亿的视频广告。广告是衡量视频网站成功与否的一个重要标准。事实证明,Hulu的广告效果非常好,若以每千人为单位对广告计费,Hulu的所得比电视台在黄金时段所得还高。那么,是什么让Hulu取得了这样的成功呢?

通过对视频和用户特点的分析,Hulu根据用户的个人信息,行为模型和反馈,设计出一个混合的个性化推荐系统。它包含了基于物品的协同过滤机制,基于内容的推荐,基于人口统计的推荐,从用户行为中提炼出来的主题模型,以及根据用户反馈信息对推荐系统的优化,等等。此个性化推荐系统也进而成为了一个产品,用于给用户推荐视频。这个产品通过问答的形式,与用户进行交互,获取用户的个人喜欢,进一步提高推荐的个性化。

Hulu把这种个性化推荐视频的思想放到了广告投放中,设计出了一套个性化广告推荐系统。那么,这种广告系统是如何实现个性化的呢?

Hulu的用户对广告拥有一定控制权,在某些视频中你可以根据自己的喜好选择相应的广告,或者选择在开头看一段电影预告片来抵消广告。

Hulu收集用户对广告的反馈意见(评分),例如,某个广告是否对收看用户有用? 根据人口统计的信息,来投放广告。例如,分析Hulu用户的年龄,性别特征来同方不同的视频及广告。

根据用户的行为模式,进一步增加广告投放的准确性。

第二篇:全景拼接算法简介解读

全景拼接算法简介

罗海风 2014.12.11

目录

1.概述...................................................................................................................................1 2.主要步骤............................................................................................................................2 2.1.图像获取............................................................................................................................................2 2.2鱼眼图像矫正.....................................................................................................................................2 2.3图片匹配.............................................................................................................................................2 2.4 图片拼接.............................................................................................................................................2 2.5 图像融合.............................................................................................................................................2 2.6 全景图像投射....................................................................................................................................2 3.算法技术点介绍..................................................................................................................3 3.1 图像获取............................................................................................................................................3 3.2鱼眼图像矫正.....................................................................................................................................4 3.3 图片匹配............................................................................................................................................4

3.3.1与特征无关的匹配方式............................................................................................................4 3.3.2根据特征进行匹配的方式........................................................................................................5

3.4图片拼接.............................................................................................................................................5 3.5图像融合.............................................................................................................................................6

3.5.1平均叠加法................................................................................................................................6 3.5.2 线性法........................................................................................................................................7 3.5.3 加权函数法................................................................................................................................7 3.5.4 多段融合法(多分辨率样条)...............................................................................................7

3.6全景图像投射.....................................................................................................................................7

3.6.1 柱面全景图................................................................................................................................7 3.6.2 球面全景图................................................................................................................................7 3.6.3 多面体全景图............................................................................................................................8

4.开源图像算法库OPENCV拼接模块...................................................................................8 4.1 STITCHING_DETAIL程序运行流程.....................................................................................................8 4.2 STITCHING_DETAIL程序接口介绍.....................................................................................................9 4.3 测试效果..........................................................................................................................................10 5.小结.................................................................................................................................10 参考资料.............................................................................................................................10

1.概述

全景视图是指在一个固定的观察点,能够提供水平方向上方位角360度,垂直方向上180度的自由浏览(简化的全景只能提供水平方向360度的浏览)。

目前市场中的全景摄像机主要分为两种:鱼眼全景摄像机和多镜头全景摄像机。鱼眼全景摄像机是由单传感器配套特殊的超广角鱼眼镜头,并依赖图像校正技术还原图像的鱼眼全景摄像机。鱼眼全景摄像机最终生成的全景图像即使经过校正也依然存在一定程度的失真和不自然。多镜头全景摄像机可以避免鱼眼镜头图像失真的缺点,但是或多或少也会存在融合边缘效果不真实、角度有偏差或分割融合后有“附加”感的缺撼。

本文档中根据目前所查找到的资料,对多镜头全景视图拼接算法原理进行简要的介绍。

2.主要步骤

2.1.图像获取

通过相机取得图像。通常需要根据失真较大的鱼眼镜头和失真较小的窄视角镜头决定算法处理方式。单镜头和多镜头相机在算法处理上也会有一定差别。

2.2鱼眼图像矫正

若相机镜头为鱼眼镜头,则图像需要进行特定的畸变展开处理。

2.3图片匹配

根据素材图片中相互重叠的部分估算图片间匹配关系。主要匹配方式分两种: A.与特征无关的匹配方式。最常见的即为相关性匹配。

B.根据特征进行匹配的方式。最常见的即为根据SIFT,SURF等素材图片中局部特征点,匹配相邻图片中的特征点,估算图像间投影变换矩阵。

2.4 图片拼接

根据步骤2.3所得图片相互关系,将相邻图片拼接至一起。

2.5 图像融合

对拼接得到的全景图进行融合处理。

2.6 全景图像投射

将合成后的全景图投射至球面、柱面或立方体上并建立合适的视点,实现全方位的视图浏览。图1:opencv stitching模块进行图像拼接的处理流程

(部分步骤可选)

3.算法技术点介绍

3.1 图像获取 由于鱼眼镜头和常规镜头在生成全景图方面存在很大差异,其校正算法完全不同,因此需分开讨论。但是校正后的图像进行拼接步骤时的处理方法一定程度上可通用。A.单常规镜头拍摄多张图片方式(手持)

该方式很常见,在目前多种手机上均有相关全景功能。B.多个常规镜头组成的相机(或单镜头旋转扫描方式)

图2:三星2014年发布的360度全景照相机Project Beyond,内置16个摄像头

C.鱼眼镜头拍摄

图3:理光2013年发布双鱼眼全景相机RICOH THETA

3.2鱼眼图像矫正 若为鱼眼镜头采集的到的图像,必须对图像进行矫正。鱼眼镜头图像校正算法通常有两种:一种是球面坐标定位法,一种是经纬映射法。具体推导过程见参考资料【1】《鱼眼照片生成全景图算法的研究与实现》,矫正效果如下图所示:

图4:鱼眼图像及校正后的展开图

3.3 图片匹配

3.3.1与特征无关的匹配方式 与特征无关的匹配方式常见的为相关性匹配,一般都用于没有复杂变换的图像拼接情况下。该方式计算简单,仅为普通的灰度模板匹配。具体细节见参考文档【2】《全景图生成技术研究》。

图5:模板匹配法示意图

3.3.2根据特征进行匹配的方式

基于特征的匹配首先从图像上选取特征信息,然后识别出两幅图像对应的特征信息。常用的特征信息有特征轮廓,特征曲线,特征点,多采用特征点匹配法。

进行特征点匹配的第一步是提取所有素材图片的局部特征点。普遍来讲,一张图片所包含的特征点通常就是周围含有较大信息量的点,而仅通过这些富有特征的局部,基本就可以推测出整张图片。常见的特征点包括SIFT,FAST,SURF等。

图6:SITF特征点检测效果图。青色内容为检测到的SIFT特征点。由于特征点由特征向量表示,所以图中每个特征点显示为一个箭头。

形成特征向量之后下一个问题就是如何匹配了。最基本的方式可以称作“最邻近搜索”(Nearest

Neighbour),实际上也就是找在128维空间上直线距离最近的的特征向量,这个求直线距离的方式和2维无异,最近的特征向量也就被认为是互相匹配。SIFT原作者使用的方式是增加了k-d tree算法来高效率地完成高维度上的最邻近搜索。特征点匹配效果如下图所示。

图6:SITF特征点匹配效果图

3.4图片拼接

在以上步骤中得到了图像间的匹配关系,就可以根据这些关系进行图像的拼接了。按照图像匹配的不同方式,拼接处理也分两大类:

A.根据模板匹配的方式,可得到图片见的平移(或者包括缩放)参数,继而根据参数进行图像拼接操作;

B.根据特征点匹配的方式,则利用这些匹配的点来估算“单应矩阵”(Homography Estimation),也就是把其中一张通过个关联性和另一张匹配的方法。单应矩阵H效果如下:

通过单应矩阵H,可以将原图像中任意像素点坐标转换为新坐标点,转换后的图像即为适合拼接的结果图像。下图即为找出符合几何约束的特征点之后,通过单应矩阵来对齐两张图片的内容。

图7:根据特征点进行图像拼接的效果图

图8:多张图像拼接效果

3.5图像融合3.5.1平均叠加法

平均叠加法是直接对图像进行平均叠加。这是最简单的融合方法,会出现明显的拼接缝隙。

图像拼接后,需要对图像重叠部分进行融合处理。图像融合技术决定了最终图像合成质量,常用的有平均叠加法,线性法,加权法,多段融合法等。具体见参考文档【2】《全景图生成技术研究》。3.5.2 线性法

合。

3.5.3 加权函数法

3.5.4 多段融合法(多分辨率样条)

3.6全景图像投射 3.6.1 柱面全景图 固定视点,使相机在水平面内旋转一周拍摄场景,得到一组具有重叠区域的连续环视图像序列,将这组图像序列无缝拼合,并投影到柱面空间坐标,就得到了衣服柱面全景图。柱面投影就是讲图像投影到柱面上,它是一种透视投影而非平行投影,通俗的讲就是要活的从投影中心这一点上观察图像在柱面上的成像。下图表示将三维空间上的点(X,Y,Z)映射到柱面模型上得到对应于柱面模型上的点(x,y,z)的过程。其中θ为观察视域中心与X轴夹角,h为柱面模型高度,(x,y,z)为(X,Y,Z)在柱面模型上的投影。多段融合法是目前比较好的融合方法,拼接成的图像既清晰又光滑无缝,能避免缝隙问题和叠影现象。另外,如果选取好的最佳缝隙线,还能处理有轻微运动物体的图像拼接。但该方法运算量大是其明显缺陷。加权函数法与线性法类似,也是广泛应用的融合方法之一。该方法能有效去除边界缝隙,但在拼合区往往出现叠影模糊的现象。柱面图像的拼接多采用简单的线性法。图像映射到柱面坐标下,图像间就是简单的纯平面平移变换,局部对准后,对重叠区域用线性法融合。该方法适合柱面全景图生成,或者仅具有平移变换的两幅图像融

图9:柱面全景图生成模型

其中,图10:柱面全景图效果图

详细的柱面投影模型的推导过程,见参考文档【5】《柱面全景图拼接算法的研究》。

3.6.2 球面全景图 球面全景图是通过求取图像映射到球面的参数,将图像映射到球面模型上,然后得到的平面反展开图就是球面全景图或者部分球面全景图。

图11:球面投影变换结果图

图12:球面全景图拼接效果

3.6.3 多面体全景图 以景物中心为固定视点来观察整个场景,并将周围场景的图像记录在以该点为中心的环境映射到多面体上,这样环境映射以多面体全景图像的方式来提高其中心视点的场景描述。多面体全景图中以立方体最为简单,立方体全景图是由6幅广角为90度的画面组成。

图13:立方体全景图效果

4.开源图像算法库OpenCV拼接模块

4.1 stitching_detail程序运行流程

1.命令行调用程序,输入源图像以及程序的参数

2.特征点检测,判断是使用surf还是orb,默认是surf。

3.对图像的特征点进行匹配,使用最近邻和次近邻方法,将两个最优的匹配的置信度保存下来。4.对图像进行排序以及将置信度高的图像保存到同一个集合中,删除置信度比较低的图像间的匹配,得到开源图像算法库OpenCV在2.4.0版本后集成了一个全景图拼接模块stitch,其中一个较详细的样例代码stitching_detail.cpp简要介绍如下: 能正确匹配的图像序列。这样将置信度高于门限的所有匹配合并到一个集合中。5.对所有图像进行相机参数粗略估计,然后求出旋转矩阵 6.使用光束平均法进一步精准的估计出旋转矩阵。7.波形校正,水平或者垂直 8.拼接

9.融合,多频段融合,光照补偿,4.2 stitching_detail程序接口介绍 img1 img2 img3 输入图像

--preview 以预览模式运行程序,比正常模式要快,但输出图像分辨率低,拼接的分辨率compose_megapix 设置为0.6

--try_gpu(yes|no)是否使用GPU(图形处理器),默认为no /* 运动估计参数 */

--work_megapix <--work_megapix > 图像匹配的分辨率大小,图像的面积尺寸变为work_megapix*100000,默认为0.6

--features(surf|orb)选择surf或者orb算法进行特征点计算,默认为surf

--match_conf 特征点检测置信等级,最近邻匹配距离与次近邻匹配距离的比值,surf默认为0.65,orb默认为0.3

--conf_thresh 两幅图来自同一全景图的置信度,默认为1.0

--ba(reproj|ray)光束平均法的误差函数选择,默认是ray方法

--ba_refine_mask(mask)---------------

--wave_correct(no|horiz|vert)波形校验 水平,垂直或者没有 默认是horiz

--save_graph 将匹配的图形以点的形式保存到文件中,Nm代表匹配的数量,NI代表正确匹配的数量,C表示置信度 /*图像融合参数:*/

--warp(plane|cylindrical|spherical|fisheye|stereographic|compressedPlaneA2B1|compressedPlaneA1.5B1|compressedPlanePortraitA2B1|compressedPlanePortraitA1.5B1|paniniA2B1|paniniA1.5B1|paniniPortraitA2B1|paniniPortraitA1.5B1|mercator|transverseMercator)

选择融合的平面,默认是球形

--seam_megapix 拼接缝像素的大小 默认是0.1------------

--seam(no|voronoi|gc_color|gc_colorgrad)拼接缝隙估计方法 默认是gc_color

--compose_megapix 拼接分辨率,默认为-1

--expos_comp(no|gain|gain_blocks)光照补偿方法,默认是gain_blocks

--blend(no|feather|multiband)融合方法,默认是多频段融合--blend_strength 融合强度,0-100.默认是5.--output 输出图像的文件名,默认是result,jpg

命令使用实例,以及程序运行时的提示: 4.3 测试效果

图14:usb摄像头拍摄的办公室90度视角的六张图像

图15:生成的全景图

OpenCV的图像拼接模块效果良好,但是由于考虑到及其缺乏条件的情况,因此算法方面采用了很多很复杂的方法,如待拼接的图像顺序不明,基于特征点的图像匹配,迭代优化估计相机焦距参数等,耗时十分长(此例子中,耗时大约十几分钟)。当有合适的硬件配合时,整个算法流程可以大大简化。

5.小结

本文档根据网上搜集到的部分信息,对全景拼接算法进行了概括性的介绍,并展示了开源图像算法库根据已有的结果,可以看出,以opencv全景模块为算法流程蓝本,过程过于复杂,暂时无法实现实opencv的全景图拼接效果测试效果。

时性。而相对的,利用一些先验知识(如素材图像顺序)和硬件条件(相机参数,拍摄约束等),可以大大简化图像拼接算法流程和难度,关键的步骤如图像几何模型投影等内容,又已经搜集到了相关文献,可以学习详细推导过程,从而自行编程实现完整算法流程。

参考资料

1.鱼眼照片生成全景图算法的研究与实现,程菊明等,计算机工程与应用,2007 2.全景图生成技术研究,李艳丽,山东大学硕士毕业论文,2007 3.球面全景图像生成技术的研究,杨燕等,2007 4.全景图像拼接技术研究现状综述,江铁等,重庆工商大学学报,2012 5.柱面全景图拼接算法的研究,付金红,哈尔滨理工大学硕士毕业论文,2005 6.Stitching Pipeline, OpenCV Reference, http://docs.opencv.org/modules/stitching/doc/introduction.html 7.合成全景图中计算机视觉技术的知识和原理 http://

10.三星发布360度全景相机Project Beyond http://tech.sina.com.cn/digi/dc/2014-11-14/09059791064.shtml

11.理光发布双鱼眼镜头全景相机http://www.xiexiebang.com.hk/dc/talk/1439/4389/1/

12.Stitching_detail算法介绍 http://blog.csdn.net/skeeee/article/details/19480693

读书的好处

1、行万里路,读万卷书。

2、书山有路勤为径,学海无涯苦作舟。

3、读书破万卷,下笔如有神。

4、我所学到的任何有价值的知识都是由自学中得来的。——达尔文

5、少壮不努力,老大徒悲伤。

6、黑发不知勤学早,白首方悔读书迟。——颜真卿

7、宝剑锋从磨砺出,梅花香自苦寒来。

8、读书要三到:心到、眼到、口到

9、玉不琢、不成器,人不学、不知义。

10、一日无书,百事荒废。——陈寿

11、书是人类进步的阶梯。

12、一日不读口生,一日不写手生。

13、我扑在书上,就像饥饿的人扑在面包上。——高尔基

14、书到用时方恨少、事非经过不知难。——陆游

15、读一本好书,就如同和一个高尚的人在交谈——歌德

16、读一切好书,就是和许多高尚的人谈话。——笛卡儿

17、学习永远不晚。——高尔基

18、少而好学,如日出之阳;壮而好学,如日中之光;志而好学,如炳烛之光。——刘向

19、学而不思则惘,思而不学则殆。——孔子

20、读书给人以快乐、给人以光彩、给人以才干。——培根

第三篇:GPA算法与专业考试简介

GPA算法与专业考试简介

2008-12-14 14:10:50|分类:|标签: |字号大中小 订阅

GPA英语全称是grade point average,意思就是平均分,美国的GPA满分是4分,即A=4,B=3,C=2,D=1.GPA的精确度往往达到小数点后1到2位,如:3.0,3.45。GPA的计算一般是将每门课程的学分乘以 学时,加起来以后除以总的学时,得出平均分。中国学校的分数设置一般是百分制或五分制,具体的折合方式视不同的美国大学的要求而有所不同,一般来讲,百分制中的90分以上可视为4分,80分以上 为3分,70分以上为2分,60分以上为1分,五分制中的5分为4分,4分为3分,3分为2分,2分为1分。中 国许多大学的成绩单上没有学时,因此,GPA只能估算,可将所有课程的成绩加起来后除

以课程数。一 般美国大学对于奖学金申请者的GPA要求是3.0以上。

GPA常识

GPA是令很多人头痛的问题。我个人是换算了,不过最后好象换算有问题,不过没有一个学校找过我麻烦。我的几个朋友,没有换算,直接把成绩单寄了过去,出于礼貌的角度,建议大家还是要换算了。

希望有GPA问题的人要好好理解我这段话哦!!

这里给大家个简单介绍。不过我在网上见到过其他的文章说在英国的PGA标准有所不同的。GPA英语全称是grade point average,意思是平均成绩点数。美国多数大学对申请人GPA都有最低规定,不够最低要求的不予考虑。

GPA一般用4分制计算,换算方法参见下表:

百分制分数 等级 成绩点数

90-100A

480-89B

370-79C

260-69D

160以下E0

GPA的标准计算方法是将大学成绩的加权平均数乘以4,再除以100。比较常见的方法还有把各科成绩按

等级乘以学求和再以总学分除之。

例如某学生的五门课程的学分和成绩为:

A课程四个学分,成绩92(A);

B课程三个学分,成绩80(B);

C课程两个学分,成绩98(A);

D课程六个学分,成绩70(C);

E课程三个学分,成绩89(B)。

以上五项成绩GPA为:

标准算法GPA=[(92*4+80*3+98*2+70*6+89*3)*4]/[(4+3+2+6+3)*100]=3.31

常见算法GPA=(4*4+3*3+2*4+6*2+3*3)/(4+3+2+6+3)=3.00

在具体运用中,美国大学经常采用总平均绩点与最后两年平均绩点。总平均绩点(Overall GPA)是将全部所修学科按上述方法计算出来的点数,最后两年平均绩点(GPA for the last two years)即将最后两年所修

各科按上述方法计算出来的点数。

在美国,90%的学校GPA计算方法是采取4分制(4.00 scale)的,仅有1%的学校会采取5分制,即A等成绩为5,B等为4,C等为3,D等为2,F等为1,这些学校的最低入学标准也就相应的提高了。中国学生在申请时,应按照自己原先学校采用的GPA制提供成绩,同时注明采用了哪一种的GPA制。对我国学生很不利的是中国大部分学校的评分都相当严,很多实际成绩很优秀的学生把分数换算成GPA后却还不够3.0,在有些大学里班上前5名学生的总平均成绩都可能会在82分以下,这样在申请美国大学时,GPA都要变成3.O或更低,只能进一些三四流的学校。为了消除这种不利,可以采用两种方法:一是在成绩单或是推荐信以及读书计划中说明这种GPA实际上是由于评分标准十分严格而导致的;二是在提供

成绩单的时候,列明这样的成绩在全班,或是全系所排的名次以及百分比。

美国大学成绩单与GPA的算法

美国大学在评定学生成绩时,是采取GPA,即Grade Point Average的缩写(平均成绩点数)。在申请学校时,GPA十分重要,很多大学有最低GPA规定,除了英文能力测验以外。GPA的计算是把各科成绩按

等级乘以学分,再以总学分除之。

美国学生各科成绩是以A.B.C.D等级计算。

等级成绩和分数成绩换算如下:

分数等级点数表现

91-100A4.0极佳

81-90B3.0佳

71-80C2.0平均

61-70D1.0差

51-60E0不及格

通常大学部学生拿到C以上成绩都可以。但研究所硕士学生,至少要拿到B的成绩。

在申请入学时,很多学校有GPA规定。GPA的计算是:

1、每个科目以等级点数乘以学分。比如微积分是四学分的课,成绩是A(即4点),微积分一科可得16

点。

2、如果一学期修了四门课,英文3学分(成绩4点)、历史3学分(成绩2点)物理3学分(成绩3点),加上微积分。

GPA是16+4×3+3×2+3×3=43,除以13=3.31。此学生的GPA等于是比B略好。

在索取学校资料的同时,可以先报名参加一些留美不可或缺的测验。美国没有国家性的考试,大部分学校

是以一些标准化测验来评核学生能力。最常见的测验如下:

1、TOEFL(Test of English as a Foreign Language)TOEFL托福是英语非母语的外国学生英文测验,分听力、阅读、写作三项。美国的大学要求外国学生考过托福,证明有相当的英文程度才可以修课。大部分要求500分以上即可,有的较严,要550分,甚至600分才行。但也有学校能够稍微通融,愿让学生有条件性的入学。先入学进修英文,然后再修本科课程,如果已考过托福,日后要求测验中心补寄成绩单到申请的大学,通常要六周时间。

托福考试的计分方式,第一部分和第二部分是从20到68,第三部分从20到67,托福总分可以从200开

始,满分677。总分的算法是三个部分加起来乘10除3。例:

Section 1 Section 2 Section 3 Sum46 + 54 + 50=150(150×10)÷3=500以上的托福总分是500分,ETS替

学生寄资料的有效期是两年。

除了TOEFL,还有别的测验英文能力的考试。例如TWE(Test of Written English)书写英文能力考试和

TSE(Test of Spoken English)口语能力考试。

如果有留美的决心,一定要具备基本的听、说、写及阅读英文的能力,除了考托福外,日常生活用英文也

要加强。可以从听英文广播、看电视、多读英文报纸杂志等培养能力。

2、GRE(Graduate Record Exam)大部分大学研究所会要求学生考GRE,其性质有二种,一种是性向测验,一种是学科测验。一般要求的多是性向测验,目的是了解学生的智力、数学、分析能力。少数研究所要求考学科的GRE,评估对本科的知识程度,有生化、生物、化学、经济、工程、心理等科。如果在校成绩不是理想,GRE考的好,在申请研究所会有帮助。一般性向GRE成绩平均标准约在1580分。三项满分是

2400。

3、GMAT(Graduate Management Admission Test)打算念MBA(企管硕士)或公共行政硕士的人,通常

是考GMAT,不考GRE。大部分商学院要求GMAT580分以上,满分为800分。

GMAT测验分成九组,七组选择题,每组25分钟,另两组写作,每组30分钟。整场考试需4小时。GMAT

考试每年举办四次。

4、LSAT(Law School Admission Test)

申请进入美国法学院就读的学生都要考LSAT,考试是由五组35分钟的选择题组成,以其中成绩最好的四组分数作为考生的分数。考题最后有30分钟的范例写作,不算分数,但申请学校时,此范例写作将寄到你申请的学校。考试成绩关系着录取机会。愈大的法学院愈重视LSAT及在校成绩,美国LSAT分数范围在120至180之间,全国平均分数是151左右。知名的法学院往往要求163分以上。

5、MCAT(Medical College Admissions Test)医学院入学测验是申请医学必备的考试。依据考试成绩,审核入学小组决定申请者是否证明自己对医科有兴趣并具说服力。考试内容包函大学课程中自然科学、社会科学和人文学。着重于生物、化学、物理的观念,并测验科学难题的解决方法,细微的思考方式及写作能

力。MCAT一年举办两次考试,通常在星期日。

6、SAT(Scholastic Assessment Test)、ACT(American College Test)美国高中生进大学要考SAT,证

明语文及数学能力,两项满分各为800分。较好的大学通常要求两项总分在1100分以上。

美国中西部的一些大学要求高中生毕业后要考ACT。有些以ACT成绩来衡量是否给予奖学金。有些地区因地理关系,无法参加ACT测验的话,也可以SAT取代。平均成绩是20.8,如果考到30分以上就很优

秀。

在考试时,测验中心会有免费寄发成绩单的服务,如果你对考试十分有信心,可以写上你打算申请的学校

名称。否则就等成绩出来后,再写信要求测验中心寄发,但要收取一些费用。

赴美留学,学杂费之外,要考虑食宿费、书籍费、衣鞋、医疗保险、电话费、娱乐费,如果寒暑假打算旅游,也要有这部分预算。一般学构要求学生提出至少一年的全年开销财力证明。如果经济能力不足,可及

早准备,因为在申请学校和签证时都需要。

财务证明可以包括下列经济来源:

1、个人/家庭存款:银行帐户证明,开户日期,去年存款,目前存款或担保人签名证明。财力证明来自家

庭,应该准备文件说明银行存款人和个人的关系。

2、不动产证明:房地契证明或其他产业证明。

3、奖学金:如有奖学金资助最好,要有提供奖学金机构的证明信。

4、助学金:资料上列学生姓名,助学金金额及期限

GPA(Grade Point Average),平均成绩点数。

GPA一般用4分制计算。

90-100A4.0极佳

80-89B3.0佳

70-79C2.0平均

60-69D1.0差

0-59E0不及格

GPA的标准计算方法是讲大学成绩的加权平均数乘4,再除100。比较常见的还有把各科成绩按等级乘以学分求和再以总学分除之。

例如有一学生成绩为 92A(4学分)80B(3学分)98A(两学分)70C(六学分)89B(三学分)

则标准算法GPA=[(92*4+80*3+98*2+70*6+89*3)×4]/[(4+3+2+6+3)*100]=3.31 常见算法GPA=(4*4+3*3+2*4+6*2+3*3)/(4+3+2+6+3)=3.00

具体运用中还有最后两年平均绩点(GPA for the last two years)

加油哦,如果学校分数给的很严的话,可以附带RANK来申请,这样可以说明自己的成绩是不错的。

第四篇:算法总结

算法分析与设计总结报告

71110415 钱玉明

在计算机软件专业中,算法分析与设计是一门非常重要的课程,很多人为它如痴如醉。很多问题的解决,程序的编写都要依赖它,在软件还是面向过程的阶段,就有程序=算法+数据结构这个公式。算法的学习对于培养一个人的逻辑思维能力是有极大帮助的,它可以培养我们养成思考分析问题,解决问题的能力。作为IT行业学生,学习算法无疑会增强自己的竞争力,修炼自己的“内功”。

下面我将谈谈我对这门课程的心得与体会。

一、数学是算法的基础

经过这门课的学习,我深刻的领悟到数学是一切算法分析与设计的基础。这门课的很多时间多花在了数学公式定理的引入和证明上。虽然很枯燥,但是有必不可少。我们可以清晰的看到好多算法思路是从这些公式定理中得出来的,尤其是算法性能的分析更是与数学息息相关。其中有几个定理令我印象深刻。

①主定理

本门课中它主要应用在分治法性能分析上。例如:T(n)=a*T(n/b)+f(n),它可以看作一个大问题分解为a个子问题,其中子问题的规模为b。而f(n)可看作这些子问题的组合时的消耗。这些可以利用主定理的相关结论进行分析处理。当f(n)量级高于nlogba时,我们可以设法降低子问题组合时的消耗来提高性能。反之我们可以降低nlogba的消耗,即可以扩大问题的规模或者减小子问题的个数。因此主定理可以帮助我们清晰的分析出算法的性能以及如何进行有效的改进。

②随机算法中的许多定理的运用

在这门课中,我学到了以前从未遇见过的随机算法,它给予我很大的启示。随机算法不随机,它可通过多次的尝试来降低它的错误率以至于可以忽略不计。这些都不是空穴来风,它是建立在严格的定理的证明上。如素数判定定理是个很明显的例子。它运用了包括费马小定理在内的各种定理。将这些定理进行有效的组合利用,才得出行之有效的素数判定的定理。尤其是对寻找证据数算法的改进的依据,也是建立在3个定理上。还有检查字符串是否匹配也是运用了许多定理:指纹的运用,理论出错率的计算,算法性能的评价也都是建立在数学定理的运用上。

这些算法都给予了我很大启发,要想学好算法,学好数学是必不可少的。没有深厚的数学功力作为地基,即使再漂亮的算法框架,代码实现也只能是根底浅的墙上芦苇。

二、算法的核心是思想

我们学习这门课不是仅仅掌握那几个经典算法例子,更重要的是为了学习蕴含在其中的思想方法。为什么呢?举个例子。有同学曾问我这样一个问题:1000只瓶子装满水,但有一瓶有毒,且毒发期为1个星期。现在用10只老鼠在一个星期内判断那只瓶子有毒,每只老鼠可以喝多个瓶子的水,每个瓶子可以只喝一点。问如何解决?其实一开始我也一头雾水,但是他提醒我跟计算机领域相关,我就立马有了思路,运用二进制。因为计算机的最基本思想就是二进制。所以说,我们不仅要学习算法,更得学习思想方法。

①算法最基本的设计方法包括分治法,动态规划法,贪心法,周游法,回溯法,分支定界法。我们可利用分治法做快速排序,降低找n个元素中最大元和最小元的量级,降低n位二进制x和y相乘的量级,做Strassen矩阵乘法等等。它的思想就是规模很大的问题分解为规模较小的独立的子问题,关键是子问题要与原问题同类,可以采取平衡法来提高性能。

动态规划法是把大问题分解为子问题,但是子问题是重复的,后面的问题可以利用前面解决过的问题的结果。如构造最优二叉查找树,解决矩阵连乘时最小计算次数问题,寻找最长公共子序列等等。

贪心法就是局部最优法,先使局部最优,再依次构造出更大的局部直至整体。如Kruscal最小生成树算法,求哈夫曼编码问题。

周游法就是简单理解就是采取一定的策略遍历图中所有的点,典型的应用就是图中的深度优先搜索(DFS)和广度优先搜索(BFS)。

回溯法就是就是在满足一定的条件后就往前走,当走到某步时,发现不满足条件就退回一步重新选择新的路线。典型的应用就是8皇后问题,平面点集的凸包问题和0-1背包问题。

分支定界法:它是解决整数规划问题一种最常用的方法。典型应用就是解决整数规划问题。

②评价算法性能的方法如平摊分析中的聚集法,会计法和势能法。聚集法就是把指令分为几类,计算每一类的消耗,再全部叠加起来。会计法就是计算某个指令时提前将另一个指令的消耗也算进去,以后计算另一个指令时就不必再算了。势能法计算每一步的势的变化以及执行这步指令的消耗,再将每一步消耗全部累计。

这几种方法都是平摊分析法,平摊分析的实质就是总体考虑指令的消耗时间,尽管某些指令的消耗时间很大也可以忽略不计。上述三种方法难易程度差不多,每种方法都有属于它的难点。如聚集法中如何将指令有效分类,会计法中用什么指令提前计算什么指令的消耗,势能法中如何选取势能。因此掌握这些方法原理还不够,还要学会去应用,在具体的问题中去判断分析。

三、算法与应用紧密相关

我认为学习算法不能局限于书本上的理论运算,局限于如何提高性能以降低复杂度,我们要将它与实际生活联系起来。其实算法问题的产生就来自于生活,设计出高效的算法就是为了更好的应用。如寻找最长公共子序列算法可以应用在生物信息学中通过检测相似DNA片段的相似成分来检测生物特性的相似性,也可以用来判断两个字符串的相近性,这可应用在数据挖掘中。快速傅立叶变换(FFT)可应用在计算多项式相乘上来降低复杂度,脱线min算法就是利用了Union-Find这种结构。还有图中相关算法,它对于解决网络流量分配问题起了很大的帮助,等等。

这些应用给了我很大的启发:因为单纯讲一个Union-Find算法,即使了解了它的实现原理,遇到具体的实际问题也不知去如何应用。这就要求我们要将自己学到的算法要和实际问题结合起来,不能停留在思想方法阶段,要学以致用,做到具体问题具体分析。

四、对计算模型和NP问题的理解

由于对这部分内容不是很理解,所以就粗浅的谈一下我的看法。

首先谈到计算模型,就不得不提到图灵计算,他将基本的计算抽象化,造出一个图灵机,得出了计算的本质。并提出图灵机可以计算的问题都是可以计算的,否则就是不可计算的。由此引申出一个著名论题:任何合理的计算模型都是相互等价的。它说明了可计算性本身不依赖于任何具体的模型而客观存在。

NP问题比较复杂,我认为它是制约算法发展的瓶颈,但这也是算法分析的魅力所在。NP问题一般可分为3类,NP-C问题,NP-hard问题以及顽型问题。NP-C它有个特殊的性质,如果存在一个NP-C问题找到一个多项式时间的解法,则所有的NP-C问题都能找到多项式时间解法。如哈密顿回路问题。NP-hard主要是解决最优化问题。它不一定是NP问题。这些问题在规模较小时可以找出精确解,但是规模大时,就因时间太复杂而找不到最优解。此时一般会采用近似算法的解法。顽型问题就是已经证明不可能有多项式时间的算法,如汉诺塔问题。

最后谈谈对这门课程的建议

①对于这门算法课,我认为应该加强对算法思想方法的学习。所以我建议老师可不可以先抛出问题而不给出答案,讲完一章,再发课件。让我们先思考一会儿,或者给出个奖励机制,谁能解决这个问题,平时成绩加分。这在一定程度上会将强我们思考分析问题的能力。因为我感觉到,一个问题出来,未经过思考就已经知晓它的答案,就没什么意思,得不到提高,而且也不能加深对问题的思考和理解。下次遇到类似的问题也就没有什么印象。而且上课让我们思考,点名回答问题可以一定程度上有效的防止不认真听课的现象。

②作业安排的不是很恰当。本门课主要安排了三次作业,个人感觉只有第一次作业比较有意思。后面两次作业只是实现一下伪代码,没有太多的技术含量。而且对于培养我们的解决问题的能力也没有太多的帮助,因为这间接成为了程序设计题,不是算法设计题。

③本门课的时间安排的不太恰当,因为本学期的课程太多,压力太大。没有太多的时间去学习这门课程。因为我相信大家都对它感兴趣,比较重视,想花功夫,但苦于没时间。所以可不可以将课程提前一个学期,那时候离散数学也已经学过,且课程的压力也不是很大。错开时间的话,我觉得应该能够更好提高大家算法分析设计的能力。

第五篇:算法复习材料

1.假票统计

问题描述:

由于你们团队在国际大学生诗歌大赛上取得的巨大成就,你们学校决定为你们召开一次庆功鸡尾酒会,到来的人数大大超出了预期。然而庆功会的主管却抱怨发现了有人使用假票,实际的门票是从1到N(N <= 10000),主管怀疑有人采用复印、打印等手段伪造了门票。他把所有收上来的门票拿给你,要求你编写程序,统计所有门票中存在假票的门票数。输入:

输入文件中包含多组测试数据,每组测试数据占两行。第1行包括两个整数N和M,分别表示门票的初始总张数和参加晚会的总人数(1 <= N <= 10000,1 <= M <= 20000)。第2行为M个整数Ti,表示收到的M张门票的号码(1 <= Ti <= N)。输入文件最后一行为0 0,表示输入结束。输出:

对每组输入测试数据,输出一个整数,占一行,表示收上来的门票中共有多少张票被伪造过。输入样例: 5 5 3 3 1 2 4 6 10 6 1 3 6 6 4 2 3 1 2 0 0 输出样例: 1 4

参考代码:

//计算有几个号码被复制过 #include #include #define N 10010 #define M 20010 intcnt[N];//cnt[i],i出现的次数 int main(){ int n, m,t;while(scanf(“%d%d”, &n, &m), n + m){ memset(cnt, 0, sizeof(cnt));int i, j, res = 0;for(i = 0;i < m;i++){ scanf(“%d”, &t);cnt[t]++;} for(i = 1;i <= n;i++){ if(cnt[i] > 1){ res ++;} } printf(“%dn”, res);} return 0;}

2.看和说

问题描述:

看和说的顺序定义如下:任何一个字符串都是以数字开头,每个随后的元素都是被前一个元素重新定义。例如,字符串“122344111”可以被描述为“1个1,两个2,1个3,2个4和3个1”。因此,122344111以序列的形式表示出来就是1122132431。同理,101就表示1111111111。输入:

输入包括测试数据的组数,然后依次为相应的测试数据,每个数据占一行,不会超过1000位。输出: 对于每个测试数据,输出对应的字符串。

输入样例: 3 122344111 1111111111 12345 输出样例: 1122132431 101 1112131415 参考代码:

#include #include int main(){ char s[1001];intn,i,num,len;scanf(“%dn”,&n);while(n--){

num=1;

gets(s);

len=strlen(s);

for(i=0;i

{

if(s[i]!=s[i+1])

{

printf(“%d%c”,num,s[i]);

num=1;

}

else

num++;

}

printf(“n”);} return 0;}

3.二进制转化为十六进制

问题描述:

输入一个2进制的数,要求输出该2进制数的16进制表示。在16进制的表示中,A-F表示10-15 输入:

第1行是测试数据的组数n,后面跟着n行输入。每组测试数据占1行,包括一个以0和1组成的字符串,字符串长度至少是1,至多是10000。输出:

n行,每行输出对应一个输入。输入样例: 100000 111 输出样例: 7

参考代码1:

#include #include int main(){

inti,n,dec,len;

char bin[10001];

scanf(“%d”,&n);

while(n--)

{

scanf(“%s”,bin);

len=strlen(bin);//求二进制数的长度

dec=4-len%4;

if(len%4)//处理头几位,后移dec位,使得变成4的整数倍,前面补0

{

for(i=len;i>=0;i--)

bin[i+dec]=bin[i];

for(i=0;i

bin[i]='0';

len+=dec;

}

for(i=0;i

printf(“%X”,(bin[i+3]-'0')+(bin[i+2]-'0')*2+(bin[i+1]-'0')*4+(bin[i]-'0')*8);

printf(“n”);

}

return 0;}

//参考代码2:

#include #include #define maxn 10006

int main(){ int i, j, t, tp, p;charstr[maxn], str_rev[maxn];char res[maxn/4], tmp[6], tmp_rev[6];while(scanf(“%d”, &t)!=EOF){ while(t--){ p = 0;scanf(“%s”, &str);intlen = strlen(str);for(i = lenii;strncpy(tmp, str_rev + i, k);for(j = kj-1] = tmp[j];sscanf(tmp_rev, “%d”, &tp);//printf(“k = %d tp = %d tmp = %s tmp_rev = %sn”, k, tp, tmp, tmp_rev);switch(tp){ case 0: res[p++] = '0';break;case 1: res[p++] = '1';break;case 10: res[p++] = '2';break;case 11: res[p++] = '3';break;case 100: res[p++] = '4';break;case 101: res[p++] = '5';break;case 110: res[p++] = '6';break;case 111: res[p++] = '7';break;case 1000: res[p++] = '8';break;case 1001: res[p++] = '9';break;case 1010: res[p++] = 'A';break;case 1011: res[p++] = 'B';break;case 1100: res[p++] = 'C';break;case 1101: res[p++] = 'D';break;case 1110: res[p++] = 'E';break;case 1111: res[p++] = 'F';break;default: break;} i += 4;

} for(i = p-1;i >= 0;i--)printf(“%c”, res[i]);printf(“n”);} } return 0;}

下载常用推荐算法简介5篇范文word格式文档
下载常用推荐算法简介5篇范文.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    算法总结

    算法分块总结 为备战2005年11月4日成都一战,特将已经做过的题目按算法分块做一个全面详细的总结,主要突出算法思路,尽量选取有代表性的题目,尽量做到算法的全面性,不漏任何ACM可......

    算法实验报告

    《算法设计与分析》 实验报告 班级姓名学号年 月日 目录 实验一二分查找程序实现…………………………………………………………………03页 实验二棋盘覆盖问题(分治法).…......

    算法和算法描述教案

    一、教学内容:算法和算法的描述(选修1算法与程序设计 广东教育出版社) 二、教学课时:1课时 三、教学地点:计算机室2 四、教学目标: 1、知识目标 (1)明白算法的概念,理解算法的特征。......

    算法总结材料

    源程序代码: } 一、 自然数拆分(递归) } #include 二、快速排序(递归) int a[100]; void spilt(int t) #include { int k,j,l,i; main() for(k=1;k......

    算法学习心得

    算法设计与分析学习心得 班级:物联网1201 姓名:刘潇 学号:1030612129 一、实验内容:这学期的算法与设计课,老师布置了这四个问题,分别是货郎担问题,动态生成二维数组,对话框下拉列......

    2018高考分类-算法

    (2018北京3). 执行如图所示的程序框图,输出的s值为 A. B. C. D. ,设计了下面的程序框图,则在空白框中应填入 D. (2018全国2)7. 为计算A. B. C. (2018北京3) (2018全国2) (2018天津3).......

    RSA算法实验报告

    信息安全实验报告 题 目 RSA算法 姓 名 学 号 专业年级 计算机科学与技术2014级(1)班 指导教师 2016年 12 月 10日 一、 实验目的 了解非对称加密机制 理解RSA算法的加解密原......

    算法与程序设计

    《算法与程序设计》教学中实施研究性学习探步 作者:赵濮民 摘要:研究性学习是教育科研领域中一个崭新的课题。信息技术教学作为以培养创新精神、研究能力和实践能力为目标取向......