Show by arithmetical arguments that there cannot be a perfect binary code of length $n$ which corrects $e$ errors.

161 Views Asked by At

Show by arithmetical arguments that there cannot be a perfect binary code of length $n$ which corrects $e$ errors when:

(i) $n=5,e=1;$

(ii) $n=10,e=2;$

I'm not sure I understand what a perfect code is. My book says that for some code $C$ that corrects at most one error, $|C| \times (1 + n) \leq 2^n$. And for Hamming codes, this is an equality so $|C|$ attains its maximum value.

For Hamming codes $|C|=2^k$ where $k=2^r-1-r$ ($r$ is the number of rows in the check matrix), and $n+1=2^r$ so $|C| \times (1+n) = 2^k \times 2^r = 2^{2^r-1-r} \times 2^r = 2^{n+1 -1 -r + r}=2^{n}$.

So I see the equality they speak of. Every possible word is in $|C|$. But what does this have to do with error?

Attempt:

(i) If $e=1$ and we assume $2e+1= \delta$, the minimum distance in $C$, then $\delta=3$. So $C$ is a Hamming code. However, for a Hamming code, $n=2^r-1 \implies 6 = 2^r$, which is impossible since there are no nonnegative integer solutions for $r$.

(ii) $e = 2 \implies \delta = 5$. A perfect code must be a Hamming code, and for a Hamming code, $\delta = 3$. So this can't be a perfect code.

1

There are 1 best solutions below

0
On BEST ANSWER

Let $C$ be a linear code. For some $\textbf c \in C$, let $S_e(\textbf c)$ denote the set of vectors attained by altering up to $e$ bits in $\textbf c$.

A perfect code $C$ with vectors of length $n$ that corrects $e$ errors possesses the property $$\forall \textbf x \in V^n, \;\; \textbf x \in S_e(\textbf c) \text{ where } \textbf c \in C$$

In other words, every possible vector of length $n$ is some alteration (of up to $e$ bits) of a vector in $C$. If $C$ corrects $e$ errors, these $S_e(\textbf c)$ sets are disjoint such that

$$|C| \times |S_e(\textbf c)|=2^n$$

(i) $n=5,e=1$

In this case we have $|C| \times \sum_{i=0}^{1} {5 \choose i} = 2^5 \implies |C| \times 6=32$. So the cardinality of $C$ is not an integer, which is impossible.

(ii) $n=10,e=2$

Now we have $|C| \times \sum_{i=0}^{2} {10 \choose i} = 2^{10} \implies |C| \times 56=1024$. So the cardinality of $C$ is not an integer, which is impossible.