Kolmogorov Complexity Visualizer

The Kolmogorov complexity K(s) of a string is the length of the shortest program that produces it. The more structure a string has, the shorter its description — and the lower its complexity.

K(s) ≈ |shortest description of s|
📦

Compressibility = Low Complexity

Strings with repeated patterns compress well. Their K-complexity is small relative to their length.

🎲

Randomness = High Complexity

A truly random string cannot be compressed — its shortest description is itself.

🔍

Approximation via LZ77

True K-complexity is uncomputable. We approximate it using LZ77 compression: fewer tokens → lower complexity.

📏

Normalized Complexity

We show K(s)/|s| — the ratio of compressed tokens to original length. 0% = perfectly regular, 100% = incompressible.


String Input
0 / 600 characters
Examples:
Complexity Metrics
characters
LZ77 tokens
new chars
reused patterns
Normalized complexity K(s)/|s|
Simple Moderate Random
String Visualization — colored blocks share patterns
Literal — unique, seen for the first time
Back-reference — copied from an earlier pattern (same color = same source)
LZ77 Token Stream — the "shortest description" of the string
lit "x" — one new literal character
ref (offset, len) — copy len chars from offset positions back

Complexity Comparison — built-in examples