使用php了解9大算法思想

作者: AISpider | 来源:发表于2018-12-27 08:33 被阅读18次

递推法

递推法是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。

递归法分两类:
  • 顺推法:从已知条件出发,逐步推算出要解决的方法;
  • 逆推法:从已知的结果出发,用迭代表达式逐步推算出问题开始的条件,即顺推法的逆过程。
  1. 斐波那契数列(兔子数列):有一对兔子,从出生后第三个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔。假设所有兔子都不死,问每个月的兔子总数为多少?
<?php
/**
 * 列举出兔子对数
 * (f1)1,(f2)1,(f3)2,(f4)3,(f5)5,(f6)8,(f7)13,(f8)21,(f9)34....(fn)x
 * 可以看出规律,除了前两个月,后面每个月都是前两个月之和
 * f1=1 
 * f2=1
 * f3=f(3-1)+f(3-2)=f2+f1=2
 * ...
 * fn=f(n-1)+f(n-2)
 * 这里我们求第九个月的兔子对数,根据递推法-顺推法,根据已知条件,逐步(循环)求出结果
 */

// n:月数
function rabbit($n)
{
    if ($n<3) {
        return 1;
    }
    $data=array();
    $data[1]=1;
    $data[2]=1;
    for ($i=3; $i <= $n; $i++) { 
        $data[$i]=$data[$i-1]+$data[$i-2];
        // echo $data[$i]."<br />";
    }
    return $data[$n];
}

echo rabbit(9);

php在线面试题集:http://cainiaophp.com/
php面试讨论群:536633782

相关文章

  • 使用php了解9大算法思想

    递推法 递推法是按照一定的规律来计算序列中的每个项,通常是通过计算机前面的一些项来得出序列中的指定项的值。 递归法...

  • PHP - 快速排序

    使用PHP代码实现快速排序算法 快速排序是十分常用的高效率的算法,其思想是:先选一个标尺,用它把整个队列过一遍筛选...

  • 第三章:高级排序算法

    归并排序算法(mergeSort) 算法思想:Python使用函数实现: 自底向上的归并排序算法 算法思想:Pyt...

  • PHP经典算法题

    PHP学习之路---算法题 1.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象...

  • 第二章:排序基础

    选择排序算法(selectionSort) 算法思想: 算法图示: 使用模板(泛型)编写算法:随机生成算法测试用例...

  • PHP算法

    PHP算法 使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组二...

  • LruCache原理,底层使用什么实现的

    LruCache(Least Recently Used)算法的核心思想就是最近最少使用算法。 他在算法的内部维护...

  • 算法 - SnowFlake

    基本思想: 所谓SnowFlake 算法,是 Twitter 开源的分布式 id 生成算法。其核心思想就是:使用一...

  • PHP视频教程之PHP有序表查找之二分查找(折半查找)算法

    本篇文章扣丁学堂PHP培训小编带读者们来了解一下PHP有序表查找之二分查找(折半查找)的算法,对PHP开发技术感兴...

  • 理解LruCache

    理解LruCache LRU(Least Recently Used)缓存算法,即为最近最少使用算法,它的核心思想...

网友评论

    本文标题:使用php了解9大算法思想

    本文链接:https://www.haomeiwen.com/subject/bzvllqtx.html