2018-10-08 17:34:43 +00:00
---
title: Entropy
id: 599d15309e88c813a40baf58
challengeType: 5
2018-10-10 20:20:40 +00:00
videoUrl: ''
localeTitle: Entropía
2018-10-08 17:34:43 +00:00
---
## Description
2018-10-10 20:20:40 +00:00
< section id = "description" > Tarea: < p > Calcule la entropía H de Shannon de una cadena de entrada dada. </ p >< p > Dada la discreta variable aleatoria $ X $ que es una cadena de $ N $ " símbolos" (caracteres totales) que consta de $ n $ caracteres diferentes (n = 2 para binario), la entropía de X de Shannon en bits / símbolo es: </ p >< p > $ H_2 (X) = - \ sum_ {i = 1} ^ n \ frac {count_i} {N} \ log_2 \ left (\ frac {count_i} {N} \ right) $ </ p >< p > donde $ count_i $ es el conteo del carácter $ n_i $. </ p ></ section >
2018-10-08 17:34:43 +00:00
## Instructions
2018-10-10 20:20:40 +00:00
< section id = "instructions" >
2018-10-08 17:34:43 +00:00
< / section >
## Tests
< section id = 'tests' >
```yml
tests:
- text: < code > entropy</ code > es una función.
testString: 'assert(typeof entropy === "function", "< code > entropy< / code > is a function.");'
- text: < code > entropy(" 0" )</ code > debe devolver < code > 0</ code >
testString: 'assert.equal(entropy("0"), 0, "< code > entropy("0")< / code > should return < code > 0< / code > ");'
- text: < code > entropy(" 01" )</ code > debe devolver < code > 1</ code >
testString: 'assert.equal(entropy("01"), 1, "< code > entropy("01")< / code > should return < code > 1< / code > ");'
- text: < code > entropy(" 0123" )</ code > debe devolver < code > 2</ code >
testString: 'assert.equal(entropy("0123"), 2, "< code > entropy("0123")< / code > should return < code > 2< / code > ");'
- text: < code > entropy(" 01234567" )</ code > debe devolver < code > 3</ code >
testString: 'assert.equal(entropy("01234567"), 3, "< code > entropy("01234567")< / code > should return < code > 3< / code > ");'
- text: < code > entropy(" 0123456789abcdef" )</ code > debe devolver < code > 4</ code >
testString: 'assert.equal(entropy("0123456789abcdef"), 4, "< code > entropy("0123456789abcdef")< / code > should return < code > 4< / code > ");'
- text: < code > entropy(" 1223334444" )</ code > debe devolver < code > 1.8464393446710154</ code >
testString: 'assert.equal(entropy("1223334444"), 1.8464393446710154, "< code > entropy("1223334444")< / code > should return < code > 1.8464393446710154< / code > ");'
```
< / section >
## Challenge Seed
< section id = 'challengeSeed' >
< div id = 'js-seed' >
```js
function entropy (s) {
// Good luck!
}
2018-10-10 20:20:40 +00:00
2018-10-08 17:34:43 +00:00
```
< / div >
< / section >
## Solution
< section id = 'solution' >
```js
2018-10-10 20:20:40 +00:00
// solution required
2018-10-08 17:34:43 +00:00
```
< / section >