python斐波那契数列前20项_兔子繁殖问题带来的智商碾压:斐波那契数列趣谈

6f7a4f580a893168f664a45795f366df.png

6a1b45379c6fe4f59bf7aecc43d776f0.png

本文来自公众号:超级数学建模

微信号 :supermodeling

原文标题:斐波那契数列趣谈

via 善科

by BB


一般认为斐波那契数列的提出是基于兔子的繁殖问题:如果一开始有一对兔子,它们每月生育一对兔子,小兔在出生后一个月又开始生育且繁殖情况与最初的那对兔子一样,那么一年后有多少对兔子?

答案是,每月兔子的总数可以用以下数列表示:1,1,2,3,5,8,13,21,34,55,89,144,233…。

这一数列是意大利数论家列奥纳多·斐波那契(Leonardo Fibonacci)在他13世纪初的著作Liber Abaci中最早提出的。如果取数列前两个元素为1,那么递推关系就是:

80f03f77fe6d82951014c971e7d8fccd.png

当然,曾经有一度数学家们将0作为斐波那契数列的首项(或第0项)。

这一数列看起来相当简单,但却隐藏着一些有趣的东西。

关于数列元素

关于斐波那契数列的元素,人们发现了不少有意思的事情。

质数与合数:斐波那契数列的质数元素也是该数列的质数项,唯一的例外是第4项元素3。但这个规律反过来不成立,数列的质数项元素的也可能是合数。这一“规律”可以为人们提供搜索大质数的线索。但在相当大的元素以后是不是仍有这个规律呢?目前没有人知道。

如果把用二进制表示的斐波那契数列前511个元素绘制出来,是这个样子的Wolfram Research):

19b75bd3b73cdefdd8fc462f6daf8385.png

是不是有点分形的味道?

5f286962038920bbbc0e1edbd5f47b51.png

f3b236b7127e4b59ea2a14b3e120f6c5.png

81de062d3d5752a7c4d335f6180311a6.png项:分别是2,21,209,2090,20899,208988,2089877,20898764…。(Sloane’s A068070)也就是说,这一数字不断接近208987640249978733769…的前几项。而208987640249978733769…和这样一个数有关:

840f0311a9ce6639ed0d0db7c4f31f9b.png

Binet公式:这个公式不是轨道力学里的那个常用的同名公式,而是给出斐波那契数列第n项的另一个公式,是Jacques Philippe Marie Binet在1843年发现的:

9ab61ff95746a82c6503dc75ce8220d7.png

看到了什么?是不是括号中的两个数似乎和黄金分割有关?

斐波那契数列与黄金分割

苏格兰人Robert Simson证明了,当项数趋于无穷时,斐波那契数列的后项与前项之比趋近黄金分割,也就是1.61803398875…。这也许说明了斐波那契数列与黄金分割有天然的联系。

如斐波那契螺旋就是最直接的例子。如果顺逆时针螺旋的数目是斐波那契数列中相邻的2项,可称其为斐波那契螺旋,也被称作黄金螺旋。这样的螺旋能最佳利用圆周,疏密最为均匀。它的构造方法也不难,只需先用同样是与斐波那契数列有关的数构造黄金矩型(长宽之比为黄金分割),再在每个矩形中各描绘出一条1/4圆弧,让各段弧彼此连接。这样的黄金矩形也往往能一些艺术名作中找到,如达·芬奇著名的作品《蒙娜·丽莎》。

ce08aabd08ef5b5e4f58afaaa100f81a.png

计算机绘制的斐波那契螺旋

5474f335e7db8ae30a59e3612998b724.png

斐波那契螺旋与黄金矩型

自然界中的斐波那契数列

最典型的例子就是以斐波那契螺旋方式排列的花序或树叶。蓟、菊花、向日葵、松果、菠萝……都是按这种方式生长的。如此的原因很简单:这样的布局能使植物的生长疏密得当、最充分地利用阳光和空气,所以很多植物都在亿万年的进化过程中演变成了如今的模样。当然受气候或病虫害的影响,真实的植物往往没有完美的斐波那契螺旋。

928f2178c932d9ec512cbad2f53b1050.png

每层树枝的数目也往往构成斐波那契数列。

