Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
6
Task/Entropy/Groovy/entropy-1.groovy
Normal file
6
Task/Entropy/Groovy/entropy-1.groovy
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
String.metaClass.getShannonEntrophy = {
|
||||
-delegate.inject([:]) { map, v -> map[v] = (map[v] ?: 0) + 1; map }.values().inject(0.0) { sum, v ->
|
||||
def p = (BigDecimal)v / delegate.size()
|
||||
sum + p * Math.log(p) / Math.log(2)
|
||||
}
|
||||
}
|
||||
11
Task/Entropy/Groovy/entropy-2.groovy
Normal file
11
Task/Entropy/Groovy/entropy-2.groovy
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
[ '1223334444': '1.846439344671',
|
||||
'1223334444555555555': '1.969811065121',
|
||||
'122333': '1.459147917061',
|
||||
'1227774444': '1.846439344671',
|
||||
aaBBcccDDDD: '1.936260027482',
|
||||
'1234567890abcdefghijklmnopqrstuvwxyz': '5.169925004424',
|
||||
'Rosetta Code': '3.084962500407' ].each { s, expected ->
|
||||
|
||||
println "Checking $s has a shannon entrophy of $expected"
|
||||
assert sprintf('%.12f', s.shannonEntrophy) == expected
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue