标签: fibonacci

尾递归和斐波纳契

我在看这个网站:http://rosettacode.org/wiki/Fibonacci_sequence#JavaScript并看到了这个程序:

function fib(n) {
  return function(n,a,b) {
    return n>0 ? arguments.callee(n-1,b,a+b) : a;
  }(n,0,1);
}
Run Code Online (Sandbox Code Playgroud)

这是如何工作的,这两个参数(a和b)有什么帮助.我追踪它仍然无法弄清楚它是如何工作的

javascript recursion fibonacci

7
推荐指数
1
解决办法
3979
查看次数

在Scala中编写Fibonacci函数的最快方法是什么?

我已经从Scala中看到了Scala中Fibonacci函数的一些实现,从一个非常简单的实现更复杂的函数.

我不完全确定哪一个是最快的.我倾向于使用memoization的那些更快,但我想知道为什么Scala没有本机的memoization.

任何人都可以启发我最好,最快(最干净)的方法来编写斐波纳契函数吗?

recursion scala fibonacci

7
推荐指数
4
解决办法
1万
查看次数

Javascript中的斐波纳契数列

我对编程很新,并且很难理解这个Fibonacci序列示例:

var fib = [0, 1];
for (var i = 2; i < n; i++) {
    fib[ i ] = fib[ i - 1 ] + fib[ i - 2 ];
    console.log(fib);
}
Run Code Online (Sandbox Code Playgroud)

在第一次迭代中,索引2等于1,足够简单.但是,当我尝试i = 3的第二次迭代时,我得到:

fib[ 3 ] = fib[ 3 - 1 ] + fib[ 3 - 2 ];  
fib[ 3 ] = fib[ 2 ] + fib[ 1 ]; 
fib[ 3 ] = fib[ 3 ];
Run Code Online (Sandbox Code Playgroud)

我的思维在哪里出错了?到目前为止,我有:

var fib = [0,1,1,3]
Run Code Online (Sandbox Code Playgroud)

我知道这是不正确的.

javascript fibonacci

7
推荐指数
1
解决办法
6888
查看次数

这个天真的递归fibonacci实现怎么没有stackoverflow?

几个月前,作为一个笑话,我的一位同事试图通过使用这种指数算法计算斐波纳契数来"加速宇宙的热死":

int Fib(int n)
{
    if (n <= 1)
        return 1;
    else
        return Fib(n - 1) + Fib(n - 2);
}
Run Code Online (Sandbox Code Playgroud)

这怎么不会导致C#中的stackoverflow?我们设法在放弃之前得到了Fib(52)(而Fib(51)花了很多时间).我认为这会严重破坏堆栈以导致堆栈溢出,因为CLR默认只将1M分配给堆栈.另外,我很确定这也不适合尾递归.

.net c# stack-overflow algorithm fibonacci

7
推荐指数
1
解决办法
1602
查看次数

如何在Python中将fibonacci序列打印到第n个数字?

我有一份我难以理解的家庭作业.我正在尝试编写一个程序,在第n个数字上输出斐波纳契数列.这是我到目前为止所拥有的:

def fib():
   n = int(input("Please Enter a number: "))

   if n == 1:
      return(1)
   elif n == 0:   
      return(0)            
   else:                      
      return (n-1) + (n-2)


mylist = range[0:n]
print(mylist)
Run Code Online (Sandbox Code Playgroud)

我想我可以使用单独的函数,但我无法弄清楚如何传递计算斐波纳契数列的参数.然后下一步是打印出该数字的数字序列.

python parameter-passing fibonacci

7
推荐指数
2
解决办法
3万
查看次数

Julia用于图像处理和语音识别

我最近偶然发现了朱莉娅语言,我很惊讶地看到了他们的说法.它声称比像Python这样的语言要快很多倍,我目前正用于语音识别的机器学习算法.他们对Fibonacci序列的要求比Python快30倍.

我不明白是什么让它变得如此之快.然而,我真正想知道的是,是否有人确实已经验证了这一点.如果是这种情况,我会从Python转到Julia语言,因为我正在构建语音识别器,因为我的响应速度很慢,而且无法让它变慢.还有github上的任何项目(或任何地方),我可以找到Julia项目,这些项目进行大量的数字处理,如图像处理,语音识别等.我搜索了其他一些链接,例如这个 ,但无法有效地决定.我可以运行程序并验证他们的声明,但如果有人已经这样做,那对我有帮助.

