数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略
        【摘要】  数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、exe程序应用(斐波纳契时钟设计)之详细攻略 
  
  
  
目录 
斐波那契数列的简介 
斐波那契数列代码实现 
1、python代码实现 
2、Java代码实现 
3、go语言代码实现 
exe程序应用(斐波纳契时钟设计) 
  
  
  
斐波那契数列的简介 
         斐波那契数列(F...
    
    
    
    数学编程:经典数学编程案例之斐波那契:斐波那契数列的简介、代码实现、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程序应用(斐波纳契时钟设计)
斐波那契时钟,以斐波那契数列显示时间。以颜色方块来显示小时和分钟。
文章来源: yunyaniu.blog.csdn.net,作者:一个处女座的程序猿,版权归原作者所有,如需转载,请联系作者。
原文链接:yunyaniu.blog.csdn.net/article/details/80682478
        【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
            cloudbbs@huaweicloud.com
        
        
        
        
        
        
        - 点赞
 - 收藏
 - 关注作者
 
            
           
评论(0)