精华内容
下载资源
问答
  • python 斐波拉契数列

    2017-11-09 16:56:14
    简单版 def fib(max): n,befor,after=0,1,1 while n print(after) # temp=befor # befor=after # after=temp+after # befor=after befor,after=after,be

    简单版

    def fib(max):
        n,befor,after=0,0,1
        while n<max:
            print(after)
            # temp=befor
            # befor=after
            # after=temp+after
           # befor=after
            befor,after=after,befor+after
            n=n+1
    fib(10) 

    递归版

    def fib2(max):
        if max == 0:
            return 0
        elif max == 1:
            return 1
        else:
            result=fib2(max-1)+fib2(max-2)
            return result
    生成器版

    def fib(max):
        n,befor,after=0,0,1
        while n<max:
            print(befor)
            befor,after=after,befor+after
            n=n+1
    g=fib(10)
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))
    print(next(g))



    展开全文
  • 著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到: 1, 1, 2, 3, 5, 8, 13, 21, 34, … def fib(num): L = [] n, a, b = 0, 0, 1 while n < num: L.append(b) a, ...

    一.斐波拉契数列
    著名的斐波拉契数列(Fibonacci),除第一个和第二个数外,任意一个数都可由前两个数相加得到:

    1, 1, 2, 3, 5, 8, 13, 21, 34, …

    def fib(num):
        L = []
        n, a, b = 0, 0, 1
        while n < num:
            L.append(b)
            a, b = b, a + b
            n = n + 1
        return L
    print(fib(20))
    [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765]
    

    二. 素数数列
    计算素数的一个方法是埃氏筛法,它的算法理解起来非常简单:
    首先,列出从2开始的所有自然数,构造一个序列:
    2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
    取序列的第一个数2,它一定是素数,然后用2把序列的2的倍数筛掉:
    3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
    取新序列的第一个数3,它一定是素数,然后用3把序列的3的倍数筛掉:
    5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
    取新序列的第一个数5,然后用5把序列的5的倍数筛掉:
    7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, …
    不断筛下去,就可以得到所有的素数。

    def _odd_iter():
        n = 1
        while True:
            n = n + 2
            yield n
    
    def _not_divisible(n):
        return lambda x: x % n > 0
    
    def primes():
        yield 2
        it = _odd_iter() # 初始序列
        while True:
            n = next(it) # 返回序列的第一个数
            yield n
            it = filter(_not_divisible(n), it) # 构造新序列
    
    def f(num):
        List = []
        for n in primes():
            if n < num:
                List.append(n)
            else:
                break
        return List
    print(f(100))
    [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]
    
    展开全文
  • '''斐波拉契数列'''def Fibonacci(n): first, next = 0, 1 i = 0; while i &lt; n: print next first, next = next, first + next i = i + 1...

    '''斐波拉契数列'''
    def Fibonacci(n):
      first, next = 0, 1
      i = 0;
      while i < n:
        print next
        first, next = next, first + next
        i = i + 1

    展开全文
  • ##斐波拉契数列(Fibonacci) def Fibonacci(m): n,a,b=0,0,1 while n print(b) a,b=b,a+b n +=1 return 'Done' #m=int(input("请输入指定的月数:")) #print(Fibonacci(m)) ##上面的函数和 genera
    ##斐波拉契数列(Fibonacci)
    def Fibonacci(m):
        n,a,b=0,0,1
        while n<m:
            print(b)
            a,b=b,a+b
            n +=1
        return  'Done'
    #m=int(input("请输入指定的月数:"))
    #print(Fibonacci(m))
    ##上面的函数和 generator 仅一步之遥。要把 fib 函数变成
    ##generator,只需要把 print(b)改为 yield b 就可以了:
    def Fibonacci(m):
        n,a,b=0,0,1
        while n<m:
            yield (b)
            a,b=b,a+b
            n +=1
        return  'Done'
    #m=int(input("请输入指定的月数:"))
    #print(Fibonacci(m))
    #这就是定义 generator 的另一种方法。如果一个函数定义中包含 yield 关
    #键字,那么这个函数就不再是一个普通函数,而是一个 generator
    展开全文
  • In [1]: def feibonaqie(times): ...: n = 0 ...: a, b = 0, 1 ...: while n &lt; times: ...: # print(b) ...: yield b ...: ...
  • 迭代器:class Fib: ① def __init__(self, max): ② self.max = max def __iter__(self): ③ self.a =
  • 1 递归 #coding=utf-8 ''' @author: 182 ''' from time import time def fab(n): if n==0: return 0 if n==1: return 1 if (n!=0 and n!=1): return fab(n-1)+fab(n-2) d
  • 主要介绍了Python打印斐波拉契数列的方法,实例分析了基于Python实现斐波那契数列的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
  • Python-斐波拉契数列

    2019-05-07 20:35:13
    Python-斐波拉契数列 斐波那契数列:1,1,2,3,5,8,13…可以看出,第一第二个数字是1,后面的数字是前面两数之和。那么问题来了: (a)编写函数输出序列的前n个数; (b)编写函数输出序列的第n个数。 代码: (a) ...
  • Python斐波拉契数列

    2021-04-25 21:14:47
    斐波拉契数列需要注意的是:第一位是 0 ,第二位是 1 例如:需要 6项斐波拉契数列 ,则: 0 1 1 2 3 5 i = int(input("请输入几项:")) n1 = 0 n2 = 1 n = 0 count = 2 if i < 0 : print("请输入正整数!") ...
  • 1.斐波拉契数列 斐波拉契数列:指的是这样一个数列:0、1、1、2、3、5、8、13...2.python实现斐波拉契数列多种写法 2.1 递归调用实现 def f(n): if n==1 or n==2: return 1 else: return f(n-1)+f(n-2) 2.2 生成
  • python实现斐波拉契数列

    千次阅读 2018-09-02 23:23:00
    # 斐波拉契数列 def fib(max): n, a, b = 0, 1, 1 while n &lt; max: print(b) a, b = b, a+b n = n+1 return 'done' fib(5) 结果为 1 1 2 3 5 第二改成生成器模式 仔细观察,可以看出,fib函数...
  • 利用Python输出斐波拉契数列

    千次阅读 2017-06-26 18:02:26
    利用迭代、递归、yield实现求斐波拉契数列的目的
  • 一、斐波拉契数列 斐波拉契数列:从第3项开始,每一项都等于前两项之和。 递归实现 # 递归算法:递归(Recursion),在数学与计算机科学中,是指在函数的定义中使用函数自身的方法 def DiGui(n): # 出口 if n == 1 ...
  • 简单介绍一下:斐波拉契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:0...
  • 前言:在要求斐波拉契数列时,首先得搞明白什么是斐波拉契数列,[1,1,2,3,5,8,13…]像这样的后一个数等于前两个数相加的和从而组成的数列,我们就叫它们斐波拉契数列,博主发现了四种实现这种数列的方法,一起来看看吧— ...
  • def fib(max): n,a,b=0,0,1 while(n
  • sqf = math.sqrt(5) return int(sqf / 5 * (math.pow(((1 + sqf) / 2), n) - math.pow(((1 - sqf) / 2), n))) 提示 python递归版本重新设置递归层数限制 import sys sys.setrecursionlimit(1000000) 公式版本n较大时...
  • 斐波那契数列(Fibonacci sequence),又称黄金分割数列、因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、在数学上,斐波纳契数列以...
  • 最近由于有算法的课程,自己动手用 python写了几个小的算法,今天先说下第一个Fibonacci(斐波拉契数列)。 废话不多说先给大家看源码。 import timeit start = timeit.default_timer() #查找溢出大小 def fib(): ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,695
精华内容 1,078
关键字:

python斐波拉契

python 订阅