Files
freeCodeCamp/curriculum/challenges/german/10-coding-interview-prep/project-euler/problem-287-quadtree-encoding-a-simple-compression-algorithm.md
2023-02-28 08:08:50 -08:00

2.5 KiB
Raw Blame History

id, title, challengeType, forumTopicId, dashedName
id title challengeType forumTopicId dashedName
5900f48b1000cf542c50ff9e Problem 287: Quadtree-Kodierung (ein einfacher Kompressionsalgorithmus) 1 301938 problem-287-quadtree-encoding-a-simple-compression-algorithm

--description--

Die Quadtree-Kodierung ermöglicht es uns, ein $2^N×2^N$-Schwarzweißbild als eine Folge von Bits (0 und 1) zu beschreiben. Diese Sequenzen sind von links nach rechts wie folgt zu lesen:

  • der erste Teil betrifft die gesamte Region 2^N×2^N;
  • "0" bedeutet eine Aufteilung:
    • die aktuelle Region 2^n×2^n wird in 4 Unterregionen der Dimension 2^{n - 1}×2^{n - 1} unterteilt,
    • die nächsten Bits enthalten die Beschreibung der Unterregionen oben links, oben rechts, unten links und unten rechts - in dieser Reihenfolge;
  • "10" gibt an, dass die aktuelle Region nur schwarze Pixel enthält;
  • "11" gibt an, dass die aktuelle Region nur weiße Pixel enthält.

Betrachte das folgende 4×4-Bild (farbige Markierungen kennzeichnen die Stellen, an denen eine Teilung auftreten kann):

4x4-Bild mit farbigen Markierungen, die die Stellen kennzeichnen, an denen eine Teilung auftreten kann

Dieses Bild kann durch mehrere Folgen beschrieben werden, zum Beispiel: "001010101001011111011010101010", der Länge 30, oder "0100101111101110", der Länge 16, welches die minimale Folge für dieses Bild ist.

Für einen positven Integer N definiere D_N als das $2^N×2^N$-Bild mit dem folgenden Färbungsschema:

  • pixel mit den Koordinaten x = 0, y = 0 entspricht dem unteren linken Pixel,
  • wenn {(x - 2^{N - 1})}^2 + {(y - 2^{N - 1})}^2 ≤ 2^{2N - 2}, dann ist das Pixel schwarz,
  • andernfalls ist das Pixel weiß.

Was ist die Länge der minimalen Sequentz, die D_{24} beschreibt?

--hints--

quadtreeEncoding() sollte 313135496 zurückgeben.

assert.strictEqual(quadtreeEncoding(), 313135496);

--seed--

--seed-contents--

function quadtreeEncoding() {

  return true;
}

quadtreeEncoding();

--solutions--

// solution required