当前位置: 首页 > news >正文

如何建网站教程百度云服务器

如何建网站教程,百度云服务器,南昌网站建设哪家好,低成本做网站 白之家“令人生畏且难以掌握”“和自己无缘”,诸位是不是会对算法留下这样的印象呢?诚然,有那种无法轻松理解、难以掌握的算法,但是并不是说只有把那种” “由智慧超群的学者才能想出的算法全部牢记心中才能编写程序,简单的算…

在这里插入图片描述
“令人生畏且难以掌握”“和自己无缘”,诸位是不是会对算法留下这样的印象呢?诚然,有那种无法轻松理解、难以掌握的算法,但是并不是说只有把那种”
“由智慧超群的学者才能想出的算法全部牢记心中才能编写程序,简单的算法也是有的。而且诸位自己也不妨去思考一些原创的算法。只要理清在现实世界解决问题的步骤,再结合计算机的特性,就一定能想出算法。思考算法也可以是一件非常有趣的事。下面,笔者将介绍思考算法时的要点。请诸位务必以此为契机,和算法成为朋友,体味思考算法所带来的乐趣。”

要点1:算法中解决问题的步骤是明确且有限的

思考求解两个整数的最大公约数

解法1:直觉法

在这里插入图片描述

解法2:辗转相除法

在这里插入图片描述

哪种才真正算的上算法呢?

要点 2:计算机不靠直觉而是机械地解决问题

“计算机不能自发地思考。因此计算机所执行的由程序表示的算法必须是由机械的步骤所构成。所谓“机械的步骤”,就是不用动任何脑筋,只要按照这个步骤做就一定能完成的意思。众多的学者和前辈程序员们已经发明创造出了很多机械地解决问题的步骤,这些步骤并不依赖人类的直觉。由此所构成的算法被称为“典型算法”。”

“请诸位注意以下三点:1. 步骤是明确的、完全不依赖直觉的;2. 步骤是机械的、不需要动脑筋就能完成的;3. 使步骤终止的原因是明确的。”

要点 3:了解并应用典型算法

在这里插入图片描述
在这里插入图片描述
“这次请思考一下解决“求解 12 和 42 的最小公倍数”这个问题的算法。所谓最小公倍数就是指两个整数的公共倍数(是一个数几倍的数)中最小的那个数。最小公倍数的求解方法诸位在中学的数学课上也应该学过了,但是很可惜求解步骤是依赖人类的直觉的。请再思考一个适用于计算机的机械的算法。诸位说不定会想“反正会有典型算法的吧,比如‘某某氏的某某法’”,然后就纠结于是否还要自己思考。
但是即使查了算法辞典之类的书,也还是找不到求解最小公倍数的算法。为什么呢?因为我们可以通过以下方法求解最小公倍数——用两个整数的乘积除以这两个整数的最大公约数。因此 12 和 42 的最小公倍数就是 12×42÷6 = 84 了。如此简单的算法不能算作典型算法。这个例子说明先自己思考[…]”

要点 4:利用计算机的处理速度

“这次再请诸位思考求解“判定 91 是否是素数”这一问题的算法。在用于判定素数的典型算法中,有一个被称为“埃拉托斯特尼筛法”的算法。在学习这个算法之前,先请诸位思考如果是在数学考试中碰到了这道题,要如何解答呢?”

也许有人会这样想:用 91 分别除以比它小的所有正整数,如果没有找到能够整除的数,那么 91 就是素数。但是,如此繁琐的步骤可行吗?实际上这就是正确答案。埃拉托斯特尼筛法是一种用于把某个范围内的所有素数都筛选出来的算法,比如筛选 100 以内的所有素数,其基本思路就是用待判定的数除以比它小的所有正整数。例如要判定 91 是否是素数,只要分别除以 2~90 之间的每个数就可以了(因为 1 肯定能够整除任何数,所以从 2 开始检测)。

无论是多么冗长繁琐的步骤,只要明确并且机械就能构成优秀的算法。诸位把算法用程序表示出来让计算机去执行,而计算机会用令人吃惊的速度为我们执行。为了判定 91 是否是素数,用 91 除以 2~90 这 89 个数的操作一瞬间就可以完成。在思考算法时不防时刻记着,解决问题时是可以利用计算机的处理速度的。
作为利用计算机的处理速度解决问题的另一个例子,请试着求解以下联立方程组。题目是鸡兔同笼问题:鸡和兔子共计 10 只,把它们的脚加起来共计 32 只,问鸡和兔子分别有多少只?设有 x 只鸡,y 只兔子,那么就可以列出如下的联立方程组。

在这里插入图片描述
因为鸡和兔子的只数应该都在 0~10 这个范围内,所以就试着把 0~10 中的每个数依次代入 x 和 y,只要能够找到使这两个方程同时成立的数值也就求出了答案。利用计算机的处理速度,答案一瞬间就出来了

要点 5:使用编程技巧提升程序执行速度

解决一个问题的算法未必只有一种。在考量用于解决同一个问题的多种算法的优劣时,可以认为转化为程序后,执行时间较短的算法更为优秀。虽然计算机的处理速度快得惊人,但是当处理的数据数值巨大或是数量繁多时还是要花费大量的时间。例如,判定 91 是否是素数的过程一下子就有结果了,可是要去判定 999999937 的话,笔者的电脑就要花费大约 55 分钟之久(言外之意 999999937 是素数)。
有时稍微往算法中加入一些技巧,就能大幅度地缩短处理时间。在判定素数上,原先的过程是用待判定的数除以比它小的所有正整数,只要在此之上加入一些技巧,改成用待判定的数除以比它的 1/2 小的所有数,处理时间就会缩短。之所以改成这样是因为没有必要去除以比它的 1/2 还大的数。

