zoukankan      html  css  js  c++  java
  • 斐波那契数列的应用

    先来看斐波那契数列的公式:

    可以看出每一项等于前一项和前前一项的加和。看两种实现:

    这种递归的版本虽然很方便阅读,但是程序的执行的效率很低。因为在计算的时候,重复计算了太多的中间结点,重复计算了太多的子问题。并且随着n的增大,重复计算的问题更加的严重。

    int jumpFloor(int number)
    {
    	if(number == 1 || number == 0)
    		return 1;
    	 
    	int fibOne = 1;
    	int fibTwo = 1;
    	 
    	int fibN = 0;
    	 
    	for(int i = 2; i <= number; i++)
    	{
    		fibN = fibOne + fibTwo;
    		 
    		fibOne = fibTwo;
    		fibTwo = fibN;
    	}
    	 
    	return fibN;
    }
    

      使用循环的方式就很大程度的增大了程序的执行效率。

    当然斐波那契数列用很多的实际的应用:

    一只青蛙一次可以跳上1级台阶,也可以跳上2级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
    一只青蛙一次可以跳上1级台阶,也可以跳上2级……它也可以跳上n级。求该青蛙跳上一个n级的台阶总共有多少种跳法。
    我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形。请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?
    

      

  • 相关阅读:
    深度学习优化方法比较
    调参
    Numpy/Pytorch之数据类型与强制转换
    numpy:维度问题
    js模板引擎-juicer
    js模板引擎-腾讯artTemplate 简洁语法例子
    canva绘制时钟
    js中的break ,continue, return
    JavaScript奇技淫巧44招
    数据类型
  • 原文地址:https://www.cnblogs.com/stemon/p/4754121.html
Copyright © 2011-2022 走看看