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

娱乐网站开发spspwk网站设计风格

娱乐网站开发spspwk,网站设计风格,凡客官方网店,百度识别图片找图最近在查阅斐波那契数列时#xff0c;看到下面的文章#xff0c;总结得非常好#xff0c;于是自己上手使用 Python 练习并实现多种求解方法守望#xff1a;面试官问你斐波那契数列的时候不要高兴得太早​zhuanlan.zhihu.com斐波那契数列的定义#xff1a;斐波那契数列 又称…最近在查阅斐波那契数列时看到下面的文章总结得非常好于是自己上手使用 Python 练习并实现多种求解方法守望面试官问你斐波那契数列的时候不要高兴得太早​zhuanlan.zhihu.com斐波那契数列的定义斐波那契数列 又称黄金分割数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233377610987159725844181676510946177112865746368........ 这个数列从第3项开始每一项都等于前两项之和根据定义递归求解已知Fib(0) 0Fib(1) 1Fib(n) Fib(n-1) Fib(n-2)# 根据定义递归求解 def Fib_definition(n):# 检查输入if check_input(n):if (n 1): return nreturn Fib_definition(n - 1) Fib_definition(n - 2)# 默认返回值else:return -1递归求解避免重复计算已经出现过的元素我们都知道根据定义递归求解会存在大量的重复计算于是我们将已经计算过的值保存在数组里这样在后续需要计算时可以直接使用已经计算过的值避免重复计算# 递归求解避免重复计算已经出现过的元素 def Fib_definition_notRepeat(n, fib_arr [0, 1]):if check_input(n):# 检查输入if n 2: return fib_arr[n]else:# 填充数组for x in range(n):fib_arr.append(-1)# 当求得 fib_arr[n-1] 时fib_arr[n-2] 已知fib_arr[n] Fib_definition_notRepeat(n-1, fib_arr) fib_arr[n-2]return fib_arr[n]else:# 默认返回值return -1递推求解从已知元素递推所求元素根据定义递归求解我们是根据需要求得的元素一步一步倒推直到倒推到我们已知的元素 ( 第 0 个第 1 个 )属于“反向”计算那如果“正向”计算从已知元素递推所求元素呢# 递推求解从已知元素递推所求元素 def Fib_recurrence(n):# 检查输入if check_input(n):if n 2:return nelse:index 2fib_index_pre_pre 0fib_index_pre 1fib_index 0while n index:fib_index fib_index_pre_pre fib_index_prefib_index_pre_pre fib_index_prefib_index_pre fib_indexindex 1return fib_indexelse:# 默认返回值return -1递推求解把已求得的元素放入数组中def Fib_recurrence_arr(n):# 检查输入if check_input(n):if n 2: return nelse:index 2fib_arr [0, 1]while n index:fib_arr.append(fib_arr[index-1] fib_arr[index-2])index 1return fib_arr[len(fib_arr)-1]else:# 默认返回值return -1尾递归求解如果不是很理解尾递归请参见 什么是尾递归​www.zhihu.com# 尾递归求解 def Fib_tail_recursion(n, index, fib_pre_pre, fib_pre):# 检查输入if check_input(n):if n 2: return nelse:if n index:fib_index fib_pre_pre fib_prefib_pre_pre fib_prefib_pre fib_indexindex 1return Fib_tail_recursion(n, index, fib_pre_pre, fib_pre)else: return fib_preelse:# 默认返回值return -1利用矩阵求解所求元素为 中的 A[0][0], 或 中的 A[0][1]由于以下式子变形后满足定义# 两个n阶矩阵相乘 def matrix_multiplication(n, A, B):C []for line in range(n):line_arr []for column in range(n):item 0for i in range(n):item A[line][i] * B[column][i]line_arr.append(item)C.append(line_arr)return C# 矩阵求解所求元素为A^{n-1} 中的 A[0][0], 或 A^n 中的 A[0][1] def Fib_matrix(n):if check_input(n):# 检查输入if n 2: return nA [[1, 1], [1, 0]]result [[1, 0], [0, 1]]matrix_n 2while n 0:result matrix_multiplication(matrix_n, result, A)n - 1return result[0][1]else:# 默认返回值return -1矩阵快速幂求解所求元素为 中的 A[0][0], 或 中的 A[0][1]利用快速幂算法缩短计算次数# 两个n阶矩阵相乘 def matrix_multiplication(n, A, B):C []for line in range(n):line_arr []for column in range(n):item 0for i in range(n):item A[line][i] * B[column][i]line_arr.append(item)C.append(line_arr)return C# 矩阵快速幂求解所求元素为A^{n-1} 中的 A[0][0], 或 A^n 中的 A[0][1] def Fib_matrix_power(n):# 检查输入if check_input(n):if n 2: return nA [[1, 1], [1, 0]]result [[1, 0], [0, 1]]matrix_n 2while n 0:# 判断最后一位是否为1即可知奇偶if n 1:result matrix_multiplication(matrix_n, result, A)A matrix_multiplication(matrix_n, A, A)n // 2# n n 1return result[0][1]else:# 默认返回值return -1通项公式求解详细推导过程可参考斐波那契数列为什么那么重要所有关于数学的书几乎都会提到​www.zhihu.com# 通项公式求解 import numpy import math def Fib_general_formula(n):denominator math.sqrt(5)return int((numpy.power((1denominator)/2, n) - numpy.power((1-denominator)/2, n)) / denominator) 利用Python生成器因为这个不是所有语言都能够使用所以我放在了最后# 利用 Python 生成器求解 def Fib_python_generator(n):a, b 0, 1while n 0:a, b b, a bn - 1yield a # 获取生成器的最后一个元素 def get_python_generator_item(n):item 0for i in Fib_python_generator(n):item ireturn item代码参考及下载https://github.com/boxtsecond/Python-Practice/blob/master/FibonacciNumber.py​github.com
http://www.zqtcl.cn/news/89431/

相关文章:

  • 青岛专门做网站的公司制作网站培训
  • 设计师网站崩了wordpress 开发实例
  • 网站开发包括什么软件产品seo是什么意思
  • 做欧洲电商看哪个网站网站建设费用 多少
  • 企业如何注册网站wordpress如何修复
  • 成都零起飞网站建设网站建设竞价托管服务
  • 百讯科技网站建设响应式网站工具
  • 汕头网站设计怎么做学校网站建设调查表
  • 网站规划有什么意义免费网站备案
  • 鹤壁市建设局网站新零售模式具体怎么做啊
  • 网站右下角弹窗代码深圳网络营销网站设计
  • 网站建设如何账务处理扬州网站建设网站排名优化
  • 网站建设结论1核1g服务器 wordpress
  • 电影网站html模板jsp网站空间网站开发
  • 汕头建站平台初学者拟建网站
  • 四川建设厅证件查询网站wordpress全站关闭评论
  • 有哪些开发网站公司平面设计网上培训机构
  • 南方医科大学精品课程建设网站网页怎么打不开
  • 网站超链接怎么做淄博企业网站设计公司
  • 高邮网站建设建设工程新工艺网站
  • 做网站有发展吗有没有卖设计的网站
  • wordpress 整站打包服装店设计
  • 设计网站官网有哪些单页网站规划设计书
  • 购卡链接网站怎么做电商公司怎么注册营业执照
  • 网站内容的创新西安网站推广排名
  • 保险做的好的网站网站设计首页
  • 做实体店推广的网站网站系统目前运行稳定
  • 校园网站的系统建设百度seo设置
  • 电商网站销售数据分析个人域名备案需要多久
  • html企业网站系统遵义你想网