Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
10
Task/Benfords-law/APL/benfords-law.apl
Normal file
10
Task/Benfords-law/APL/benfords-law.apl
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
task←{
|
||||
benf ← ≢÷⍨(⍳9)(+/∘.=)(⍎⊃∘⍕)¨
|
||||
|
||||
fibs ← (⊢,(+/¯2↑⊢))⍣998⊢1 1
|
||||
|
||||
exp ← 10⍟1+÷⍳9
|
||||
obs ← benf fibs
|
||||
|
||||
⎕←'Expected Actual'⍪5⍕exp,[1.5]obs
|
||||
}
|
||||
38
Task/Benfords-law/Chipmunk-Basic/benfords-law.basic
Normal file
38
Task/Benfords-law/Chipmunk-Basic/benfords-law.basic
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
100 cls
|
||||
110 n = 1000
|
||||
120 dim actual(n)
|
||||
130 for nr = 1 to n
|
||||
140 num$ = str$(fibonacci(nr))
|
||||
150 j = val(left$(num$,1))
|
||||
160 actual(j) = actual(j)+1
|
||||
170 next
|
||||
180 print "First 1000 Fibonacci numbers"
|
||||
190 print "Digit Actual freq Expected freq"
|
||||
200 for i = 1 to 9
|
||||
210 freq = frequency(i)*100
|
||||
220 print format$(i,"###");
|
||||
230 print using " ##.###";actual(i)/10;
|
||||
240 print using " ##.###";freq
|
||||
250 next
|
||||
260 end
|
||||
270 sub frequency(n)
|
||||
280 frequency = (log10(n+1)-log10(n))
|
||||
290 end sub
|
||||
300 sub log10(n)
|
||||
310 log10 = log(n)/log(10)
|
||||
320 end sub
|
||||
330 sub fibonacci(n)
|
||||
335 rem https://rosettacode.org/wiki/Fibonacci_sequence#Chipmunk_Basic
|
||||
340 n1 = 0
|
||||
350 n2 = 1
|
||||
360 for k = 1 to abs(n)
|
||||
370 sum = n1+n2
|
||||
380 n1 = n2
|
||||
390 n2 = sum
|
||||
400 next k
|
||||
410 if n < 0 then
|
||||
420 fibonacci = n1*((-1)^((-n)+1))
|
||||
430 else
|
||||
440 fibonacci = n1
|
||||
450 endif
|
||||
460 end sub
|
||||
31
Task/Benfords-law/SETL/benfords-law.setl
Normal file
31
Task/Benfords-law/SETL/benfords-law.setl
Normal file
|
|
@ -0,0 +1,31 @@
|
|||
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;
|
||||
38
Task/Benfords-law/True-BASIC/benfords-law.basic
Normal file
38
Task/Benfords-law/True-BASIC/benfords-law.basic
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
FUNCTION log10(n)
|
||||
LET log10 = LOG(n)/LOG(10)
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION frequency(n)
|
||||
LET frequency = (log10(n+1)-log10(n))
|
||||
END FUNCTION
|
||||
|
||||
FUNCTION fibonacci(n)
|
||||
!https://rosettacode.org/wiki/Fibonacci_sequence#True_BASIC
|
||||
LET n1 = 0
|
||||
LET n2 = 1
|
||||
FOR k = 1 TO ABS(n)
|
||||
LET sum = n1+n2
|
||||
LET n1 = n2
|
||||
LET n2 = sum
|
||||
NEXT k
|
||||
IF n < 0 THEN LET fibonacci = n1*((-1)^((-n)+1)) ELSE LET fibonacci = n1
|
||||
END FUNCTION
|
||||
|
||||
CLEAR
|
||||
LET n = 1000
|
||||
DIM actual(0)
|
||||
MAT REDIM actual(n)
|
||||
FOR nr = 1 TO n
|
||||
LET num$ = STR$(fibonacci(nr))
|
||||
LET j = VAL((num$)[1:1])
|
||||
LET actual(j) = actual(j)+1
|
||||
NEXT nr
|
||||
PRINT "First 1000 Fibonacci numbers"
|
||||
PRINT "Digit Actual freq Expected freq"
|
||||
FOR i = 1 TO 9
|
||||
LET freq = frequency(i)*100
|
||||
PRINT USING "###": i;
|
||||
PRINT USING " ##.###": actual(i)/10;
|
||||
PRINT USING " ##.###": freq
|
||||
NEXT i
|
||||
END
|
||||
Loading…
Add table
Add a link
Reference in a new issue