曾在网上看到下面这样一组图,说的是花瓣数符合斐波那契数列各元素的各种植物,也许仅仅是巧合?

f15a0478461ff21a4b92f57d281941bf.png

另外,晶体的结构也往往与斐波那契数列有关。人们早就发现,在自然界的晶体中,原子以重复的样式排列,不同的化合物也许会出现不同的排列方式,但都是简单的平移重复而已。下面是几张来自晶体中的图案模型。

在图a中,我们可以看到每个原子被其他三个相同的原子包围,形成了一个单位样式,这称为三重对称,因为如果把其中之一沿着平面转过120度,将与另一个发生重叠。而在四重对称(图b)中,转过90度后可得相同图形,在六重对称(图c)中,转过60度可得相同图形。

0b544e48bf1cb34439e35e844f47fa09.png

但无论如何,五重对称(图d)却不可能得到,因为其中原子间的距离长短不一,这个样式无法实现旋转对称,由此很容易就充分证明了在晶体中找不到五重对称,依此,七重对称或者更高重的对称都是找不到的。

所以,早期晶体学家们都根深蒂固地认为,五重或七重以上的对称不符合自然规律。

然而,1982年4月的那个早晨,以色列理工学院的Daniel Shechtman却发现在他电子显微镜下面,一个衍射图案可以安然转过圆周的1/10(也就是36度)依旧得到原来样式,也就是说,发现了十重对称!

很快,他又从铝锰合金中找到了五重对称的图案。在那个时期,这项工作绝对是颠覆性的了,以至于相关论文1984年夏天被Journal of Applied Physics断然拒掉。还好,Physical Review Letters没做同样的武断之事,随后就发表了他的文章。Shechtman发现的固体形态被命名为准晶(quasicrystal),以示与传统晶体的区别,并被认为是介于晶体和非晶体之间的一种形态。

5a4dc2f0d4e67f8da4c9df42958f4609.png

Daniel Shechtman获得了2011年的诺贝尔化学奖

ef72872c7a0eb6e4f52b78b68e73a2d5.png

著名应用数学家Roger Penrose爵士

事实上,无独有偶,同一时期的数学家们已为他做好了理论铺垫,英国人彭罗斯(Roger Penrose)差不多同一时期便在前人工作基础上提出了一种以两种形状的拼图铺满平面的解决方案。对于Shechtman的准晶体衍射图案和彭罗斯的镶嵌瓷砖来说,都有一个迷人的性质,就是在它们的形态中隐藏着美妙的数学常数τ,亦即黄金分割数1.618……。

彭罗斯瓷砖以一胖一瘦两种菱形(内角分别为72度、108度和36度、144度)镶拼而成,两种菱形的数量之比正好是τ;同样的,在准晶中,原子之间的距离之比也往往趋近于这个值。

a604226dbdfb78f45560ab4a24161cd5.png

往期内容回顾:

内裤简史

一名代孕者的自白

他是个孩子,但也是一个杀人犯!

译言给你的礼物

斐波拉契从一对兔子的繁殖开始,推论出了“兔子数列”亦即斐波拉契数列。由此递推数列,我们可以发现养一对兔子,一年之后就会发展壮大成一个养兔场。人们从斐波拉契数列出发得到了很多有益的和有趣的结果。比如斐波拉契数列与黄金分割(0.618)的关系,并且直到现在还在优选法和运输调度理论中起着基本原理的作用;又如种向日葵的农场主在葵花籽的分布规律上发现了斐波拉契数列,乃至好多植物的花瓣叶序上发现的斐波拉契数列奇观形成了至今未解的“叶序之迷”。可见一个“养兔问题”竟揭示了大自然的一个普遍存在的奥秘。想要了解斐波拉契与兔子繁殖这一数学问题的历史,欢迎阅读《斐波那契的兔子:现代数学之父与算术革命》探寻斐波拉契其人及“兔子数列”的奥秘。

识别图中二维码或点击阅读原文,火速购买吧!

916fea721b489fade8c657e9147cf3e6.gif
点击“阅读原文”,购买图书。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336071.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jboss使用_使用JBoss Cool Store的终极云零售指南

