斐波那契数列

python斐波那契数列

∥☆過路亽.° 提交于 2019-12-01 16:46:21
斐波那契数列(Fibonacci sequence),又称 黄金分割 数列、因 数学家 列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“ 兔子数列 ”,指的是这样一个数列:1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以 递推 的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)在现代物理、准晶体结构、化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。 https://baike.baidu.com/item/%E6%96%90%E6%B3%A2%E9%82%A3%E5%A5%91%E6%95%B0%E5%88%97 python斐波那契数列 def fib(max): n,a,b = 0,0,1 while n <max: print(b) a,b = b,a+b n = n+1 return 'node' fib(10) 运行结果: 1 1 2 3 5 8 13 21 34 55 函数原理 来源: https://www.cnblogs.com/dwdar/p/11693914.html

00.斐波那契数列第n项

吃可爱长大的小学妹 提交于 2019-12-01 09:58:43
# 斐波那契数列第n项 # 1 1 2 3 5 8 def fib(n): if n <= 2: return 1 else: return fib(n-2)+fib(n-1) def fib2(n): if n < 3: return 1 f1 = f2 = 1 for k in range(1, n-1): f1, f2 = f2, f2+f1 return f2 if __name__ == '__main__': # 1 1 2 3 5 8 13 print(fib(6)) # 8 print(fib2(6)) # 8 来源: https://www.cnblogs.com/fly-book/p/11677429.html

Python斐波那契数列

青春壹個敷衍的年華 提交于 2019-11-30 21:48:29
今天偶然看到这个题目,闲着没事练一下手 if __name__ == '__main__': """ 斐波那契数列(Fibonacci sequence), 又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。 """ def get_fibs(n): """ 获取长度为n的裴波那契数列 :param n:length of list [int] :return:generator object """ a, b = 1, -1 for i in range(n): a, b = a+b, a yield a print(list(get_fibs(15))) //[0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377] 来源: https://www.cnblogs.com/wikis/p/11641646.html

实现斐波那契数列之es5、es6

