数模论坛

 找回密码
 注-册-帐-号
搜索
热搜: 活动 交友 discuz
查看: 2442|回复: 3

一个小问题?

[复制链接]
发表于 2004-7-20 18:56:19 | 显示全部楼层 |阅读模式
用循环语句形成Fibonacci数列,F1=F2=1,F(k)
=F(k-1)+F(k-2),k=3,4, ……,并验证极限。怎么做啊
发表于 2004-7-26 17:57:27 | 显示全部楼层
<>Fibonacci数列的极限指的是F(k)/F(k-1)当k趋于无穷时比值趋于(1+sqrt(5))/2。
这种无法矢量化算法的程序用C语言写肯定比matlab程序要快很多的,因为还要算极限,可以这样写
#include &lt;stdio.h&gt;
void Fibonacci(int n);
int main(int argc, char* argv[])
{
Fibonacci(30);
return 0;
}
   
void Fibonacci(int n)
{//计算F(3)。。。F(n)的值,和相邻两项的比值
long x=1,y=1,z=1;//如果要计算更大的n,可以考虑用double 型
int m;
for(m=3;m&lt;=n;m++)   {
  z=x+y;
  printf("F(%d)=%ld\n",m,z);
  printf("F(%d)/F(%d)=%f\n",m,m-1,(double) z /(double) y);
  x=y;
  y=z;
};
}</P><>
</P>
发表于 2004-7-23 03:58:17 | 显示全部楼层
<>你,,, 我没做,我凭感觉好想极限不存在吧?</P><>这个程序 看你用什么做 用C如果 K很大的话,运行将会很慢很慢,甚至做不出来</P><>用Matlab很简单,而且算的也很快。</P><P>%ffib.m</P><P>function y=ffib(k)</P><P>i=3;y=[1 1];</P><P>while i&lt;k</P><P>      y(i)=y(i-1)+y(i-2);</P><P>      i=i+1;</P><P>end  </P><P>      y </P>
 楼主| 发表于 2004-7-27 18:49:14 | 显示全部楼层
谢谢两位大侠,小弟收益非浅!
您需要登录后才可以回帖 登录 | 注-册-帐-号

本版积分规则

小黑屋|手机版|Archiver|数学建模网 ( 湘ICP备11011602号 )

GMT+8, 2024-11-27 16:30 , Processed in 0.051462 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表