Files

51 lines
1.6 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
id: 5900f4481000cf542c50ff5a
title: 'Завдання 219: Кодування зміщеної вартості'
challengeType: 5
forumTopicId: 301861
dashedName: problem-219-skew-cost-coding
---
# --description--
Нехай $A$ та $B$ — бітові рядки (послідовність з 0 і 1).
Якщо $A$ дорівнює <u>left</u>most length($A$) бітів $B$, то $A$ повинно бути префіксом $B$.
Наприклад, 00110 — префікс <u>00110</u>1001, але не 00111 або 100110.
Код розміру $n$ без префіксу — це набір $n$ окремих бітових рядків, де жоден рядок не є префіксом іншого. Наприклад, ось код без префіксу розміру 6:
$$0000, 0001, 001, 01, 10, 11$$
Припустимо, за 1 копійку можна передати біт "0", а за 4 копійки - біт "1". Тоді загальна вартість даного коду без префіксів становитиме 35 копійок. Це найдешевша можлива вартість для кодування зміщеної вартості з даного питання. Запишемо скорочено $Cost(6) = 35$.
Чому дорівнює $Cost(10^9)$?
# --hints--
`skewCostCoding()` має повернути `64564225042`.
```js
assert.strictEqual(skewCostCoding(), 64564225042);
```
# --seed--
## --seed-contents--
```js
function skewCostCoding() {
return true;
}
skewCostCoding();
```
# --solutions--
```js
// solution required
```