若如初见. 提交于 2019-11-30 21:01:01
es5实现斐波拉契函数数列: <script type="text/javascript"> function fibonacci(n) { var one = 1;     var two = 1;     for(var i = 3; i <= n; i++) {    //此处代码重点部分,用three累加前两个数的和,也是斐波那契数列的精髓所在。 var three = one + two;       one = two;       two = three;       } if (n==1||n==2) {    //判断n==1或2的情况下返回undefined return one; } return three;       //最后返回three } console.log(fibonacci(2)); </script> es6实现斐波拉契函数数列: function* fibonacci() { let [prev, curr] = [0, 1]; for (;;) { yield curr; [prev, curr] = [curr, prev + curr]; } } for (let n of fibonacci()) { if (n > 1000) break; console.log(n); } 参考链接:https://www.cnblogs

Python斐波拉契数列

*爱你&永不变心* 提交于 2019-11-30 05:56:16
1 ''' 2 4. 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后 3 每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 4 # 兔子的规律为数列1,1,2,3,5,8,13,21.... 5 ''' 6 a, b = 0, 1 7 # moon = int(input("请输入月数")) 8 moon = 5 9 for moon in range(moon): 10 print("第{0}个月兔子总数有{1}对".format(moon+1, b)) 11 a, b = b, a + b 这个例子介绍了几个新特征。 第一行包含了一个复合赋值:变量 a 和 b 同时得到新值 0 和 1。最后一行再次使用了同样的方法, 可以看到,右边的表达式会在赋值变动之前执行。右边表达式的执行顺序是从左往右的。 1. 斐波那契数列 概念引入 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。 数学上,斐波那契数列以递归的形式进行定义: 场景 先来开看看“兔子数列”以及其他数学应用场景!! 1. 1 兔子数列 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死

Java案例5:斐波那契数列

谁说我不能喝 提交于 2019-11-29 19:11:22
1.斐波那契数列(不死兔子) public class Fbql { public static void main(String[] args) { // TODO Auto-generated method stub /* * 有一对兔子,从出生后3个月,每个月生一对兔子,小兔子长到三个月又生一对兔子, * 假如兔子不死,问第二十个月兔子对数 * 第一个月兔子1对,第二个月1对,第三个月2对,第四个月3对,第五个月5对,第六个月8对 * 从第三个月开始,兔子对数是前两个月之和(斐波那契数列) */ int[] arr = new int[20]; arr[0] = 1; arr[1] = 1; for(int i = 2;i<arr.length;i++){ arr[i] = arr[i-1] + arr[i-2]; } System.out.println(arr[19]); } } 来源: https://www.cnblogs.com/wazl/p/11527798.html

斐波那契数列[C++版]

陌路散爱 提交于 2019-11-29 14:58:21
斐波那契数列[C++版] 问题描述 解决思路及代码 问题描述 大家都知道斐波那契数列。就是1 1 2 3 5 8 13… … 后一个数为前两个数的和。 现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 其中n<=39 解决思路及代码 这个题很简单,考递归,但是我在牛客网上测试迟迟不通过。 于是我换了另外一种非递归的方法,上一下我的代码。 #include < iostream > using namespace std ; int Fibonacci ( int n ) { if ( n <= 1 ) { return n ; } int a [ n + 1 ] ; a [ 0 ] = 0 ; a [ 1 ] = 1 ; for ( int i = 2 ; i <= n ; i ++ ) { a [ i ] = a [ i - 1 ] + a [ i - 2 ] ; } return a [ n ] ; } int main ( ) { int n = 5 ; cout << Fibonacci ( n ) << endl ; return 0 ; } 遗憾的是,这样的代码也是无法通过的。 我也不知道为何。又换了一种代码,成功了。 #include < iostream > using namespace std ; int Fibonacci (

剑指Offer_斐波那契数列

穿精又带淫゛_ 提交于 2019-11-29 05:44:09
时间限制:1秒 空间限制:32768K 热度指数:640784 本题知识点: 递归 题目描述 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。 n<=39 class Solution { public: int Fibonacci(int n) { if(n==0||n==1) return n; int ans=0,first=0,second=1; for(int i=2;i<=n;i++){ ans=first+second; first=second; second=ans; } return ans; } }; 来源: https://blog.csdn.net/amf12345/article/details/100531792

爬楼梯

时光毁灭记忆、已成空白 提交于 2019-11-29 05:07:33
又是一个递归; 感觉这个题和斐波那契数列差不多的耶 和斐波那契数列的关系差不多, 只不过前两项是1和2, 而不是1和1; 后面基本一样都是a n =a n-1 +a n-2 ; 因为每次只能爬一个或者两个; 所以可以分两类考虑, 一类就是最后差一个; 另一类就是最后差两个; 差一个的时候,前面走的就和上一个数(a n-1 )一样, 只需再走一个; 差两个的时候,前面走的就和上上个数(a n-2 )一样; 只需再走两个; 所以就和斐波那契数列一样。 1 #include<iostream> 2 using namespace std; 3 int ans(int); 4 int main() 5 { 6 int n; 7 while(cin>>n) 8 cout<<ans(n)<<endl; 9 return 0; 10 } 11 int ans (int x) 12 { 13 if(x==1) return 1; 14 else if(x==2) return 2; 15 else return ans(x-1)+ans(x-2); 16 } 每日打卡O(∩_∩)O~~ 来源: https://www.cnblogs.com/sxy2004/p/11456410.html

Python实现斐波那契数列,九九乘法表,金字塔方法。

我只是一个虾纸丫 提交于 2019-11-29 04:51:15
斐波那契数列递归实现,写法最简洁,但是效率最低,会出现大量的重复计算 def function(n): assert n >= 0, 'n > 0' if n<= 1: return n return function(n-1) + function(n-2) print(function(4)) for i in range(0,20): print(function(i),end=',') 递推法,递推法,就是递增法,呈线性增长,如果数据量巨大,速度会越拖越慢 def function(n): a,b = 0,1 for i in range(n): a,b = b,a+b return a print(function(3)) 生成器实现 def fib(max): a,b = 0,1 while a<max: yield a a,b = b,a+b fib_gt=fib(100) #调用生成器,生成数列 print(next(fib_gt)) print(next(fib_gt)) 金字塔 n = int(input('请输入你需要打印星星的层数:')) for i in range(1, n + 1): print(' ' * (n - (i - 1)) + '*' * (2 * i - 1)) 乘法表 方向1 for i in range(1,10): for j in