算法:递归
来源:互联网 发布:arp通过ip获取mac 编辑:程序博客网 时间:2024/06/05 14:58
刚开始学习算法,遇到递归,其中两个十分吸引本人的例子,觉得像是脑洞大开。
1. n!=nx(n-1)x(n-2)x......x2x1;
高中时候,n!一直都是手算,也没什么简便方法,然而递归这章让我眼前一亮
-(int) simple1(int n)
{
if(n==1)return;
return (n*simple1(n-1));
}
如此反复调用simple1(),直到n为1,此时return的值为nx(n-1)x(n-2)x......x2x1;
由此,算法不是死板的运用数学知识,而是将其与计算机语言结合起来,遇到问题随机应变灵活运用。
2.一串斐波那契Fibonacci数列,也是高中时候甚至初中也常出现的数列:1,1,2,3,5,8,13,21,34,55.......
一个数是前两个数的和。
可以将这数列表示为:S(n)=1 ,n=0
S(n)=1 ,n=1
S(n)=S(n-1)+S(n-2),n>=2
-(int) Fibonacci(int n)
{
if(n<=1)return 1;
return (Fibonacci(n-1)+Fibonacci(n-2));
}
这就是用算法表示Fibonacci数列,然而用表达式的话,S(n)=
(1/√5)*{[(1+√5)/2]^n - [(1-√5)/2]^n}
同样也是十分麻烦,如果直接找规律,按照高中的数学知识,也得花很长时间。
也可以看出算法是将复杂的事情,做的更加简单。
之后的还有,棋盘覆盖等,都用到递归的思想。
1 0
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 递归算法
- 三种数据库的分页
- 如何用 Retrofit 2 在安卓上实现 HTTP 访问?
- Python Mako
- eclipse 导入其他人的项目时tomcat出现Hibernate错误
- PyMySql模块增删查改基本操作
- 算法:递归
- OKhttp使用教程
- 启用全站HTTPS后不仅更安全而且更快 看淘宝是如何做到的
- 设置cookie值(key,value,过期天数,域名)functionsetCookie(cookieName, cookieValue, expire
- Masonry介绍与使用实践(快速上手Autolayout)
- 一个Linux下的adb 安卓截屏脚本
- vmware的centos7下搭建lnmp环境(新手)
- 关于小话C语言集合贴,C 语言常见问题集,c语言-优化C代码常用的几招,高效程序的秘密_hacker's delight读书笔记
- mysql5.6主从复制参数详解