Data update
This commit is contained in:
parent
52a6ef48dd
commit
157b70a810
604 changed files with 14253 additions and 2100 deletions
37
Task/Fibonacci-word/PascalABC.NET/fibonacci-word.pas
Normal file
37
Task/Fibonacci-word/PascalABC.NET/fibonacci-word.pas
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
function entropy(str: string): real;
|
||||
begin
|
||||
// ## return the entropy of a fibword string.
|
||||
if str.length <= 1 then begin result := 0.0; exit end;
|
||||
var strlen := str.length;
|
||||
var count0 := str.where(c -> c = '0').count;
|
||||
var count1 := strlen - count0;
|
||||
result := -(count0 / strlen * log2(count0 / strlen) + count1 / strlen * log2(count1 / strlen))
|
||||
end;
|
||||
|
||||
function fibword(): sequence of string;
|
||||
begin
|
||||
// ## Yield the successive fibwords.
|
||||
var a := '1'.ToString;
|
||||
var b := '0'.ToString;
|
||||
yield a;
|
||||
yield b;
|
||||
while true do
|
||||
begin
|
||||
a := b + a;
|
||||
swap(a, b);
|
||||
yield b
|
||||
end;
|
||||
end;
|
||||
|
||||
begin
|
||||
println(' n length entropy');
|
||||
println('————————————————————————————————');
|
||||
var n := 0;
|
||||
foreach var str in fibword do
|
||||
begin
|
||||
n += 1;
|
||||
write(n:2, str.length:10, entropy(str):18:14);
|
||||
if n < 10 then writeln(' ', str) else writeln;
|
||||
if n = 37 then break
|
||||
end;
|
||||
end.
|
||||
Loading…
Add table
Add a link
Reference in a new issue