`
yangbb
  • 浏览: 33898 次
  • 来自: ...
社区版块
存档分类
最新评论

对数步骤斐波那契数

阅读更多
以前看这个的时候,被T变换啥的这些名字给搞晕了。
今天拿起笔好好的做了一下运算,直接得到了p->p'和q-q'的方程。
以前数学没学好。。。书到用时方恨少
(define (fib n)
  (define (fib-iter a b p q count)
    (define (tp p q)
      (+ (* p p) (* q q)))
    (define (tq p q)
      (+ (* 2 p q) (* q q)))
    (cond ((= count 0 ) b)
          ((even? count)
           (fib-iter a b (tp p q) (tq p q) (/ count 2)))
          (else (fib-iter (+ (* b q) (* a q ) (* a p))
                          (+ (* b p) (* a q))
                          p
                          q
                          (- count 1)))))
  (fib-iter 1 0 0 1 n))
分享到:
评论

相关推荐

    斐波那契数列第100万项的整数值

    计算如此大的斐波那契数可能会涉及到大整数处理,因为普通的整型变量可能不足以存储如此庞大的数值。在C++中,这可能需要使用`long long`或`__int128`(如果编译器支持)这样的数据类型,或者使用大数库如GMP(GNU ...

    算法-理论基础- 查找- 斐波那契查找(包含源程序).rar

    1. **初始化**:首先确定斐波那契数列中的两个连续数值Fm和Fn,其中Fm是小于或等于数组长度的最大斐波那契数,Fn是下一个斐波那契数。例如,如果数组长度为7,那么Fm=5,Fn=8。 2. **分割**:根据Fm和Fn,将数组...

    对数组进行二分查找

    - 斐波那契查找:利用斐波那契数列的性质,可以调整分割点,以减少比较次数。 7. **代码实现**(以 Python 为例): ```python def binary_search(arr, target): left, right = 0, len(arr) - 1 while left ...

    试验一斐波那契数列.pdf

    斐波那契数列是一种经典的数学序列,由意大利数学家斐波那契在13世纪提出,他在《珠算原理》一书中首次介绍了这一概念。斐波那契数列的定义如下:序列中的第一项和第二项都是1,之后每一项都等于前两项之和。用数学...

    餐厅出餐量 斐波那契数列求和1

    计算出斐波那契数列的80项之后,接下来的步骤是根据用户输入的范围`from`和`to`,计算出数列在这个范围内的所有项的和。这里涉及到一个求和的过程,需要将范围内每一项的值累加起来,最终得到总和`sum`。程序通过一...

    Fibonacci_spirals:Godot引擎中的2d和3d Fibonacci螺旋

    2. 计算每个斐波那契数对应的角度,通常是通过取其对数并乘以一个常数来获得弧度值。 3. 使用这些角度和相应的斐波那契数作为半径,从中心点开始绘制一系列的圆弧。 4. 结合所有圆弧,形成螺旋形状。 而在3D空间中...

    n阶斐波拉契

    在题目描述中,“求k阶斐波那契序列的第m项的值f”意味着我们需要计算出给定阶数k的斐波拉契数列中第m个数的值。这涉及到对数列的生成和特定位置数值的计算。 #### 解题思路 对于k阶斐波拉契数列,我们可以采用...

    java经典算法大全

    斐波那契数列是数学中一个非常著名的序列,每个数都是前两个数的和,通常以1,1开始。在自然界中,兔子的繁殖问题常常被用来举例说明这一数列。在Java中实现斐波那契数列,可以通过简单的循环来完成。程序中,我们...

    竞赛java编程题50题(有答案).pdf

    该题目中,兔子繁殖问题以斐波那契数列为基础,巧妙地结合了数学模型与编程实践,要求参赛者编写程序,计算出兔子从开始繁殖到指定月份的总对数。程序通过简单的循环迭代,将前两个月的兔子对数存储在两个变量中,...

    Ch离散数学英文实用PPT课件.pptx

    斐波那契数列是离散数学中的又一经典案例,其每一个数都是前两个数之和,即f(n)=f(n-1)+f(n-2)。这个数列与自然界的许多现象有着密切的联系,尤其是著名的兔子繁殖问题。假设每对兔子从第二个月起每个月都能繁殖出新...

    java面试题带答案

    - 算法步骤:从最小质数2开始,检查是否能整除输入的数,能整除则输出质数并更新剩余数字,否则尝试下一个质数。 - Java代码使用`Scanner`获取用户输入,然后通过循环和条件判断来分解质因数并打印结果。 以上四...

    最新java编程题全集(50题及答案)

    - 重复以上步骤直到较小数变为0,此时较大数即为最大公约数。 - 计算最小公倍数,公式为`m*n / 最大公约数`。 - 输出最大公约数和最小公倍数。 以上就是基于提供的Java编程题及其解决方案所总结的知识点。这些...

    C语言基本算法.pdf

    接下来,我们将深入了解几个在C语言中实现的基本算法,包括兔子繁殖问题(斐波那契数列)、素数判断、水仙花数的识别以及质因数分解。 首先,让我们从兔子繁殖问题开始。这个古老的数学问题以斐波那契数列的形式...

    六年级数学下册 4 比例 3 比例的应用(探索规律)学案(无答案) 新人教版 学案.doc

    填空题则需要学生直接根据给出的序列找出下一个数,这涉及到对数列增长模式的把握,如斐波那契数列、奇数序列等。 通过这些练习,学生可以加深对比例应用中规律的理解,提高逻辑思维和解决问题的能力。

    c++经典算法

    斐波那契数列中的每一个数都是前两个数之和,这个序列从1和1开始。在C++代码中,我们通常使用两个变量来迭代地计算斐波那契数列的下一个值。例如,我们可以设置变量f1和f2来分别表示前一个月的兔子对数,然后通过...

    JAVA经典算法面试39题及答案

    算法是计算机科学的核心,它是一系列解决问题的清晰指令,通过减少计算步骤的数量来优化程序性能。在JAVA编程中,掌握良好的算法能力至关重要,它不仅能提高代码的执行效率,还能增强程序的可读性和可维护性。 接...

    Java经典问题算法大全

    具体来说,内层循环会从2遍历到当前数的平方根,如果存在任何能够整除当前数的数,则当前数不是素数。 **代码实现:** ```java package cn.com.flywater.FiftyAlgorthm; public class SecondPrimeNumber { ...

    计算机等级考试三级网络技术上机答案

    ### 题目一:斐波那契数列求值 该题目的目标是通过一个简单的递归算法来计算斐波那契数列中的某一项。斐波那契数列定义为: - F(0) = 0 - F(1) = 1 - F(n) = F(n-1) + F(n-2),对于 n > 1 代码实现逻辑如下: 1. ...

    2014高中数学 第一章《算法初步》(1)同步测试 新人教A版必修3.doc

    【算法初步】是高中数学第一章的重要内容,主要探讨如何用逻辑和步骤来解决问题。这部分内容包括了基础的算法概念、算法表示以及简单的算法应用。在本章中,学生需要掌握几种基本的算法,如辗转相除法(欧几里得算法...

    华为java机试

    **程序分析**:兔子数量的增长规律遵循斐波那契数列,即数列中的每一个数都是前两个数的和,具体为:1, 1, 2, 3, 5, 8, 13, 21, ...。 **代码实现**: ```java public class FirstRabbit { public static final ...

Global site tag (gtag.js) - Google Analytics