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

邯郸做网站的电话深圳有实力的网站建设服务商

邯郸做网站的电话,深圳有实力的网站建设服务商,建筑工程公司资质,直播软件哪个好用问题#xff1a; fibonacci 斐波拉契数列#xff0c;用递归和循环的方法分别写,比较递归和循环的思路和写法的差别 最直接的思路#xff0c;是写递归方法 循环方法的稍微有点绕#xff0c;我觉得问题主要是出在#xff0c;总结循环的通项公式更麻烦#xff0c;难在数学…问题 fibonacci 斐波拉契数列用递归和循环的方法分别写,比较递归和循环的思路和写法的差别 最直接的思路是写递归方法 循环方法的稍微有点绕我觉得问题主要是出在总结循环的通项公式更麻烦难在数学上。 1 python写的递归如下 1.1 py代码 ####------递归版fib--------------#### def fib1(x):if x0:return 1if x1:return 1else:return fib1(x-1)fib1(x-2)print(fib1(5)) print()for i in range(6):print(fib1(i)) print() 1.2 总结写这个fibo数列的递归的难点 最核心的先要总结递归规律这个fibo的递归规律很简单就是 f(x)f(x-1)f(x-2), 这个也是通项公式fibo的这个规律狠清晰不难 2 python写的循环版本 2.1 py代码循环版本 ####------循环版fib--------------####def fib2(x):sum11sum21for i in range(x):if i0:sum1if i1:sum1elif i1:sumsum1sum2sum1sum2 sum2sum return sum print(fib2(6)) print() 2.2 没解决的奇怪报错问题 2.2.1 报错的代码 ####------循环版fib--------------####def fib2(x):sum11sum21for i in range(x):if i0:sum1if i1:sum1elif i1:sumsum1sum2sum1sum2 sum2sum return sum print(fib2(6)) print()for i in range(6):print(fib2(i)) print() 2.2.2 导致报错的代码报错的部分由于下面这部分引起 开始我并没有发现 后面发现删除这段代码就不报错 for i in range(6):     print(fib2(i)) print() 2.2.3 报错内容 UnboundLocalError: cannot access local variable sum where it is not associ 报错解释 UnboundLocalError 指的是在函数内部尝试访问一个还没有赋值的局部变量。在 Python 中如果你在函数内部给一个变量赋值了它就会被视为一个局部变量除非明确地声明它是全局变量。如果你在赋值之前就尝试访问它就会引发 UnboundLocalError。 报错原因可能是你在给变量 sum 赋值之前就尝试使用它或者你的函数内部有一个 sum() 内置函数的调用导致名称冲突。 2.2.4 暂时没有找到好的解决办法 3 关于 fibo的循环版本的详细说明 3.1 对循环版fibo数列的 详细打点说明版本可以清晰看到过程 ####------循环版fib详细打点--------------#### def fib3(x):#sum0 #为啥详细版的这里不设 sum0 不报错呢sum11sum21for i in range(x):print(for循环第, i1 ,轮开始)if i0:sum1if i1:sum1#sum3sum1sum2#sum4sum3sum2#sum5sum4sum3#从这些公式里抽象出循环的变换规律抽象出通用公式先辅助的值变换公式elif i1: #直接用 esle居然不行必须判断 elseif i1print(sum1,sum1)print(sum2,sum2)sumsum1sum2print(sum,sum)sum1sum2 #和下面那句顺序不能反sum2sum print(sum1,sum1)print(sum2,sum2)print(sum,sum)print(for循环第, i1 ,轮结束)print()return sum print(fib3(6)) print()3.2 最核心的先要从表面的 递推关系上找到 通项公式组 if i0:              sum1         if i1:             sum1         sum3sum1sum2         sum4sum3sum2         sum5sum4sum3 可以看到S3S2S1S4S3S2...通项公式 S(n)   S(n-1) S(n-2)但是循环不能像递归那样调用 函数本身那就要找到 通项公式里的循环规律除了S(n)   S(n-1) S(n-2)仔细看还有S(n-1)S(n)还有S(n-2)S(n-1) 因此联立这3个方程就可以了 S(n)   S(n-1) S(n-2)S(n-1)S(n)S(n-2)S(n-1) 4 目的总结  递归和循环思想的相同和区别 4.1 区别 递归是在函数内部调用函数自身 函数定义内部函数的代码block里引用自己的函数名不用直接写循环写调用函数自身没有直接的for while等循环形式但是其实内部已经是循环逻辑了 循环是除了处理一些特殊情况外找到通项公式以便进行循环肯定有循环的形式如for while等有可能是几个 通项公式方程组反正要组成合理的循环体镶嵌在前面的循环形式for/while等之内 for i in range(x):         if i0:             sum1         if i1:             sum1         elif i1:             sumsum1sum2             sum1sum2              sum2sum  4.2 相同 本质都是循环逻辑都需要找出数列的通项公式便于告诉计算机进行循环计算在fibo数列里循环方式找通项公式更难 5 比较网上别人写的 fibo的 递归和 循环的代码
http://www.dnsts.com.cn/news/214829.html

相关文章:

  • 适用于手机的网站怎么建设好用的a站
  • 乐清住房和城乡建设部网站官网做网站可以用思源字体吗
  • ps怎么做网站导航内嵌式一个网站做两种产品
  • 网站开发流程电话个人网页制作模板下载
  • 建立购物网站网页设计尺寸规范及标准详解
  • 好网站推理免费建自己的网站赚钱
  • 网站icp备案证明文件网站建设需要学编程么
  • 做网站和小程序的区别南开建设网站
  • 大气门户网站企业网站建设实训
  • 中山 网站建设app发布流程
  • 免费建立企业网站深圳做网站980
  • 德尔普的网站建设的价格广州排前三的seo公司
  • 物流网站建设 市场分析做爰全过程免费网站可以看
  • 网站群项目建设实施进度计划阳江百姓网
  • 网站建设选择题百度搜索网站提交
  • 网站建设花都小程序商店
  • 兼职做网站编辑网站相对路径 .
  • 邯郸医院网站建设水禾田网站建设公司
  • 网站怎么做下载连接手机端网站建设的注意事项
  • 织梦手机网站模板做百度推广销售怎么样
  • 网站设计维护内容电商网页设计的主要内容
  • 做房产经纪人要自己花钱开网站吗专业彩票网站建设
  • 罗湖附近公司做网站建设哪家效益快使用angularjs的网站
  • 石家庄网站建设外包公司哪家好wordpress自定义字段数据库
  • 百度网站禁止访问怎么解除网页美工设计说明
  • 上饶网站建设多少钱做网站的女生多么
  • 商城网站建设的优势建设银行龙卡信用卡官方网站
  • 免费seo网站自动推广c语言建设网站
  • 备案成功后怎么建设网站包头网站建设制作
  • 购物网站开发需要什么技术什么是网络营销视频