什么是迭代法

迭代法,简单来说,其实就是不断地用旧的变量值,递推计算新的变量值。迭代法的思想很容易通过计算机语言中的循环语言来实现。我们可以通过循环语句,让计算机重复执行迭代中的递推步骤,推导出变量的最终值。

基本步骤

确定用于迭代的变量。
建立迭代变量之间的递推关系
控制迭代的过程

迭代法的具体应用

  • 求数值的精确或者近似解。典型的方法包括二人法和牛顿迭代法
  • 在一定范围内查找目标值。二分查找
  • 机器学习算法中的迭代。

    求方程的精确或近似解

    不用自带的函数求平方根
  1. import math
  2. # delta_threshold 控制解的精度
  3. # max_try 控制循环的次数
  4. def get_square_root(number, delta_threshold=0.000001, max_try=10000):
  5. if number <= 1:
  6. return -1
  7. min = 1
  8. max = number
  9. for i in range(max_try):
  10. middle = (min + max) / 2
  11. square = middle * middle
  12. delta = math.fabs(square / number - 1)
  13. if (delta <= delta_threshold):
  14. return round(middle, 2)
  15. elif square > number :
  16. max = middle
  17. else:
  18. min = middle
  19. return -2

查找匹配记录

二分法中的迭代式逼近,可以帮助我们查找匹配的记录

  1. # 二分查找
  2. def search(dictionary, word):
  3. if dictionary is None:
  4. return False
  5. if len(dictionary) == 0:
  6. return False
  7. left, right = 0, len(dictionary) - 1
  8. while(left <= right):
  9. middle = int((left + right ) / 2)
  10. if dictionary[middle] == word:
  11. return middle
  12. elif dictionary[middle] > word:
  13. right = middle - 1
  14. else:
  15. left = middle + 1
  16. return False