Data update
This commit is contained in:
parent
0df55f9f24
commit
aec8ed51b6
1045 changed files with 18889 additions and 2777 deletions
36
Task/Fibonacci-word/EasyLang/fibonacci-word.easy
Normal file
36
Task/Fibonacci-word/EasyLang/fibonacci-word.easy
Normal file
|
|
@ -0,0 +1,36 @@
|
|||
func log2 x .
|
||||
return log10 x / log10 2
|
||||
.
|
||||
func entropy s$ .
|
||||
l = len s$
|
||||
if l <= 1
|
||||
return 0
|
||||
.
|
||||
for v$ in strchars s$
|
||||
cnt0 += if v$ = "0"
|
||||
.
|
||||
cnt1 = l - cnt0
|
||||
return -(cnt0 / l * log2 (cnt0 / l) + cnt1 / l * log2 (cnt1 / l))
|
||||
.
|
||||
a$ = ""
|
||||
b$ = ""
|
||||
func$ fibword .
|
||||
if a$ = ""
|
||||
a$ = "1"
|
||||
return a$
|
||||
.
|
||||
if b$ = ""
|
||||
b$ = "0"
|
||||
return b$
|
||||
.
|
||||
a$ = b$ & a$
|
||||
swap a$ b$
|
||||
return b$
|
||||
.
|
||||
numfmt 6 8
|
||||
print " n length entropy"
|
||||
print " ——————————————————————"
|
||||
for n to 37
|
||||
s$ = fibword
|
||||
print n & " " & len s$ & " " & entropy s$
|
||||
.
|
||||
14
Task/Fibonacci-word/Uiua/fibonacci-word.uiua
Normal file
14
Task/Fibonacci-word/Uiua/fibonacci-word.uiua
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
# Build the string recursively.
|
||||
F ← |1 memo⟨⟨⊂∩F-1.-1|"0"◌⟩=2.|"1"◌⟩=1.
|
||||
# General entropy formula - quite slow for this task.
|
||||
Egen ← /+(¯×ₙ2.)÷/+.≡(⧻⊚=)⊃◴¤
|
||||
# Specific entropy formula for a binary string.
|
||||
E ← ⍥(0◌)=NaN.+∩(¯×ₙ2.)⟜(¯-1)÷⊃⧻(⧻⊚="1")
|
||||
|
||||
# Much faster approach -- don't even build the string, just count
|
||||
# how many "0"s and "1"s the string will have.
|
||||
Fx ← |1 memo⟨⟨+∩Fx-1.-1|[1 0]◌⟩=2.|[0 1]◌⟩=1.
|
||||
Ex ← ⍥(0◌)=NaN./+(¯×ₙ2.)÷/+.
|
||||
|
||||
# Print and time it
|
||||
⍜now(≡(⇌[⊃/+ (⍜(×1e8)⁅Ex)Fx.])+1⇡37)
|
||||
Loading…
Add table
Add a link
Reference in a new issue