标签: fibonacci

PHP:有人可以解释这段代码的工作原理吗?(斐波那契)

我保证这不是功课.我只是一个好奇的新手.

这是怎么回事

function f($i){return $i<2?$i:f($i-1)+f($i-2);}
Run Code Online (Sandbox Code Playgroud)

(聪明的人写的)

产生与此相同的结果

function fibonacci($n, $arr = array(0,1)){
    $arr[] = $arr[(count($arr) - 1)] + $arr[(count($arr) - 2)];
    if (count($arr) == $n) return $arr[$n - 1];
    else return fibonacci($n, $arr);
}
Run Code Online (Sandbox Code Playgroud)

(矿)

我想我只是没有得到语法.那里有if语句吗?

php fibonacci

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

斐波那契数!如果一直都是假的

我做了一个程序来查找一个数字是否属于斐波那契系列,如果它确实是什么位置.当我输入一个数字时,如果条件出错了.

#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
    int i,x=1,y=1,z,num;
    clrscr();
    printf("Enter a number to find in fibonacci series:");
    scanf("%d",&num);
    /*to find if the number is a part of fibonacci series or not*/
    if((isdigit(sqrt(5*num*num+4)))||(isdigit(sqrt(5*num*num-4))))  //<-- this if!
    {//belongs to fibo!
        for(i=1;    ;i++)
        {
            if(x==num)
            break;
            z=x+y;
            x=y;
            y=z;
        }
        printf("%d is the %d term of fibonacci series.",num,i);
    }
    else
        printf("Dear user,The entered number is not a part of the fibonacci series.");

    getch();
}
Run Code Online (Sandbox Code Playgroud)

c fibonacci

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

斐波纳契数的数据类型

由于我正在学习C#,我做了一个小程序来计算X的斐波那契数量.然而,随着数字迅速变大,即使是无符号长数也不能保持数字.我该如何解决这个问题?制作我自己的超大整数数据类型?

c# types numbers fibonacci

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

Haskell - 如何在尾递归函数中更新参数时绕过延迟求值

这是一个Haskell函数,它接受一个数字n并返回第n个斐波纳契数.(我使用了索引方案,使得第0个数字为0,第1个数字为1,第2个数字为1,第3个数字为2,依此类推.)

fib :: (Integral a) => a -> a
fib 0 = 0
fib n = fibhelper n 0 1

fibhelper :: (Integral a) => a -> a -> a -> a
fibhelper 1 x y = y
fibhelper n x y = fibhelper (n-1) y (x+y)
Run Code Online (Sandbox Code Playgroud)

现在,假设为了效率,我想绕过Haskell的懒惰评估并强制评估更新的参数(例如使用$!运算符?)最优雅/惯用的方法是什么?

haskell tail-recursion pattern-matching fibonacci lazy-evaluation

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

VBA认为Return是一个变量

我试图以递归方式制作斐波纳契,如下所示:

Option Explicit
Dim n, contador, termo

function fibonacci(n)
  if n < 2 then
    Return n
  else
    Return fibonacci(n-1) + fibonacci(n-2)
  end if        
End function

termo = InputBox("Diga ate que termo vai a sequencia de fibonacci")*1

for contador = 0 to termo
  MsgBox fibonacci(contador)
next
Run Code Online (Sandbox Code Playgroud)

但我得到错误:变量未定义:'返回'我的代码有什么问题?

vba function fibonacci

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

F#递归地理解Fibbonacci序列

这可能听起来像学校的作业,但事实并非如此!

我做了一个递归函数从Fibonacci序列返回一个值.

let rec FoneFive n =
    match n with
    | 1 | 2 -> 1
    | n -> FoneFive(n-1) + FoneFive(n-2)

printfn "%A" (FoneFive 6)
Run Code Online (Sandbox Code Playgroud)

这个递归函数发生了什么?FoneFive 6尽可能给出8.但为什么?

我看待它的方式:从n = 6开始,得出结论6不是1或2.所以它调用FoneFive(n-1) + FoneFive(n-2).(这可能是我错误的地方.但我看到的方式是,除非n为1或2,否则不会返回任何内容.所以从我的观点来看,它会缩小n = 1或2,然后说1 + 1当然是2.)

有人能告诉我它是如何返回8的吗?

math recursion f# fibonacci

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

Python中不准确的大型Fibonacci数

我目前正在实现这个简单的代码,试图使用Python 2.7找到Fibonacci序列的第n个元素:

import numpy as np

def fib(n):
        F = np.empty(n+2) 
        F[1] = 1
        F[0] = 0
        for i in range(2,n+1):
            F[i]=F[i-1]+F[i-2]
        return int(F[n])
Run Code Online (Sandbox Code Playgroud)

这适用于F <79,但在此之后我得到错误的数字.例如,根据wolfram alpha f79应该等于14472334024676221,但fib(100)给我14472334024676220.我认为这可能是由python处理整数的方式引起的,但我不知道究竟是什么问题.任何帮助是极大的赞赏!

python fibonacci

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

Haskell中的Fibonacci无限列表

我想创建一个Fibonacci数列表.我想调用fib x,它应该给我一个列表,直到第x个元素.我如何实现这一目标.

我会像这样计算fib数:

fib 0 = 0
fib 1 = 1
fib n = fib (n-1) + fib (n-2)
Run Code Online (Sandbox Code Playgroud)

如何将结果放入列表中以调用列表直到我需要的元素?

haskell list-comprehension list fibonacci

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

Common Lisp中的递归,推入值和斐波那契数列

不是家庭作业。在下面的代码中:

(defparameter nums '())

(defun fib (number)
  (if (< number 2)
      number
    (push (+ (fib (- number 1)) (fib (- number 2))) nums))
  return nums)

(format t "~a " (fib 100))
Run Code Online (Sandbox Code Playgroud)

由于我对Common Lisp完全没有经验,所以我对为什么该函数不返回值感到困惑。我正在尝试打印斐波那契数列的第一个“ n”值,例如100。

谢谢。

lisp recursion clisp common-lisp fibonacci

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

了解Haskell中的递归斐波那契函数

尽管可以使用此线程,但是由于答案的不同,我不允许在答案下问我的问题,因此我不得不为此创建一个新问题。(我只是stackoverflow中的新手:)

关于以下fib功能如何工作,我并不清楚

fibs :: [Integer]
fibs = 1 : 1 : zipWith (+) fibs (tail fibs)
Run Code Online (Sandbox Code Playgroud)

在这个stackoverflow线程中

nichijou逐步解释了我从nichijou引用的以下线程:

首先,我们使用fib和tail fib可以得到第3个:

fibs                        : [1, 1, ?
tail fibs                   : [1, ?
zipWith (+) fibs (tail fibs): [2, ?
Run Code Online (Sandbox Code Playgroud)

现在,我们知道第三个是2,我们可以得到第四个:

fibs                        : [1, 1, 2, ?
tail fibs                   : [1, 2, ?
zipWith (+) fibs (tail fibs): [2, 3, ?
Run Code Online (Sandbox Code Playgroud)

现在的第五名:

fibs                        : [1, 1, 2, 3, ?
tail fibs                   : [1, 2, 3, ?
zipWith (+) fibs (tail fibs): [2, …
Run Code Online (Sandbox Code Playgroud)

haskell fibonacci

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