首页 > 其他分享 >Fibonacci

Fibonacci

时间:2024-03-28 12:11:40浏览次数:24  
标签:About slow recursion question www Fibonacci

# 1.Recursion slow
def fibonacci_recursion(n):
    if n <= 1:
        return n
    else:
        return fibonacci_recursion(n-1) + fibonacci_recursion(n-2)
# 2.List save every value, avoid repeate compute fast
def fibonacci_list(n):
    F =[0,1]
    if n<=1 :
        return n
    else:
        for i in range(2,n+1):
            F.append(F[i-1] + F[i-2])#soul
    return F[n]
# 3.1 for loop, update a and b,don't need List, increase space efficiency and reduce time complexity O(n)
def fibonacci_forloop_update(n):
    if n<=1 :
        return n
    else:
        a,b = 0,1
        for _ in range(2,n+1):
            a,b = b,a+b
        return b
# 3.2 while loop, update a and b,don't need List, increase space efficiency and reduce time complexity O(n)
def fibonacci_whileloop_update(n):
    if n<=1 :
        return n
    else:
        a,b = 0,1
        i = 2
        while i <= n:
            a,b = b,a+b
            i+=1
        return b
for i in range(100):
    # print(fibonacci_list(i))
    # print(fibonacci_recursion(i))
    # print(fibonacci_forloop_update(i))
    print(fibonacci_whileloop_update(i))

About Fibonacci formula: https://www.zhihu.com/question/25217301

标签:About,slow,recursion,question,www,Fibonacci
From: https://www.cnblogs.com/millionyh/p/18101310

相关文章

  • Fibonacci数列
    1.Fibonacci数列-蓝桥云课(lanqiao.cn)题目描述:Fibonacci数列:第1、2项均为1,从第3项开始,每一项都是前两项之和。输入n值,输出Fibonacci数列第n项,该数列前10项为1,1,2,3,5,8,13,21,34,55。输入描述:输入占一行,为n的值,1sns40。输出描述:输出占一行,为Fibonacci数列第n项......
  • 佳佳的 Fibonacci
    题面\(f_x=\begin{cases}1&x\in\{1,2\}\\f_{x-1}+f_{x-2}&x\geq3\\\end{cases}\)求\(1\timesf_1+2\timesf_2+3\timesf_3+…+n\timesf_n\)。解法正常的Fibonacci前n项和\(loj\)如果卡死了用这个:Fibonac......
  • P9825 [ICPC2020 Shanghai R] Fibonacci
    原题链接题解直观的\(O(n)\)算法很容易想到,但是很不幸,挂了所以我们要想到\(O(1)\)的做法考虑到斐波那契数列非常有规律,所以我们找找规律奇,奇,偶,奇,奇,偶。。。code#include<bits/stdc++.h>usingnamespacestd;#definelllonglonglla[5]={0};intmain(){lln......
  • CF1264F Beautiful Fibonacci Problem
    一道比较Beautiful的结论题,初始感觉难以下手,做了后认为在CF3500中不算很难的(逃看到题目中“后18位的子串”,很明显的,我们要求一下Fibonacci数列${mod}10^k$的循环节。实践打表证明这个循环节为$1.5*10^k$但是我们需要一个随Fibonacci下标线性增加,$mod10^k$的值也线性增加的......
  • 2019年-fibonacci数列与黄金分割
    目录题目法一、递归法二、迭代题目法一、递归deffib(n):ifn==1orn==2:return1returnfib(n-1)+fib(n-2)n=int(input())a=fib(n)b=fib(n+1)print("{:.8f}".format(a/b))只通过了60%的测试法二、迭代#动态规划#deffib(n):#dp=[0]*(n+1)#......
  • 打印 Fibonacci 数列:
    #include<stdio.h> voidfibonacci(intn){   inti,num1=0,num2=1,nextNum;      printf("Fibonacciseriesupto%dterms:\n",n);      for(i=1;i<=n;++i){       printf("%d,",num1);       nextNum=num1+......
  • CodeForces 946F Fibonacci String Subsequences
    洛谷传送门CF传送门duel的时候差点不会2400了。套路地,考虑每个\(F(x)\)中与\(s\)相同的子序列的贡献。设这个子序列为\(F(x)_{p_1},F(x)_{p_2},F(x)_{p_3},\ldots,F(x)_{p_n}\)。我们想要它成为一个子序列的子串,那么\(F(x)_{[p_1,p_n]}\)中除了\(p_1\simp_......
  • 【题解】Fibonacci-ish II
    传送门题目分析根据题目范围\(n\le30000\)并且此题可以离线维护这个很恶心的东西,所以我们考虑莫队。由于要求访问到任意一个区间都要求知道它有序之后的序列,所以这个东西可以用权值线段树维护。因此,此题正解是莫队+权值线段树。我们分类讨论一下加上一个数,删除一个数对答案......
  • Go - Fibonacci
    fibonacci.gopackagealgorithms//DynamicProgrammingfuncFibonacci1(nint)int{ifn<=0{return0}ifn<=2{return1}previous1:=1previous2:=1currentVal:=0fori:=3;i<=n;......
  • F. Fibonacci Additions
     题意:给两个长度相同的数组,给出q次操作,a操作时对于a中的l与r,l项加上斐波那契的第一项,l+1加第二项,以此类推。b操作把前文中a数组改为b即可。操作完输出yes或no,表示操作后两个数组值在模mod后是否相同。做法:考虑斐波那契原有的性质,fn=fn-1+fn-2,所以对于a操作,如果n在闭区间[l+1,r......