69 lines
1.5 KiB
Markdown
69 lines
1.5 KiB
Markdown
|
---
|
||
|
id: 5
|
||
|
localeTitle: 5900f4481000cf542c50ff5a
|
||
|
challengeType: 5
|
||
|
title: 'Problem 219: Skew-cost coding'
|
||
|
---
|
||
|
|
||
|
## Description
|
||
|
<section id='description'>
|
||
|
Sean A y B cadenas de bits (secuencias de 0 y 1).
|
||
|
Si A es igual a la longitud de la izquierda (A) bits de B, entonces A se dice que es un prefijo de B.
|
||
|
Por ejemplo, 00110 es un prefijo de 001101001, pero no de 00111 o 100110.
|
||
|
|
||
|
Un prefijo el código libre de tamaño n es una colección de n cadenas de bits distintas, de modo que ninguna cadena es un prefijo de ninguna otra. Por ejemplo, este es un código sin prefijo de tamaño 6:
|
||
|
|
||
|
0000, 0001, 001, 01, 10, 11
|
||
|
|
||
|
Ahora suponga que cuesta un centavo transmitir un bit '0', pero cuatro peniques para transmitir un '1'.
|
||
|
Entonces, el costo total del código sin prefijo que se muestra arriba es de 35 peniques, que es el más barato posible para el esquema de precios sesgado en cuestión.
|
||
|
En resumen, escribimos Costo (6) = 35.
|
||
|
|
||
|
¿Qué es el Costo (109)?
|
||
|
</section>
|
||
|
|
||
|
## Instructions
|
||
|
<section id='instructions'>
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Tests
|
||
|
<section id='tests'>
|
||
|
|
||
|
```yml
|
||
|
tests:
|
||
|
- text: <code>euler219()</code> debe devolver 64564225042.
|
||
|
testString: 'assert.strictEqual(euler219(), 64564225042, "<code>euler219()</code> should return 64564225042.");'
|
||
|
|
||
|
```
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Challenge Seed
|
||
|
<section id='challengeSeed'>
|
||
|
|
||
|
<div id='js-seed'>
|
||
|
|
||
|
```js
|
||
|
function euler219() {
|
||
|
// Good luck!
|
||
|
return true;
|
||
|
}
|
||
|
|
||
|
euler219();
|
||
|
```
|
||
|
|
||
|
</div>
|
||
|
|
||
|
|
||
|
|
||
|
</section>
|
||
|
|
||
|
## Solution
|
||
|
<section id='solution'>
|
||
|
|
||
|
```js
|
||
|
// solution required
|
||
|
```
|
||
|
</section>
|