http://www.perlmonks.org?node_id=490275


in reply to Fibonacci numbers (again)

Updated In 28 chars
{print$}+=$.||1,$.+=$};redo}

Replies are listed 'Best First'.
Re^2: Fibonacci numbers (again)
by sh1tn (Priest) on Sep 08, 2005 at 19:35 UTC
    Please, recheck your code. It should output these numbers:
    1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 ... i.e.: perl -e '$.++;print$}+=$.,q| |,$.+=$},q| |while+1'|more


      Which part are you criticizing? I thought fibo numbers where 1,1,2,3,5,8 which would make his correct. Just asking for clarification if there was some other difference i missed.

      His outputs 1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597 for me.

      Update: /me does some googling and finds both of those and 0,1,1,2,3 as pretty evenly distributed....hmm.


      ___________
      Eric Hodges

        It's all just convention, but I opt for 0,1,1,2,3,5,..., and I have a reason.

        If you define F_0 = 0, F_1 = 1, than the nice equation gcd(F_n, F_k) = F_{gcd(n,k)} is true, and as a special case F_k divides F_n iff k divides n. This nice equation would be much more ugly if F_0 != 0.

        Update: in case anyone's interested, any integer sequence defined by a second order homogenous linear recursion and starting element 0 has this property. That is, if s_0 = 0, s_1 is and integer, and s_{k+2} = A s_{k+1} + B s_k for given A, B integers; then gcd(s_n, s_k) = s_{gcd(n,k)}.

        Update 2006 nov 4: the above paragraph is false. Sorry.

        This was not the case before the update of [id://cristian] while the code length was 27 chars.