jboss使用我们一直在讨论为什么应用程序开发人员在App Dev Cloud Stack系列中不能再忽略其堆栈了。 带有JBoss Cool Store的App Dev Cloud 我们从头到尾讨论了各个层次,但尚未为您提供除Red Hat Container Development Kit(CDK)之外的任何应…

python基础论文_北大博士Python学习笔记,Python基础语法总结,一篇文章带你入门...

image.png网上现在Python学习资料有很多,但是很杂。很多初学Python的朋友就不知道该怎么去抉择,那些是自己当下所需要的。刚好朋友是北大的博士,在IT行业也工作八年了。就把他学习Python的笔记做了一些整理写下了本文。这份资料非常纯粹&…

C++ 11 深度学习(四)结构、权限修饰符

1.struct struct MyStruct {int a;char b; }; struct默认权限为public,其中最重要的是涉及到结构体数据对齐。 数据对齐,1.数据对齐是指存在处理结构体成员时,成员在内存中的起始地址编码必须是成员类型字节的整倍数。2.要以结构体中最深层的基本数据…

C++ 11 深度学习(五)类型转换:static_cast dynamic_cast const_cast reinterpret_cast

四种cast 通用形式&#xff1a;强制类型转换名<type>(express) 强制类型转换名&#xff0c;以上四种 &#xff1b;type:想要转成成的目标类型 &#xff1b; express&#xff0c;需要转换的目标 static_cast 内置数据类型转换&#xff0c;具有继承关系的指针和引用&am…

小程序triggerevent 传参_微信小程序——无限递归的层次列表

——上礼拜踩的坑1、关于为什么不直接操作DOM对象&#xff1f;因为微信小程序里没有document对象。2、为什么坑了这多时间&#xff1f;因为之前看了个过期的帖子&#xff0c;完美避开了解决方案。下面进入正文&#xff0c;需求是在微信小程序里构造一棵文件树。3、解决思路定义…

java ab工具_(ab)使用Java 8 FunctionalInterfaces作为本地方法

java ab工具如果您正在使用更高级的语言&#xff08;例如Scala或Ceylon&#xff0c;甚至JavaScript&#xff09;进行编程&#xff0c;则“嵌套函数”或“本地函数”是您非常常见的习惯用法。 例如&#xff0c;您将编写诸如fibonacci函数之类的东西&#xff1a; def f() {def …

C++ 11 深度学习(六)智能指针综述

以下三种智能指针均为类模板 1.shared_ptr 共享指针 &#xff0c;多个指针指向同一个对象&#xff0c;最后一个指针被销毁时&#xff0c;这个对象会被释放。 2.week_ptr 是辅助shared_ptr工作的 3.unique_ptr 是独占式指针&#xff0c;同一时间只能有一个指针能指向该对象…

python的仿真效果好吗_Python SimPy 仿真系列 (1)

本系列文章旨在介绍 SimPy 在工业仿真中的应用。在物流行业/工厂制造业/餐饮服务业存在大量急需优化的场景&#xff0c; 例如&#xff1a;如何最优化快递分拣人员的排班表以满足双十一突发的快递件量如何估算餐厅在用餐高峰的排队时长估算特定工序下&#xff0c;工厂生产所需要…

jax-rs jax-ws_您的JAX-RS API并非天生就等于:使用动态功能

jax-rs jax-ws这次&#xff0c;我们将讨论一些有关JAX-RS 2.0 API的内容&#xff0c;并涉及规范的一个非常有趣的方面&#xff1a; 动态功能及其实用性。 传统上&#xff0c;当配置和部署JAX-RS 2.0 API&#xff08;使用Application类&#xff0c;从servlet引导或通过RuntimeD…

10 NAT网络地址转换

广域网技术 上面聊的内容都是内网的一些配置&#xff0c;但内网终将要访问外网的&#xff0c;我们需要怎么处理呢&#xff1f;一般使用HDLC&#xff08;高级数据链路控制协议&#xff09;或者PPP&#xff08;点对点协议&#xff09;。 使用PPP安全接入Internet PPP&#xff0…

Leetcode 61. 旋转链表

