Intuition The ONE core idea
P is the collection of yes/no questions a normal computer can answer with a "steady-growing" amount of work — where "steady" means the number of steps stays below some fixed power of the input's written length (n 2 , n 3 , …). Everything else on the parent page is just the vocabulary needed to say that sentence precisely, so this page builds every one of those words from nothing.
Before you can read "L ⊆ { 0 , 1 } ∗ is in P if M runs in c ∣ x ∣ k steps," you need about a dozen ideas that the parent note assumed . We build them one at a time, each resting on the one before.
x — the input string
x is the thing you hand to the computer : a finite row of symbols, like 10110 or PARIS. The parent writes x ∈ { 0 , 1 } ∗ .
{ 0 , 1 } = "the two symbols we're allowed to use," here the bit 0 and the bit 1.
The little star, { 0 , 1 } ∗ , means ==any finite sequence of those symbols== — length 0, 1, 2, … The star is read "Kleene star": zero or more, strung together .
∣ x ∣ and n — the input length
∣ x ∣ is the ==number of symbols in x == (the vertical bars mean "how long"). We give it the short name n = ∣ x ∣ .
Example: if x = 10110, then ∣ x ∣ = n = 5 .
Why the topic needs this. Every timing claim in P is measured against n . The single most important trap on the parent page — "trial division looks fast but isn't" — is entirely about the difference between the value a string represents and the length n of the string. So n must be crystal clear before anything else.
Common mistake Value vs. length — the trap you must feel now
The number N = 1000000 has value one million, but its length (in bits) is only n = ⌈ log 2 N ⌉ ≈ 20 . A tiny row of symbols can name a gigantic number. Time is always counted against the row's length n , never against the number it names.
Definition Decision problem and the symbol
L
A decision problem is a question whose answer is always yes or no — e.g. "Is this number prime?"
We package it as a ==language L ==: the set of all inputs whose answer is YES .
"x ∈ L " (read "x is in L ") means the answer for x is yes .
"x ∈ / L " means the answer is no .
So solving the problem = deciding membership in the set L .
Intuition Why turn a question into a set
A set is the cleanest mathematical object we have. "Does M answer correctly?" becomes the sharp statement "M says yes exactly when x ∈ L ." No fuzziness. That's why Theory of Computation lives on languages — see TIME complexity classes .
Why ⊆ appears. The parent writes L ⊆ { 0 , 1 } ∗ . The symbol ⊆ means =="is a subset of" — every member of the left is also a member of the right ==. It just says: L is some collection of bit-strings (the yes-instances), sitting inside the pool of all bit-strings.
Definition The Turing machine
M
M is our idealized computer (see Turing Machine ). Picture a long paper tape divided into cells, one symbol per cell, and a little head that can:
read the symbol under it,
write a new symbol,
move one cell left or right,
change its internal "state of mind."
One such read-write-move is called ==one step ==.
==Deterministic == means: given the current symbol and state, the next action is completely fixed — no coin flips, no guessing, no branching. Same input ⟶ same run, every time. (Contrast with NP — nondeterministic polynomial time , where guessing is allowed.)
M decides L "
M decides L if, for every input x , it always halts (stops, never loops forever) and outputs yes exactly when x ∈ L , no otherwise.
Why the topic needs M . "Fast enough to trust" is meaningless until we fix what a step is . The Turing machine gives us a countable unit of work. Thanks to the Cobham–Edmonds thesis , the number of steps is essentially the same (up to a polynomial factor) whether you use a TM, a RAM, or your laptop — so P doesn't depend on which machine you picture.
T ( n )
T ( n ) = the ==largest number of steps M takes over all inputs of length n == (the worst case). It's a function: feed it a size n , it returns a step-count.
Example: schoolbook multiplication of two n -digit numbers uses about n 2 digit-operations, so T ( n ) ≈ n 2 .
Definition Big-O — the symbol
O ( ⋅ )
O ( g ( n )) (read "big-O of g ") means =="grows no faster than g , ignoring constant factors and small inputs." == Formally T ( n ) = O ( g ( n )) if there are constants c > 0 and n 0 with T ( n ) ≤ c g ( n ) for all n ≥ n 0 .
Plain words: past some point, T stays under a fixed multiple of g . See Time complexity & Big-O .
Why Big-O. We don't care whether a step takes 3 or 7 machine-cycles — that's a constant we can't control and it changes between computers. We care about the shape of the growth. Big-O throws away the constant and keeps the shape. That's exactly what makes P model-robust .
n
A ==polynomial == in n is a sum of powers of n with the highest power fixed, like 3 n 2 + 5 n + 7 . What matters is the top exponent k (here k = 2 ): the polynomial is O ( n k ) .
The parent's bound "c ∣ x ∣ k steps" is exactly this: some constant c times n to a fixed power k .
Intuition Why the polynomial line, not some other line
Polynomials are closed under composition : a polynomial of a polynomial is still a polynomial, ( n a ) b = n ab . So chaining and nesting efficient sub-routines keeps you efficient. Exponentials have no such tidy behaviour. That closure is the whole reason P is a stable, meaningful club — see Polynomial-time reductions where this closure does real work.
Now every symbol in the headline is earned. Read it slowly:
That single line now reads in plain English: "P is every yes/no problem a deterministic computer can settle in a number of steps bounded by a fixed power of the input's length."
Input string x over 0 and 1
Length n equals size of x
Deterministic Turing machine M
Running time T of n worst case
Read it bottom-up: strings give length; machine gives steps; steps + length give running time; Big-O shapes it; polynomial is the threshold — and languages decided that fast form P .
Self-test: can you answer each before revealing?
What does { 0 , 1 } ∗ mean? Every finite string of 0s and 1s — "zero or more bits strung together" (Kleene star).
What is n = ∣ x ∣ ? The number of symbols in the input x — its length , not the value it represents.
What is a language L ? The set of all inputs whose answer is "yes"; solving the problem means deciding membership in L .
What does x ∈ L assert? That the correct answer for input x is YES.
What does "deterministic" mean for a Turing machine? The next action is completely fixed by the current symbol and state — no guessing or branching.
What is one "step"? A single read-write-move-and-change-state action of the machine's head.
What does "M decides L " require? M always halts and outputs yes exactly when x ∈ L , no otherwise.
What is T ( n ) ? The worst-case number of steps over all inputs of length n .
What does O ( g ( n )) mean? T ( n ) ≤ c g ( n ) for some constant c and all large enough n — growth ignoring constants.
Polynomial vs. exponential — where is n ? Polynomial has n in the base (n k ); exponential has n in the exponent (2 n ).
Why is P closed/robust? Because polynomials compose: a polynomial of a polynomial is still polynomial.
What does ⋃ k ≥ 1 TIME ( n k ) collect? All languages decidable in O ( n k ) for some constant exponent k .
Parent: P — polynomial time
Turing Machine
Time complexity & Big-O
TIME complexity classes
Cobham–Edmonds thesis
NP — nondeterministic polynomial time
Polynomial-time reductions
P vs NP problem
NP-complete problems