Benford's law: Difference between revisions
Content added Content deleted
(Added True BASIC) |
Not a robot (talk | contribs) (add SETL) |
||
Line 4,086: | Line 4,086: | ||
8 0.05115 0.06646 0.01531 |
8 0.05115 0.06646 0.01531 |
||
9 0.04576 0.05831 0.01255</pre> |
9 0.04576 0.05831 0.01255</pre> |
||
=={{header|SETL}}== |
|||
<syntaxhighlight lang="setl">program benfords_law; |
|||
fibos := fibo_list(1000); |
|||
expected := [log(1 + 1/d)/log 10 : d in [1..9]]; |
|||
actual := benford(fibos); |
|||
print('d Expected Actual'); |
|||
loop for d in [1..9] do |
|||
print(d, ' ', fixed(expected(d), 7, 5), ' ', fixed(actual(d), 7, 5)); |
|||
end loop; |
|||
proc benford(list); |
|||
dist := []; |
|||
loop for n in list do |
|||
dist(val(str n)(1)) +:= 1; |
|||
end loop; |
|||
return [d / #list : d in dist]; |
|||
end proc; |
|||
proc fibo_list(n); |
|||
a := 1; |
|||
b := 1; |
|||
fibs := []; |
|||
loop while n>0 do |
|||
fibs with:= a; |
|||
[a, b] := [b, a+b]; |
|||
n -:= 1; |
|||
end loop; |
|||
return fibs; |
|||
end proc; |
|||
end program;</syntaxhighlight> |
|||
{{out}} |
|||
<pre>d Expected Actual |
|||
1 0.30103 0.30100 |
|||
2 0.17609 0.17700 |
|||
3 0.12494 0.12500 |
|||
4 0.09691 0.09600 |
|||
5 0.07918 0.08000 |
|||
6 0.06695 0.06700 |
|||
7 0.05799 0.05600 |
|||
8 0.05115 0.05300 |
|||
9 0.04576 0.04500</pre> |
|||
=={{header|Sidef}}== |
=={{header|Sidef}}== |
||
<syntaxhighlight lang="ruby">var (actuals, expected) = ([], []) |
<syntaxhighlight lang="ruby">var (actuals, expected) = ([], []) |