迭代法移动盘子java,算法学习--日记(牛顿迭代法)

news/2024/7/5 3:17:23

牛顿迭代法

概念理解

niudundiedai.png

牛顿迭代法可以使用函数极限角度无限迭代趋近于某一点理解。

迭代算法解决问题,需要做好3个方面的工作:

确定迭代变量 在可以用迭代算法解决的问题中,至少存在一个可直接或间接地不断由旧值递推出新值的变量,这个变量就是迭代变量。

建立迭代关系式 所谓迭代关系式,指如何从变量的前一个值推出其下一个值的公式(或关系)。迭代关系式的建立是解决迭代问题的关键,通常可以使用递推或倒推的方法来完成。

对迭代过程进行控制 在什么时候结束迭代过程?这是编写迭代程序必须考虑的问题。不能让迭代过程无休止地执行下去。迭代过程的控制通常可分为两种情况:一种是所需的迭代次数是个确定的值,可以计算出来;另一种是所需的迭代次数无法确定。对于前一种情况,可以构建一个固定次数的循环来实现对迭代过程的控制;对于后一种情况,需要进一步分析得出可用来结束迭代过程的条件。

实例:

1. 欧几里德算法 辗转相除法

概念:

oujilidegainian.png

算法证明:

oujilidesuanfazhengming.png

整理:

确定迭代变量 a,b

建立迭代关系式 gcd(a,b) = gcd(b,a mod b), r = (参1)%(参2)

对迭代过程进行控制 条件 r = 0;结果为2参数 即为最大公约数。

2. 斐波那契数列

定义:

还有一个很典型的例子是斐波那契(Fibonacci)数列。斐波那契数列为:0、1、1、2、3、5、8、13、21、…,即 fib⑴=0; fib⑵=1;fib(n)=fib(n-1)+fib(n-2) (当n>2时)。

在n>2时,fib(n)总可以由fib(n-1)和fib(n-2)得到,由旧值递推出新值,这是一个典型的迭代关系,所以我们可以考虑迭代算法。

int Fib(int n) //斐波那契(Fibonacci)数列

{

if (n < 1)/*预防错误*/

return 0;

if (n == 1 || n == 2)/*特殊值,无需迭代*/

return 1;

int f1 = 1,f2 = 1,fn;/*迭代变量*/

int i;

for(i=3; i<=n; ++i)/*用i的值来限制迭代的次数*/

{

fn = f1 + f2; /*迭代关系式*/

f1 = f2;//f1和f2迭代前进,其中f2在f1的前面

f2 = fn;

}

return fn;

}

当然 斐波那契数列 得算法岂止一种。

参见 斐波那契数列


http://lihuaxi.xjx100.cn/news/236396.html

相关文章

医院六级电子病历建设思路及要点

产生背景 在医院电子病历信息化发展的过程中&#xff0c;先后经历了纸质病历、电子病历、结构化电子病历以及具有全医疗过程管理能力的电子病历四个阶段。临床业务需求质量的逐步提升&#xff0c;标准规范的逐步细化&#xff0c;互联网战略的落地实施&#xff0c;无疑对目前电子…

Ubuntu16.04安装qt

5.11官方下载网站&#xff1a; http://download.qt.io/official_releases/qt/5.11/5.11.1/ 可以直接下载linux系统下的.run安装包&#xff1a; 安装方式&#xff1a;https://www.jb51.net/LINUXjishu/501994.html 切换到.run所在的目录&#xff0c;然后 第一步&#xff1a; chm…

php 依赖注入框架,通过实现依赖注入和路由,构建一个自己的现代化PHP框架

如何提高自己编写代码的能力呢&#xff1f;我们首先想到的是阅读学习优秀的开源项目&#xff0c;然后写一个自己的web框架或类库组件。作为web开发者&#xff0c;我们通常都是基于面向对象OOP来开发的&#xff0c;所以面向对象的设计能力或者说设计模式的运用能力尤为重要&…

UESTC 1726 整数划分(母函数)

题目链接&#xff1a;http://222.197.181.5/problem.php?pid1726 题意&#xff1a;求n的划分数。一种划分方案中不能有相同的数字。 思路&#xff1a;(1x)(1x^2)(1x^3)……(1x^1000). int f[N];void init() {f[1]1;int a[N]{0};a[0]1; a[1]1;int i,j;for(i2;i<1000;i){for(…

MySQL如何判别InnoDB表是独立表空间还是共享表空间

InnoDB采用按表空间&#xff08;tablespace)的方式进行存储数据, 默认配置情况下会有一个初始大小为10MB&#xff0c; 名字为ibdata1的文件&#xff0c; 该文件就是默认的表空间文件&#xff08;tablespce file&#xff09;&#xff0c;用户可以通过参数innodb_data_file_path对…

php webuploader大文件,web uploader 上传大文件总结

由于业务需要&#xff0c;需要上传大文件&#xff0c;已有的版本无法处理IE版本&#xff0c;经过调研&#xff0c;百度的 webuploader 支持 IE 浏览器&#xff0c;而且支持计算MD5值&#xff0c;进而可以实现秒传的功能。大文件上传主要分为三部分&#xff0c;预上传&#xff0…

文件夹浏览(SHBrowseForFolder)

from http://www.cnblogs.com/Clingingboy/archive/2011/04/16/2018284.html 一.首先要为SHBrowseForFolder准备一个结构体BROWSEINFO typedef struct _browseinfoW {HWND hwndOwner;PCIDLIST_ABSOLUTE pidlRoot;LPWSTR pszDisplayName; // Return display…

php dropdownlist,为何activitieDropdownlist的值始终无法获取到

为什么activitieDropdownlist的值始终无法获取到&#xff1f;视图层view控制器层public function actionDbdplist(){$m_subjectlist new SubjectList();$m_gradelist new Grade;$this->subject_list SubjectList::model()->findAll();$this->grade_list Grade::mo…