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

乌兰察布市网站建设_网站建设公司_跨域_seo优化

西安印象网站建设,备案 网站名,做一个企业网站要多少钱,平面设计培训价格懂得计算机的童鞋应该都知道#xff0c;一条计算机程序由数据结构跟算法两大部分组成。所以#xff0c;其实不管你使用哪种计算机语言编写程序#xff0c;最终这两部分才是一个程序设计的核心。所以#xff0c;一个不懂得数据结构与算法的程序员不是一个好工程师。因此一条计算机程序由数据结构跟算法两大部分组成。所以其实不管你使用哪种计算机语言编写程序最终这两部分才是一个程序设计的核心。所以一个不懂得数据结构与算法的程序员不是一个好工程师。因此对于每个在计算机领域的工作者而言数据结构与算法都是很重要的一门必修课。   我还是按照自己复习计算机网络课程的模式来解释吧先挑选一个课本然后逐一用自己的语言过一遍书中的内容。由于本人一直用的Python进行程序开发与设计所以就选了一本跟Python有关的书籍那就是裘宗燕教授写的数据结构与算法--Pyhon语言描述。   就是这本书   如果你看过或者知道这本书应该会对它有所了解。这本书对于初学者来说其实并不容易因为裘宗燕教授描述程序的语言是十分精确与严格的基本跟计算机程序执行的思路相一致因此在理解上有些许吃力。但是当你真的静下心学完之后就会明显感觉到付出这种辛苦是很有必要的。因为在这本书中不仅有数据结构与算法的知识和步骤更重要的是书的编写处处都体现了一个编程工作者需要考虑问题的严谨思路而这个思路才是解决同类问题的关键所在。所以我认为这是一本很好的书而且这种对书中知识点的理解也是一个程序员思考的必经之路。   好了就从计算机程序设计的过程与步骤开始吧。   就像很多从事计算机编程的工作人员一样我在开始进行编写代码之前总会有一系列的思考过程。这个思考过程是十分重要的它才是能写出优秀代码的前提。在这一点我一直认为工程师跟作家是很相似的只不过作家是用人类的语言来将他所构思的观点通俗而又深刻地通过笔写出来而工程师是用计算机语言将某一类问题的逻辑准确而又严谨地通过计算机求解出来。   大部分人使用计算机都被固定在几个独有的应用软件里面这样固然很方便但是具有局限性。其实计算机最大的用处是可以通过程序来解决实际生活中遇到的一类问题。就像那些我们所熟悉的应用软件它们之所以能够被广泛应用也是因为解决了很多人生活中的实际问题满足了人们的需求。   然而在实际生活中的问题往往是各种各样无穷无尽的。所以并不可能都有固定的程序来让计算机执行这个时候就需要我们程序开发人员根据不同的问题类型来进行归类编写程序。   之所以要对问题进行分类就是因为开发一个程序往往能解决一类型的问题。虽然开发的过程只需要一次但是解决问题的过程可以有很多次。比如一个简单的计算机程序当被开发出来之后不管是对于简单的加法实例11还是对于复杂的乘法实例999*234都能够被计算出来。   既然用计算机解决问题是要开发出解决问题的程序那么程序又是怎么开发出来的呢来看下图。 第一步我们得知道需要解决的问题是什么样的问题这个对于问题的描述就很重要。它的描述并不是像我们实际生活中提问的模糊问题它是必须弄清问题的具体细节也就是要对问题进行一个严格化描述使人不产生歧义并且包含了要解决问题需要做的各个方面。通常我们把这个阶段称之为需求分析阶段。   第二步将上面对问题的严格化描述通过程序求解步骤表达出来这是对问题的一个过程性描述并不是对问题是什么的描述两者其实并不一样。在这样的表达之前必须要有一个解决该问题的抽象计算模型这个抽象计算模型包括计算过程中所用的数据跟求解这个问题所用到的算法。所以这个阶段是程序设计中最重要也是最困难的阶段我们称之为程序设计阶段。   第三步当有了合适的数据结构和算法的描述性语言之后使用合编程语言将它实现出来就比较容易了。一般使用语言中的各种数据机制实现数据结构用控制语句来实现算法。这里我们用的主要是Python语言这时候的实现就是程序了。这个阶段称之为编码阶段。   第四步当程序实现出来之后需要我们用计算机或者肉眼来检验程序里面是否存在着语法错误若有错误进行修改直到得到一个可执行的程序。这个阶段称之为检查测试阶段。   第五步有了可执行程序之后只是说明程序没有语法错误。但是还可能存在逻辑错误或者设计错误。这个时候就需要对程序的功能进行再三确定是否满足问题的所有条件。如果发现错误就要再次回到上面的某一个阶段再进行重新设计或者编码。这个阶段称之为测试/调试阶段。   这就是计算机进行求解过程的5个阶段。下面用一个简单例子来解释说明一下。现在假设要求出任一个非负实数的平方根。   第一步就是将问题严格化使之不存在歧义。这里假设实数的概念已经清楚而不清楚的就是平方根。我们可以采用数学上对它的描述概念就是非负实数x的平方根就是满足等式y*yx的非负实数y。   但是还有一个问题通常非负实数的平方根有很多是无穷的无理数但是计算机程序必须在有穷步内完成因此这里允许一个误差使计算机求解的答案十分近似于求解答案。所以上面的严格描述可以变成这样求一个非负实数x的平方根必须找到一个y使y满足条件|y*y-x|e其中e就是作为参数实现给定的。   得到一个严格性对问题的描述之后就进入第二步设计抽象计算模型。对于求解平方根的算法数学课程里面有一种但是不太适合机械执行。因此这里采用另外一种算法牛顿迭代法。   至于牛顿迭代法知乎有个比较好的帖子大家可以看一下。不过这里要用到它的一个公式Xn1 Xn -f(Xn)/f(Xn)。这个是求f(x)函数切线的根的一个公式。具体到平方根就是z y - (y²-x)/2y (2y²-y²x)/2y (y²x)2y (yx/y)2   所以对于这个平方根的牛顿迭代法的计算过程描述如下 0.对给定的任意正实数x和误差e使得变量y取任意正实数如令yx 1.如果y*y与x足够接近即|y*y|-xe计算结束并把y作为结果。 2.取z (yx/y)/2 3.将z值作为y的新值回到步骤1。   这样第二个阶段算法的设计就完成了。然后再用python实现这个算法就很容易了。下面是python的代码 def sqat(x):     y 1.0     while abs(y*y - x) 1e-6:         y (yx/y)/2     return y 其中变量y的初始值为1.0允许的误差为10的-6次方。可以用Pycharm或者其他IDE来执行检查语法错误然后再输入不同的参数来检查结果。转载于:https://www.cnblogs.com/walle-zhao/p/10456196.html
http://www.ihoyoo.com/news/37117.html

