freeCodeCamp/curriculum/challenges/russian/08-coding-interview-prep/project-euler/problem-287-quadtree-encodi...

56 lines
3.0 KiB
Markdown
Raw Normal View History

---
id: 5900f48b1000cf542c50ff9e
challengeType: 5
title: 'Problem 287: Quadtree encoding (a simple compression algorithm)'
videoUrl: ''
localeTitle: 'Задача 287: кодирование Quadtree (простой алгоритм сжатия)'
---
## Description
<section id="description"> Квадратное кодирование позволяет нам описывать черно-белое изображение 2N × 2N в виде последовательности бит (0 и 1). Эти последовательности следует читать слева направо так: первый бит относится к полному 2N × 2N области; «0» обозначает раздвоение: текущая область 2n × 2n делится на 4 субрегиона размером 2n-1 × 2n-1, следующие биты содержат описание верхнего левого, верхнего правого, нижнего левого и нижнего правого подпунктов -области - в этом порядке; «10» означает, что текущая область содержит только черные пиксели; «11» указывает, что текущая область содержит только белые пиксели. Учитывайте следующее изображение 4 × 4 (цветные метки обозначают места, где может произойти сплит): <p> Это изображение может быть описано несколькими последовательностями, например: «001010101001011111011010101010», длиной 30 или «0100101111101110» длиной 16, что является минимальной последовательностью для этого изображения. </p><p> Для положительного целого N определите DN как изображение 2N × 2N со следующей схемой окраски: пиксель с координатами x = 0, y = 0 соответствует нижнему левому пикселю, если (x - 2N-1) 2 + (y - 2N-1) 2 ≤ 22N-2, тогда пиксель черный, в противном случае пиксель белый. Какова длина минимальной последовательности, описывающей D24? </p></section>
## Instructions
<section id="instructions">
</section>
## Tests
<section id='tests'>
```yml
tests:
- text: <code>euler287()</code> должен вернуть 313135496.
testString: 'assert.strictEqual(euler287(), 313135496, "<code>euler287()</code> should return 313135496.");'
```
</section>
## Challenge Seed
<section id='challengeSeed'>
<div id='js-seed'>
```js
function euler287() {
// Good luck!
return true;
}
euler287();
```
</div>
</section>
## Solution
<section id='solution'>
```js
// solution required
```
</section>