Newbie questions
Nick Linker
<>
Mon Mar 27 06:45:06 CEST 2006
Kostis Sagonas wrote:
>Nick Linter wrote:
>
>An example would have helped us understand better what the issue is.
>Currently, I get:
>
>Eshell V5.5 (abort with ^G)
>1> math:log(...).
>480.407
>
Well, I get the following result:
43> math:log10(test:fib(1476)).
308.116
44> math:log10(test:fib(1477)).
=ERROR REPORT==== 27-Mar-2006::10:57:47 ===
Error in process <0.181.0> with exit value:
{badarith,[{math,log10,[16#00012D269
C3FA9D767CB55B0DDF8E6A2DE7B1D967FF8D0BE61EB16ACD02D1A53C95A370ABD95285998D226919
D95DCA54298D92C348C27E635E1690E7858060F0DC14E885F0217413C55A1F820D6EB051F87C7C73
818AC23E4A9A00A2072C08C6697A2FAD66FC7DEBEEB7A5F582D7639A431B9C99CEC6315A9ED1C652
A81A6B59A39]},{erl_eval,do_apply,5},{shell,exprs,6},{shell,eval_loop,3}]}
** exited: {badarith,[{math,log10,
[211475298697902185255785861961179135570552502746803
25217495622655863402432394766663713782393252439761186467156621190833026337742520
45520741882086869936691237540043402509431087092122991804222930097654049305082429
75773774612140021599477983006713536106549441161323499077298115887067363710153036
315849480388057657]},
{erl_eval,do_apply,5},
{shell,exprs,6},
{shell,eval_loop,3}]} **
My system is Windows XP, Erlang R10B.
>fib(N) ->
> trunc((1/sqrt(5)) * (pow(((1+sqrt(5))/2),N) - pow(((1-sqrt(5))/2),N))).
>
>
Good solution :-)
Now I also have different idea without using recursion. It is based on
the following equation
[F_n ] [1 1] [F_n-1]
[ ] = [ ] * [ ]
[F_n-1] [1 0] [F_n-2]
And we just have to calculate k-th power of the matrix [[1,1],[1,0]]. It
is possible to do within O(log(k)).
>PS. The performance you are experiencing in your version of fib/1
> has nothing to do with tail recursion...
>
Yes, exponential number of recursive calls... Thank you.
I'm sorry, but most interesting question (2nd, about number of digits in
an integer) remains unanswered. But I guess it is very rare problem with
numbers, so if there is no answer, I will understand.
Best regards,
Linker Nick.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20060327/0357ebbf/attachment.html>
More information about the erlang-questions
mailing list