相关文章:

  • 一般电脑网站建设及运营多少钱中牟网络推广
  • 响应式商城网站网络设计报告总结
  • wap手机网站哪个网站可以做视频
  • 外贸企业邮箱哪个好用白帽seo公司
  • 网站系统维护一般多长时间营销网站模板下载
  • 哈尔滨最新通告sem优化软件选哪家
  • 外贸网站如何做推广多少钱做网站需要那些技术
  • 德阳手机网站建设网站建设网络推广公司
  • 免费推广网站有哪些有哪些如何注销网站
  • 环保网站建设多少钱微网站建设方案财政
  • 网站制作学校找哪家wordpress企业外贸主题
  • 微网站如何建立广州网站开发哪家好
  • 超级seo企业网站系统短视频seo系统
  • 如何下载别人的网站做模板天津房地产网站建设
  • 网站开发新闻管理系统的背景编程培训班在线培训
  • 执法局网站建设目的长清做网站
  • 如何做班级网站龙岗外贸网站建设公司
  • iis网站伪静态网站申请域名之后如何做网站
  • 建设外贸企业网站优秀企业展示网站
  • 网站推广方式案例个人做啥网站流量大
  • 北京网站制作到诺然电子工程王粟
  • 做网站必须开厂吗网站颜色编号
  • 建设银行网站网址幻灯片在什么网站做
  • 合肥专业做淘宝网站推广扫码进入网站如何做
  • 小程序制作二维码签到网站文章seo
  • 佛山专业网站建设公司哪家好郑州做网站最好的公司
  • 织梦技术个人网站模板下载视频播放网站开发教程
  • 湖南响应式网站建设哪家有成为架构师有多难
  • 所有网站的名字大全wordpress整套主题
  • 学雷锋_做美德少年网站做网站公司哪家正规