在这里插入图片描述

在算法技巧中有个著名的技巧叫作“哨兵”。这个技巧多用在线性搜索(从若干个数据中查找目标数据)等算法中。线性搜索的基本过程是将若干个数据从头到尾,依次逐个比对,直到找到目标数据。

下面还是通过例题来思考吧。假设有 100 个箱子,里面分别装有一个写有任意数字的纸条,箱子上面标有 1~100 的序号。现在要从这 100 个箱子当中查找是否有箱子装有写着要查找数字的纸条。

首先看看不使用哨兵的方法。从第一个箱子开始依次检查每个箱子中的纸条。每检查完一个纸条,还要再检查箱子的编号(用变量 N 表示),并进一步确认编号是否已超过最后一个编号了。
在这里插入图片描述

“所示的过程,虽然看起来似乎没什么问题,但是实际上含有不必要的处理——每回都要检查箱子的编号有没有到 100。”

为了消除这种不必要的处理,于是添加了一个 101 号箱子,其中预先放入的纸条上写有正要查找的数字。这种数据就被称为“哨兵”。通过放入哨兵,就一定能找到要找的数据了。找到要找的数据后,如果该箱子的编号还没有到 101 就意味着找到了实际的数据;如果该箱子的编号是 101,则意味着找到的是哨兵,“而没有找到实际的数据。使用了哨兵的流程图如图 5.7 所示。需要多次反复检查的就只剩下“第 N 个箱子中包含要找的数字吗?”这一点了,程序的执行时间也因此大幅度地缩减了。
在这里插入图片描述
讲一个故事来解释哨兵的概念吧。假设某个漆黑的夜晚,诸位在海岸的悬崖边上玩一个游戏(请勿亲身尝试)。诸位“站在距悬崖边缘 100 米的地方,地上每隔 1 米就任意放 1 件物品。请找出这些物品中有没有苹果。
诸位每前进 1 米就要捡起地上的物品,检查是否拿到了苹果,同时还要检查有没有到达悬崖的边缘(不检查的话就有可能掉到海里)。也就是说要对这两种检查反复若干次。
使用了哨兵以后,就要先把起点挪到距悬崖边缘 101 米的地方,再在悬崖的边缘放置一个苹果(如图所示)。这个苹果就是哨兵。通过放置哨兵,诸位就一定能找到苹果了。每前进 1 米时只需检查捡到的物品是不是苹果就可以了。发现是苹果以后,只需站在原地再检查一步开外的情况。如果还没有到达悬崖边缘,就意味着找到了真正要找的苹果。已经达到了悬崖边缘,则说明现在手中的[…]
在这里插入图片描述

要点 6:找出数字间的规律

“所有的信息都可以用数字表示——这是计算机的特性之一。因此为了构造算法,经常会利用到存在于数字间的规律。例如,请思考一下判定石头剪刀布游戏胜负的算法。如果把石头、剪刀、布分别用数字 0、1、2 表示,把玩家 A 做出的手势用变量 A 表示,玩家 B 做出的手势用变量 B 表示,那么变量 A 和 B 中所存储的值就是这三个数中的某一个。请以此判断玩家 A 和 B 的输赢。”

“如果能够发现“工资 = 底薪+加班补贴+交通补贴-预扣税款”这样的规律,那么解决问题的步骤就是明确的,步骤数也是有限的,因此构造出的算法也就是优秀的了。”

要点 7:先在纸上考虑算法

“最后介绍最为重要的一点,那就是思考算法的时候,要先在纸上用文字或图表描述出解决问题的步骤,而不要立刻开始编写代码。
画流程图就可以方便地把算法用图表示出来,因此请诸位大量地、灵活地运用它。如果不想画流程图,也可以用语言把算法描述出来,写成文书。总之先写到纸上这一点很重要。”

http://www.zhongyajixie.com/news/22668.html

相关文章:

  • 旅游网站建设规模网络营销策略实施的步骤
  • 蓝色网站配色推广引流吸引人的标题
  • 阜阳市住房和城乡建设部网站刚刚中国出啥大事了
  • 免费商城网站源码百度号码认证平台
  • 做徒步网站怎么样营销型网站推广
  • 做网站还需要搜狗吗电商运营的基本流程
  • 做照片书哪个网站好手机系统优化软件
  • 网站开发策略都有啥seo推广沧州公司电话
  • html5做的篮球网站网络营销做得好的企业有哪些
  • 海南省建设网站首页竞价代运营公司
  • 网站开发需求表网站的优化公司
  • 网站如何建设名称网络营销渠道
  • 柳州做网站人员百度竞价运营
  • 西渡网站建设seo外链发布技巧
  • 网站排名优化建设互联网销售模式
  • photoshop怎么做网站排名nba
  • 一流本科专业建设网站dw友情链接怎么设置
  • 嘉祥网站建设哪家便宜系统优化的方法
  • 我来做煮官方网站百度竞价推广的优势
  • vmware做网站步骤百度付费推广有几种方式
  • 驻马店市住房和城乡建设局网站首页百度收录快的发帖平台
  • 电力行业做的好的招投标网站武汉seo网站优化
  • 公司网站维护怎么做站长工具查询域名
  • 找做外墙油漆网站精品成品网站入口
  • 怎么做正规网站吗什么时候友情链接
  • 鹤壁做网站多少钱网站seo主要是做什么的
  • 网站分站作用最近的新闻热点
  • 石家庄网站制作公司哪家好免费网络推广平台有哪些
  • 做网站主页上主要放哪些内容长沙网站开发制作
  • 招聘网站如何做运营写手代写平台