原题链接 题解&#xff1a; 1.首先确定k的取值&#xff0c;可能超过链表长度&#xff0c;所有对 k%n 来确定 2.需要找到k前面的结点和最右位置的结点&#xff0c;可以使用双指针得到。 /*** Definition for singly-linked list.* struct ListNode {* int val;* Lis…

java应用性能指标_性能与可靠性:Java应用为何像F1汽车

java应用性能指标再想一想。 性能和可靠性相关吗&#xff1f; 还是这些东西相互排斥&#xff1f; 我认为是后者。 如今&#xff0c;现实是IT部门将应用程序的性能和可靠性视为同一事物&#xff0c;但这离事实还差得远。 让我们看看一级方程式车队如何管理性能和可靠性。 上赛…

tomcat ajp协议安全限制绕过漏洞_Apache Tomcat文件包含漏洞(CVE20201938)复现

一、漏洞背景2020年02月20日&#xff0c;国家信息安全漏洞共享平台(CNVD)发布了关于Apache Tomcat文件包含漏洞(CVE-2020-1938/CNVD-2020-10487)的安全公告。Tomcat作为一款免费开源轻量级的web应用服务器&#xff0c;广泛应用于并发量不是很高的场合&#xff0c;Tomact默认端口…

【H.264/AVC视频编解码技术】第三章【熵编码】

熵编码的概念 熵&#xff1a;化学与热力学概念&#xff0c;用于度量能量退化的指标。熵越高&#xff0c;物体/系统做工能力越低。 信息学中的熵&#xff1a;用于度量消息的平均信息量&#xff0c;和信息的不确定性。越是随机的&#xff0c;前后不相关的信息&#xff0c;其熵越…

mock 抛出一个异常如何终止_教你使用Mock完成单元测试

更多精彩文章请关注本人微信公众号1、什么是Mock?mock是在测试过程中&#xff0c;对于一些不容易构造/获取的对象&#xff0c;创建一个mock对象来模拟对象的行为。比如说你需要调用B服务&#xff0c;可是B服务还没有开发完成&#xff0c;那么你就可以将调用B服务的那部分给Moc…

jconsole查看连接数_在JConsole和VisualVM中查看DiagnosticCommandMBean

jconsole查看连接数我已经将JConsole用作合适的通用JMX客户端已有很多年了。 该工具通常随Oracle JDK一起提供&#xff0c;并且易于使用。 在JMX交互方面&#xff0c;JConsole优于VisualVM的最大优点是JConsole带有内置的MBeans选项卡&#xff0c;而必须为VisualVM中的相同功能…

剑指 Offer 40-----50

50. 第一个只出现一次的字符 原题链接 class Solution { public:char firstUniqChar(string s) {char res ;if(!s.size()) return res;unordered_map<char, int> mmp; for(int i 0; i < s.size(); i) {mmp[s[i]] 1;}for(int i 0; i < s.size(); i){if(mmp[s…

jpa root.join_JPA 2.1和Java EE 7中的JPQL增强功能(第1部分– JOIN ON)

jpa root.joinJava EE 7已经存在了几年&#xff0c;并且提供了一些非常有用且期待已久的功能&#xff0c;例如实体图以及对存储过程和结果映射的更好支持。 有关概述&#xff0c;请参阅Thorben Janssen的博客文章 。 但是&#xff0c;我想添加有关JPA查询语言功能的更详细的摘要…

如何知道一个域名是否存在_域名检测API实现查看一个域名在微信中是否被封

针对微信转发分享链接过程中&#xff0c;您宝贵的域名被微信检测系统过滤拦截而无法正常浏览&#xff0c;例如该网页包含诱导分享内容&#xff0c;被多人投诉等&#xff0c;又例如提示该网页已停止访问等提示。怎么查询域名在微信中是否被封了呢?以上接口可检测到域名的四种异…

LeetCode题集大全

LeetCode 01. 两数之和 LeetCode 02.两数相加 LeetCode 03. 无重复字符的最长子串 LeetCode 07. 整数反转 Leetcode 08. 字符串转换整数 (atoi) LeetCode 09. 回文数 LeetCode 13. 罗马数字转整数 LeetCode 15 二进制中1的个数 Leetcode 19. 删除链表的倒数第N个节点 Le…