最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

JavaScript趣题:Tribonacci数列

来源:懂视网 责编:小采 时间:2020-11-27 20:25:44
文档

JavaScript趣题:Tribonacci数列

JavaScript趣题:Tribonacci数列:下面,我想介绍一下Fibonacci(斐波那契数列)的大兄弟,Tribonacci数列。正如它的名字所暗示的那样,它和斐波那契数列方式很相像,但又有不同的地方。如果我们用[1,1,1]开始这个数列,我们将得到如下的结果:[1,1,1,3,5,9,17,31...]大家可以看
推荐度:
导读JavaScript趣题:Tribonacci数列:下面,我想介绍一下Fibonacci(斐波那契数列)的大兄弟,Tribonacci数列。正如它的名字所暗示的那样,它和斐波那契数列方式很相像,但又有不同的地方。如果我们用[1,1,1]开始这个数列,我们将得到如下的结果:[1,1,1,3,5,9,17,31...]大家可以看

下面,我想介绍一下Fibonacci(斐波那契数列)的大兄弟,Tribonacci数列。
正如它的名字所暗示的那样,它和斐波那契数列方式很相像,但又有不同的地方。
如果我们用[1,1,1]开始这个数列,我们将得到如下的结果:
[1,1,1,3,5,9,17,31,...]
大家可以看到,第四项3是第一、二、三项之和,第五项5是第二、三、四项之和,以此类推......
那如果用[0,0,1]开始这个数列,会得到怎样的结果呢?
[0,0,1,1,2,4,7,13,24,...]
看了这个例子,你大概已经猜出了规律:除了用作初始序列的前三个数字,以后的每一个数字都是等于它前面最近的三个数字之和。
再对比斐波那契数列,规律是:除了用作初始序列的前两个数字,以后的每一个数字都是等于它前面最近的两个数字之和。
现在,你明白为啥我说它俩是兄弟了吧?
甚至,按照这样的规律,还可以引申为Xbonacci数列,不过这个题目我只聊聊Tribonacci数列。
好了,想想怎么实现一个构造Tribonacci数列的方法吧!
它接收两个参数,第一个参数作为初始化序列,是个数组。第二个参数是数字,表示要生成多少项数列。
返回值,自然是生成了新项后的数列数组。
对于这个问题,要区分两种情况:
第一种,这个初始化序列如果大小为3,但我只要生成2项该怎么办?答案很简单,直接对初始化数组截取前2项,就OK。

第二种情况,要求生成初始化序列之外的项,也很简单,像生成斐波那契数列一样,一个循环,新项由前面最近三项相加构成,以此类推。

function tribonacci(signature,n){ 
 var startPoint = 0; 
 if(n < signature.length){ 
 return signature.slice(0,n); 
 } 
 for(var i=startPoint+signature.length;i<n;i++){ 
 signature[i] = signature[startPoint] + signature[startPoint+1] + signature[startPoint+2]; 
 startPoint++; 
 } 
 return signature; 
}

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

JavaScript趣题:Tribonacci数列

JavaScript趣题:Tribonacci数列:下面,我想介绍一下Fibonacci(斐波那契数列)的大兄弟,Tribonacci数列。正如它的名字所暗示的那样,它和斐波那契数列方式很相像,但又有不同的地方。如果我们用[1,1,1]开始这个数列,我们将得到如下的结果:[1,1,1,3,5,9,17,31...]大家可以看
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top