14 lines
436 B
Text
14 lines
436 B
Text
fcn entropy(bs){ //binary String-->Float
|
|
len:=bs.len(); num1s:=(bs-"0").len();
|
|
T(num1s,len-num1s).filter().apply('wrap(p){ p=p.toFloat()/len; -p*p.log() })
|
|
.sum(0.0) / (2.0).log();
|
|
}
|
|
|
|
" N Length Entropy Fibword".println();
|
|
ws:=L("1","0");
|
|
foreach n in ([1..37]){
|
|
if(n>2) ws.append(ws[-1]+ws[-2]);
|
|
w:=ws[-1];
|
|
"%3d %10d %2.10f %s".fmt(n,w.len(),entropy(w),
|
|
w.len()<50 and w or "<too long>").println();
|
|
}
|