python speech-recognition fibonacci julia

7
推荐指数
1
解决办法
2335
查看次数

使用Fibonacci格子在球体上均匀排列点

我试图在单位球体的表面上或多或少均匀地排列点.

我被告知虽然这个问题很难解决,但Fibonacci Lattices提供了一个非常好的解决方案.

我已经尝试了几天来关注链接文档中提供的非常简单的方法,但我根本无法让它看起来正确.

我正在使用javascript,我有一个对象数组e,每个对象都公开一个latlon参数.这是我用来排列球体上的点的函数:(现在假设点的数量总是奇数)

function arrangeEntries(e)
{
    var p = e.length;
    var N = (p - 1) / 2;

    for (var i = -N; i <= N; i++)
    {
        e[i + N].lat = Math.asin((2 * i) / (2 * N + 1));
        e[i + N].lon = mod(i, 1.618034) * 3.883222;
    }
}
Run Code Online (Sandbox Code Playgroud)

function mod(a, b)
{
    return a - Math.floor(a / b) * b;
}
Run Code Online (Sandbox Code Playgroud)

不同于文档中,我latlon …

javascript algorithm fibonacci html5-canvas

7
推荐指数
1
解决办法
1343
查看次数

绘制斐波那契弧

我正在尝试创建一个类似于这些的Fibonacci Arcs应用程序. 股票图表斐波纳契弧

但是,我想要完整的圆圈而不是圆弧,我想绘制的图片超过图片中显示的三条斐波纳契线.我已经使用JFreeChart创建了一个应用程序来尝试完成此任务.但是,这是尝试绘制上一张图片中显示的相同弧(但作为圆圈)时的结果.我的应用放大了

最初,它只是看起来不对,但是当我缩小时,它确实是一个圆圈,但它太大了. 在此输入图像描述

要计算弧线,你绘制一条线,然后取一个斐波那契比例 - 让我们使用.381例如 - 该线的百分比.如果你看第一张照片,你会看到最里面的圆弧与直线相交,直线距离圆心的距离为.381%.首先,我计算这一点.然后我构建一条从.381%点到中心的线.然后我取这条线的距离,这应该是半径.然后我用这个半径绘制圆圈.

这是计算半径的代码.停止和开始是绘制线的停止点和起点.

multiplier = ratio38Value + i;
diffx = (stop.getX() - start.getX()) * multiplier;
diffy = (stop.getY() - start.getY()) * multiplier;
xValue = start.getX() + diffx;
yValue = start.getY() + diffy;
point = new Point(xValue, yValue);
lineSegment = new Line(point, stop);
radius = lineSegment.getDistance();
circle = new Circle(stop.getX(), stop.getY(), radius);
circles.add(circle);
Run Code Online (Sandbox Code Playgroud)

这是计算线距离的代码

public double getDistance(){
    double x = Math.pow(endPoint.getX() - startPoint.getX(), 2);
    double y = Math.pow(endPoint.getY() - startPoint.getY(), 2);
    return Math.sqrt(x + …
Run Code Online (Sandbox Code Playgroud)

java math jfreechart fibonacci

7
推荐指数
1
解决办法
491
查看次数

这个Fibonacci函数有什么问题?

在博客文章中偶然发现了这个糟糕的C++代码示例,没有任何解释为什么它被认为是"坏".我有自己的想法,但我想听听有经验的C++开发人员.

unsigned int Fibonacci (unsigned int n)
{
    if (n == 0 || n == 1)
        return n;
    else
        return Fibonacci (n - 1U) + Fibonacci (n - 2U);
}
Run Code Online (Sandbox Code Playgroud)

c fibonacci

6
推荐指数
2
解决办法
375
查看次数

斐波那契数列计算器似乎正确,但无法在线找到相似的代码。有什么不对?

我为前22个词做了一个简单的斐波那契数列计算器:

i=1
n=0
while i<=20000:
    i = i + n
    n = i - n
    print(i)
Run Code Online (Sandbox Code Playgroud)

看起来结果是正确的

1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
Run Code Online (Sandbox Code Playgroud)

但我似乎无法在线上找到任何类似的代码。我认为那是一个很大的危险信号。有人可以告诉我这里有什么问题吗?这是效率低下的代码吗?

python fibonacci

6
推荐指数
2
解决办法
145
查看次数