Fibonacci word: Difference between revisions

added Factor
(added Factor)
Line 1,184:
36 14930352 0.9594187
37 24157817 0.9594187</pre>
 
=={{header|Factor}}==
<lang factor>USING: assocs combinators formatting kernel math math.functions
math.ranges math.statistics pair-rocket sequences ;
IN: rosetta-code.fibonacci-word
 
: fib-word ( n -- seq )
{
1 => [ { 1 } ]
2 => [ { 0 } ]
[ [ 1 - fib-word ] [ 2 - fib-word ] bi append ]
} case ;
: entropy ( seq -- entropy )
[ length ] [ histogram >alist [ second ] map ] bi
[ swap / ] with map
[ dup log 2 log / * ] map-sum
dup 0. = [ neg ] unless ;
"N" "Length" "Entropy" "%2s %8s %10s\n" printf
37 [1,b] [
dup fib-word [ length ] [ entropy ] bi
"%2d %8d %.8f\n" printf
] each</lang>
{{out}}
<pre>
N Length Entropy
1 1 0.00000000
2 1 0.00000000
3 2 1.00000000
4 3 0.91829583
5 5 0.97095059
6 8 0.95443400
7 13 0.96123660
8 21 0.95871188
9 34 0.95968689
10 55 0.95931603
11 89 0.95945792
12 144 0.95940375
13 233 0.95942445
14 377 0.95941654
15 610 0.95941956
16 987 0.95941841
17 1597 0.95941885
18 2584 0.95941868
19 4181 0.95941875
20 6765 0.95941872
21 10946 0.95941873
22 17711 0.95941873
23 28657 0.95941873
24 46368 0.95941873
25 75025 0.95941873
26 121393 0.95941873
27 196418 0.95941873
28 317811 0.95941873
29 514229 0.95941873
30 832040 0.95941873
31 1346269 0.95941873
32 2178309 0.95941873
33 3524578 0.95941873
34 5702887 0.95941873
35 9227465 0.95941873
36 14930352 0.95941873
37 24157817 0.95941873
</pre>
 
=={{header|FreeBASIC}}==
<lang FreeBASIC>' version 25-06-2015
1,808

edits