数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略

简介: 数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略

目录


斐波那契数列的简介


斐波那契数列代码实现


1、python代码实现


2、Java代码实现


3、go语言代码实现


exe程序应用(斐波纳契时钟设计)





斐波那契数列的简介


        斐波那契数列(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 年起出版了以《斐波纳契数列季刊》为名的一份数学杂志,用于专门刊载这方面的研究成果。




斐波那契数列代码实现


1、python代码实现


import time

# recursive method

def rec_fib(n):

   if n <= 1:

       return n

   else:

        return rec_fib(n-1) + rec_fib(n-2)

time_cost = 0

for _ in range(100):

   # time cost of cursive method

   t1 = time.time()

   t = rec_fib(38)

   t2 = time.time()

   time_cost += (t2-t1)

print('结果:%s, 平均运行时间:%s'%(t, time_cost/100))

2、Java代码实现


import java.util.Date;

public class Main {

   // 主函数

   public static void main(String[] args) {

       double time_cost = 0;

       for (int i=0; i<100; i++) {

           Date start_time = new Date(); //开始时间

           int n = 38;

           rec_fib(n);

           Date end_time1 = new Date(); // 结束时间

           Long cost_time1 = end_time1.getTime() - start_time.getTime();  // 计算时间,返回毫秒数

           time_cost += cost_time1;

       }

       System.out.println(String.format("Average cost time is %.3fs.", time_cost*1.0/1000));

   }

   // 利用递归方法计算斐波那契数列的第n项

   public static int rec_fib(int n){

       if(n == 0)

           return 0;

       if(n ==1)

           return 1;

       else

           return rec_fib(n-1) + rec_fib(n-2);

   }

}

3、go语言代码实现


// rec_fib

package main

import (

   "fmt"

   "time"

)

// 函数返回第n个斐波那契数

func rec_fib(num int) int {

   if num <= 1 {

       return num

   } else {

       return rec_fib(num-1) + rec_fib(num-2)

   }

}

func main() {

   var time_cost float64

   for i := 0; i < 100; i++ {

       t1 := time.Now()

       n := 38

       rec_fib(n)

       t2 := time.Now()

       time_cost += t2.Sub(t1).Seconds()

   }

   fmt.Printf("Average cost time: %f.\n", time_cost/100)

}





exe程序应用(斐波纳契时钟设计)


斐波那契时钟,以斐波那契数列显示时间。以颜色方块来显示小时和分钟。

image.png



 


相关文章
|
存储 人工智能 算法
云计算的第三次浪潮:人工智能与云计算的融合
在2023年的云栖大会主论坛上,中国工程院院士、阿里云创始人王坚发表了题为《云计算的第三次浪潮》的主题演讲,他强调了人工智能与云计算的结合带来的重大影响,并认为这将引发云计算的第三次浪潮。云计算的第三次浪潮正在悄然兴起,其与人工智能的结合引发了前所未有的技术革命。那么本文将聊聊2023年人工智能和云计算的集中体现和爆发,以及云计算与GPT模型的关系。
1999 47
云计算的第三次浪潮:人工智能与云计算的融合
|
存储
计算机组成原理(7)----CPU内部单总线数据通路
计算机组成原理(7)----CPU内部单总线数据通路
1230 0
|
10月前
|
存储 关系型数据库 MySQL
MySQL MVCC全面解读:掌握并发控制的核心机制
【10月更文挑战第15天】 在数据库管理系统中,MySQL的InnoDB存储引擎采用了一种称为MVCC(Multi-Version Concurrency Control,多版本并发控制)的技术来处理事务的并发访问。MVCC不仅提高了数据库的并发性能,还保证了事务的隔离性。本文将深入探讨MySQL中的MVCC机制,为你在面试中遇到的相关问题提供全面的解答。
783 2
|
消息中间件 存储 Java
详解AMQP协议
详解AMQP协议
1409 0
|
数据可视化 算法 JavaScript
使用Python进行网络数据可视化的多种方法与技巧
在当今信息爆炸的时代,网络数据量呈指数级增长,了解和分析这些数据对于许多领域的决策制定至关重要。可视化是理解和解释大量数据的强大工具之一,而Python作为一种流行的编程语言,提供了丰富的库和工具来进行网络数据可视化。本文将介绍一些使用Python进行网络数据可视化的方法与技巧,并提供相应的代码实例。
|
SQL 存储 PHP
PHP中使用SQLite数据库
SQLite是一种轻量级数据库引擎,数据以文件存储,支持SQL操作。PHP可连接SQLite执行CRUD操作。
306 4
|
人工智能 自然语言处理 搜索推荐
探索AI驱动的未来:Open API如何赋能企业数字化转型
【7月更文第21天】在当今这个数据为王、智能引领的时代,人工智能(AI)已不再是遥远的概念,而是深深融入到各行各业,成为推动企业数字化转型的重要引擎。随着技术的不断成熟与开放,Open API(开放应用程序接口)作为一种连接技术与业务的桥梁,正以前所未有的方式赋能企业,加速其智能化进程。本文将深入探讨Open API如何通过简化集成、促进创新、提升效率等途径,助力企业在AI时代中乘风破浪,实现数字化转型的华丽蜕变。
282 1
|
Java 数据库连接 数据库
Spring Boot 集成 MyBatis-Plus 总结
Spring Boot 集成 MyBatis-Plus 总结
1167 3
|
缓存 Java Spring
Spring Boot中如何集成Hazelcast实现分布式缓存
Spring Boot中如何集成Hazelcast实现分布式缓存
|
存储 NoSQL 数据处理
探索MongoDB:灵活、高性能的NoSQL数据库解决方案与应用实践
探索MongoDB:灵活、高性能的NoSQL数据库解决方案与应用实践
513 1