标签: fibonacci

斐波那契的表现

f[0] = 0;
f[1] = 1;
f[x_] := f[x-1] + f[x-2]
Run Code Online (Sandbox Code Playgroud)

这个功能在Mathematica中运行缓慢,我需要提高速度.我必须使用函数式编程和递归.我不确定为什么这么慢,甚至最轻微的想法如何改善这将是有帮助的.

performance wolfram-mathematica fibonacci

6
推荐指数
1
解决办法
1607
查看次数

VB.net中的Fibonacci序列使用循环

请你帮我看一下前10个斐波那契数字.我的代码显示以下结果:1,2,3,5,8,13,21,34,55,我需要它还显示前两个Fibonacci数字(0和1).我该怎么办?

Public Class Form1
  Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim a As Integer = 0
    Dim b As Integer = 1
    Dim fib As Integer = 0

    Do
      fib = a + b
      a = b
      b = fib
      Label1.Text = Label1.Text + fib.ToString & ControlChars.NewLine
    Loop While fib < 55
  End Sub
End Class
Run Code Online (Sandbox Code Playgroud)

在专业编程中你需要使用Fibonacci序列吗?

vb.net fibonacci

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

这个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
查看次数

生成"自己的"斐波纳契数列

我有一个不寻常的(我认为)问题.对于给定数量F_n(我不知道n的值),我必须找到数字F_0,F_1,使得F_ {n} = F_ {n-1} + F_ {n-2}.另外的困难是这个序列应该尽可能长(F_n的值n应该是最高的),如果存在多个解决方案,我必须用最小的F_0.总之,我必须生成我自己的"斐波那契"序列.一些例子:

in:F_n = 10; out:F_0 = 0; F_1 = 2;

in:F_n = 17; out:F_0 = 1; F_1 = 5;

in:F_n = 4181; out:F_0 = 0; F_1 = 1;

我观察到的每个序列("Fibonacci规则")F_n有:

F_n = Fib_n*F_1 + Fib_ {n-1}*F_0

其中Fib_n是第n个斐波那契数.特别是斐波纳契数列确实如此.但我不知道这种观察是否值得.我们不知道n,我们的任务是找到F_1,F_0因此我认为我们什么也没有获得.有任何想法吗?

algorithm fibonacci

6
推荐指数
1
解决办法
501
查看次数

生成斐波纳契数时,溢出错误'数值结果超出范围'

可能重复:
在Python中处理非常大的数字

我有一个python函数来生成斐波纳契数:

def fib(n):                                                                                                            
        return ((1+math.sqrt(5))**n - (1-math.sqrt(5))**n)/(2**n*math.sqrt(5))
Run Code Online (Sandbox Code Playgroud)

我可以提供最多700的fib功能数字,它开始

OverflowError: (34, 'Numerical result out of range')
Run Code Online (Sandbox Code Playgroud)

我是否需要使用特殊类型来解决这个问题?

python fibonacci

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

并行化Fibonacci序列生成器

我正在学习并行化,在一个练习中,我给出了一些我应该提高性能的算法.其中一个是Fibonacci序列生成器:

array[0] = 0;
array[1] = 1;
for (q = 2; q < MAX; q++) {
    array[q] = array[q?1] + array[q?2];
}
Run Code Online (Sandbox Code Playgroud)

我怀疑这是不能优化的(通过并行化),因为每个数字都取决于前两个数字(因此间接地取决于所有前面的数字).怎么可以并行化呢?

c algorithm parallel-processing multithreading fibonacci

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

Fibonacci mod number c ++

我有以下问题:我应该计算另一个给定数字的斐波纳契数.我知道皮萨诺时期,我想在这里实施它.这是代码:

#include <iostream>
#include <cstdlib>
long long get_fibonaccihuge(long long n, long long m) {
    long long period = 0;
    if (m % 2 == 0) {
        if(m / 2 > 1)
        period = 8 * (m / 2) + 4;
        else
        period = 3; 
    }
    else{
        if(((m + 1) / 2) > 1)
        period = 4 * ((m + 1) / 2);
        else
        period = 1;
    }

    long long final_period = n % period;



    long long array_fib[final_period];
    array_fib[0] = 1; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm fibonacci mod

6
推荐指数
1
解决办法
1941
查看次数

在一个表达式中打印前n个斐波那契数列

所以我一直插科打诨与Python有点最近,我试图找到一种方式来输出Fibonacci序列的第n个数在一个单一的表达.这是我到目前为止编写的代码:

(lambda f: f if f<2 else (f-1)+(f-2))(n)
# n == 1 -> 1
# n == 2 -> 1
# n == 3 -> 3
# n == 4 -> 5
# n == 5 -> 7
....
Run Code Online (Sandbox Code Playgroud)

但是,正如我在上面评论的那样,它只输出一组奇数.我很困惑为什么会发生这种情况,因为如果我要将其重新编写为命名的lambda函数,它看起来像这样:

f = lambda n: n if n<2 else f(f-1)+f(f-2)
# f(1) -> 1
# f(2) -> 1
# f(3) -> 2
# f(4) -> 3
...
# f(10) -> 55
...
Run Code Online (Sandbox Code Playgroud)

现在我添加Lambda Calculus标签的原因是因为我不确定这个问题是否属于简单理解Python如何处理这个问题的范畴.我读过关于演算的Y组合一点点,但是这是一个外语对我无法从我发现这个约演算推导资源什么.

现在,我想这样做的一行代码,而不是命名它的原因,是因为我想尝试,并把这个lambda函数到列表理解.所以做这样的事情:

[(lambda f: f if f<2 else …
Run Code Online (Sandbox Code Playgroud)

python recursion lambda lambda-calculus fibonacci

6
推荐指数
1
解决办法
1227
查看次数

当我使用computeIfAbsent计算斐波纳契数时,hashmap size()返回不正确的值

我有以下代码:

import java.math.BigInteger;
import java.util.HashMap;
import java.util.Map;

public class DynamicFib
{
    private static Map<Integer, BigInteger> myMap = new HashMap<>();

    static {
        myMap.put(0, BigInteger.ZERO); //fibonacci(0)
        myMap.put(1, BigInteger.ONE); //fibonacci(1)
    }

    public static BigInteger fibonacci(int x)
    {
//        System.out.println("x = [" + x + "]");
        return myMap.computeIfAbsent(x, n -> fibonacci(n - 2).add(fibonacci(n - 1)));
    }

    public static void main(String[] args)
    {

        System.out.println("l = " + fibonacci(25));
        System.out.println("myMap = " + myMap);
        System.out.println("myMap = " + myMap.keySet().size());

    }

}
Run Code Online (Sandbox Code Playgroud)

控制台输出:

l = 75025

myMap …
Run Code Online (Sandbox Code Playgroud)

java hashmap fibonacci

6
推荐指数
1
解决办法
140
查看次数

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

我为前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
查看次数