Citation for published version (APA):
van Lint, J. H. (1969). 1967-1969 report of the Discrete Mathematics Group. (EUT report. WSK, Dept. of Mathematics and Computing Science; Vol. 69-WSK-04). Technische Hogeschool Eindhoven.
Document status and date: Published: 01/01/1969
Document Version:
Publisher’s PDF, also known as Version of Record (includes final page, issue and volume numbers)
Please check the document version of this publication:
• A submitted manuscript is the version of the article upon submission and before peer-review. There can be important differences between the submitted version and the official published version of record. People interested in the research are advised to contact the author for the final version of the publication, or visit the DOI to the publisher's website.
• The final author version and the galley proof are versions of the publication after peer review.
• The final published version features the final layout of the paper including the volume, issue and page numbers.
Link to publication
General rights
Copyright and moral rights for the publications made accessible in the public portal are retained by the authors and/or other copyright owners and it is a condition of accessing publications that users recognise and abide by the legal requirements associated with these rights. • Users may download and print one copy of any publication from the public portal for the purpose of private study or research. • You may not further distribute the material or use it for any profit-making activity or commercial gain
• You may freely distribute the URL identifying the publication in the public portal.
If the publication is distributed under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license above, please follow below link for the End User Agreement:
www.tue.nl/taverne
Take down policy
If you believe that this document breaches copyright please contact us at:
openaccess@tue.nl
providing details and we will investigate your claim.
1967 - 1969
Report of the Discrete Mathematics Groupby
J .H. van Lint
T.H. Report
69-WSK-04
§
o.
IntroductionThe purpose of this report is to present a number of results found in the years 1967-1968 and 1968-1969 by members of the Discrete Mathematics Group and by some of the students who took the course on discrete mathemat-ics. Although everything presented here is original work it is not all new (which in most cases was only discovered after the work was completed).
In
cases where similar results are known to us they will be mentioned. This report contains only those results which have not been published separately as papers. The titles of the sections are:
1. The penny-weighing problem. 2. A perfect code over GF(3).
3. Computer search for perfect codes.
4. Nonexistence of a non-trivial binary perfect 4-error-correcting code.
~;, 1. '/')1(; PC;flrJ,y-w(;il';lLLIl{'; problem (l/.~; .Ni. Kr'uijer unel ,J .1/. van Lint)
Given a balance which can be used to determine whether two weights are equal, or which is heavier, and given a certain quantity of pemlies, of which at most one may be heavier or lighter than the standard weight, it is asked to determine with a minimum number of operations which penny, if any, is defective, and whether its weight is too large or too small. It is also required that the weighing program be completely predetermined, and thus not be affected by the results of the successive weighings.
Golay (1958) showed the connection of this problem with the theory of perfect single-error-correcting codes, the so-called Hamming codes. In fact, each penny may be in one of three possible states, too light, of correct weight, and too heavy, and its state is thus expressible by an element of the field of three elements, which field we shall denote by GF(3). The in-formation gathered from each weighing is also expressible by an element of GF(3). Finally, for the position of a penny at each weighing there are also three possibilities: the penny is on the right scale, on the left scale, or off the scales. These circumstances suggest an analogy with the transmission and reception of messages composed of the elements of GF (3), of which one at most may be received in error.
If we have k operations of weighing at our disposal to identify the defective penny and to decide whether it is lighter or heavier than the others, there is a solution if the number of pennies, which we denote by n,
zk 3
o1)eys the following restrictions: 3 ~ n ~ ] 2- • That these bounds for n are necessary for the problem to be soluble has been proved by several per-sons (Dyson (1946), Smith (1947), Fine (1947), O'Beirne (1965)). I t follows that l-f
3k-~
-3
< n~
3
k ; 3
- k weighings are necessary and sufficient to solve the problem.
Suppose we have n pennies,
3k-~
-3
< n~
3
k;3
and we have f oUild the weighing program we searched for. This program can be characterized by a matrix H (k rows, n columns) over GF(3), which elements are defined in the following way:i) if h. _ 0 the j-th penny
TJ is not used in the i-th weighing,
.ll) i f h .. the j-th penny is
l J on the left scale in the i-th weighing,
iii) • £'
h .. ll.
lJ 2 the j-th penny is on the right scale in the i-th weighing.
a) each row of H has the same number of 1 's as 2's,
b) no 2 columns of H are linearly dependent over GF (3), in other words: If 2S. is a column of H, neither x nor - x occur among the other columns, and ~
(=
the columnvector consisting solely of OIS) is not a column ofH.
The result of the k weighings is described by a columnvector '!!.. with w. = 0
1
if the scales balance, w.
=
1 if the left scale is heavier and w.=
2 if the1 1
right scale is heavier. I f w
=
0 there is no defective penny. I f '!!..I
Q
then w is the j-th column of H if the j-th penny is too heavy, and w is twice thej-th column if the j-th penny is too light.
Definition: A matrix H with £ rows and m columns, which has the properties a) and b), shall be called a weighing-matrix, and denoted by H(£;m)o
Thus it is our goal to construct for each entire number k~ 2
3k-1 _ 3 ,;:: 3k - 3
each n with 2 < n,-" 2 a weighing-matrix H(k;n). Unless n our weighing-matrices H(k;n) will also have the following property: c) among the columns of H(k;n) there does not occur the columnvector 1
consisting of 1 's only and the columnvector
£
conSisting of 2's only. We shall now describe a method to construct, in a recursive manner, there-quired weighing-matrices H(k;n). Although independently discovered, this method resembles much a method described by C.A.B. Smith (1947). We start with the following matrices:
H(2;3)
(~
0~)
(~
0 1~)
2 1 2 H(3;5)(~
1 2D
0 1 1 2 2 1 HO;6)
(~
0 1 2D
2 0 1 1 0 2 2 1(C
0 0 2D
H(3i7) 2 2 2 0 1 1 0 1 2 0 2 1(:
0 1 1 1 2 2~)
H(3;8) 2 1 2 2 0 0,.
1 2 1 2 0 2(~
0 0 1 1 1 2 2~)
H(3i9) 2 2 0 0 1 1 1 0 1 0 2 2 1 2C
0 0 0 1 1 2 2D
H(3i 1O )== 1 1 1 0 2 2 1 2 0 2 0 1 2 0 0c
0 0 1 1 1 2 2 2~)
H(3;11)== 1 2 1 1 2 2 0 0 1 1 1 1 2 1 2 0 2 0H(3;12)
~
C
0 0 0 1 1 1 1 2 2 2;)
0 2 2 0 0 1 2 0 1 1.
2 1 2 0 2 0 1 2 0 1We see that indeed all these matrices, except H(3;11), have property c), and that the first column of H(3;12) does not occur in
±
H(3;11), which property is also essential for our method. We distinguish between four cases:I) If 3 k -1 _ 3 =0::: 3k - 9 , we write: n == 2g + h with g~
2
k -1 -2
2 < n"" 2 2 ,2k-1 - 22
k-1 -:2
We get H(k;n) as follows: h~ gI
2 • 2(~(~~;;~j
0·
1 • • ~ e 0 0 1·
:(~~; ;~i
2)
H(k;n)·
H(k-1;g)·
·
·
·
·
k:2
k-1 -:2
-zk-1-2
n)
I f n = 2 ; 7 , we write: n == 2g + h + 3 with g ~ 2 ,h~ .:!. 2 gf
2 k -1 -:2
• We get H(k;n) as follows: 2() •.•••• 0 1 •.••.• 1 . 2 •..•.• 2 . 0 1 2
2 0
H(k;n) H(k-1 ;h) H(k-1;g) H(k-1;g)
o 2 0 1
k
III) If n =
3
2-5 ,
we get H(k;n) as follows:2 ...•..•••• 2 . 1 2 2
o
1 2 H(k;n) = k - 1 ' k - 1 ' k-1 H(k-1 ;3
-5).
H(k-1 ;3
2-3) .
H(k-1 ;3
-2.)
2 2 0 1 2 kIV) If n
3 ; 3 ,
we construct first a weighing-matrix A(k;n) as follows:o ....
0 0 0 $ . 0 .o .
1 1 • 2 2 • 0 1 22 0 1
k - 1 ' k - 1 ' . k-1 • •
A(k;n) = H(k-1;
3
2-3) .
H(k-1 ;3
2-3) .
H(k-1 ;3
2-3) . .
2 0
By interchanging the first and the (3k-1 - 2)-th column of A(k;n) we get a weighing-matrix H(k;n) whose first column does not occur in
i.
H(k;n-1).k
Moreover, i t is clear that only H(k; 3 2- 5) does not have the property c). These last two remarks justify our method.
§ 2. A perfect code over GF(3) (R.S.M. Kruijer and J.R. van Lint)
In Peterson
(1961)
it is stated that there are probably no perfect codes except the binary repetition codes, perfect single-error-correcting codes and the Golay (23,12) code. We shall describe the construction of a perfect 2-error-correcting code over GF(3). Although we have learned in the meantime that the existence of this code is well known (to others!) we have not seen the description given below in the literature. In Berlekamp(1968)
the code is described as a quadratic residue code
(po
307).
In the following we work over the field GF(3). We use ~ to denote the unit matrix of order k, J
k to denote the k
x
k matrix for which all entries are 1 and S to denote the cyclic matrix with first row (0 1 -1 -1 1).5 Define G by 1
o
0 0 0 0 1 1 1 1 1 0 G := 0I
S
0 5 5 0 0 and R by 1 1 H := 1 S -I 5 5 1 1 Then GHT = 0.
Clearly the rows of G are independent and hence G is the generator matrix of an
(11,6)
code over GF(3) and H is parity check matrix for this code~ We re-mark that 0 0 0 0 0 0 GGT 0 0 -J 5 0 0rphis implies that i f a '-' (a ,a ,a ,a ,a ,a.) then
- 1 2 3 4 5 6
- (.
~
ai
)2
f
1 J.=2i . e., all code-words §:. G have weight
t
1 (mod3).
Clearly no code-word canhave weight 2 and in fact it is immediately clear that a linear combination of 2 rows of G produces a word of weight
5
or6
and also that a linear com-bination of 3 rows has a weight> 3, and since this weight cannot be4
it must also be at least5.
Trivially a linear combination of more than3
rows of G bas weight ~4
and hence ~5.
This implies that the minimum-weight and minimum distance are5,
i.e, the code is 2-error-correcting. Since the num-ber of words is 36 and the volume of a sphere of radius 2 is 1 + 2(111) +(11, 5 .
+
4
2) = 3 the code J.S perfect.The weight-distribution of the code is:
one word of weight 0, 132 words of weight
5,
132 words of weight6,
330 words of weight 8, 110 words of weight9
and24
words of weight 11.An alternative description of the code is given by
G* := 1 1 1 1 1 1 1 1 1 1 1
o
0 1 1 1 1 0 0 1 1 1 1 0 0 1 1 1 0 0o
1 1o
1 1 1 1 1o
0 1 0 1 1 0 0 1 0o
1 0 0 1 1 0 1 0 0o
o
o
and H* the matrix conSisting of the last 5 rows of G*. Once again G* and H* are generator-matrix and parity-check matrix of the perfect (11,6) code over
§
3.
Computer search for perfect codes (B. van Bree, J. Jansen, H. Willemsen) A necessary condition for the existence of a perfect w-error-correcting code of block-length n over GF(q) is thatBy computer search we found that (3.1) has no other solutions th&~ the well-known ones (q
=
2,
n=
2w + 1; q=
2,
n=
23,
w=
3;
q=
2,
n=
90, w=
2;
q
= 3,
n=
11, w=
2)
in the range w ~ 103, q ~1cf,
n ~ 103 $ These resultswere reported at the Oxford Symposium on "Computers in :Number Theorylt, August 1969, by J.H. van Lint. Here we shall give~more details about the program used.
First we remark that special multi-length arithmetic routines were con-structed for this purpose. Let
cx
= n - k. Definepol(n,w) Then we have pol(n,w + 1) Define term(n,w) Then term(n, w + 1 )
(q-1)
x (n-w) x term(n,w) • Hencepol(n,w+1) = (w+1) X pol(n,w) + term(n,w+1) •
The equation to be considered is
(3.6)
pol(n,w)=
w! qCXProgram I: Let q and w be fixed. Consider pol(n,w) as a polynomial in the real variable n. Using the Newton-Raphson method determine the zero of
pol(n,w) - w! qCX (for increasing values of
cx)
which is greater than n (there is only one such zero). For each ex the previous value of n is taken as ini-tial value. I f n exceeds a given bound we start over again with the next value of w etc. Since the multi-length ari tL1!letic only works for integer'sthe Newton-Raphson method gives an approximation for which a neighborhood must be checked for the presence of an actual zero.
yrogram II: For fixed n and w we find the minimal value of a for which pol(n,w)';:; qa. I f eqLlality holds a solution of
(3.1)
has been found. This program is simple since a too small value of a can be chosen as initial value and by increasing a until pol(n,w) .;:; qa the required value is found. The res t is analogous to program 1.Remarks about the programs:
In
program I the number of length multi-plications is at least proportional to w2 and to log n whereas in programmax
II we have proportionality to w and n • There is only small dependence on max
q. It is clear that program I is not suitable for large values of w. Total computing time on
EL-X8
was7800
sec.~~ ~S:..! sign.Q.eln, n, ideln, if, ia.t',
k,w",
q, i, qmineei':; t;!!,functie; afg, deln; integer arrayf,
af, wtac, M, Mv[-2:maxlengte], pol, term[O:wmax, -2:maxlengte};
~-~~ l~teprod(prod, f, g, i); valUe g; l~~~§Z! prod, f, g, i;
begin integer M, carry,; real hulp;
~ c:G_:eslSszmszmm ~
i := -2; m :=,fj carry t= OJ i := -1; prod != f X sigriOs); 'g;::o,abs(g);
g
prod :oJ O~ begtI:l i ::;'1 0; prod := OJm
:= 0; ~ klaar ~;for i, := 0 step 1 until
m
do.,...
-~!; hulp := f X g
+
carry;~~;
carry
:=
entier(hulp/l000000); prod := hulp - carry X 1000000if carry
+
0 then begin ~~m
:=m
+ 1; i :=m;
prod := carry end; 1tD'~ klaar: i:=
-2; prod:a
mjend inteprod;
1!
f X g "" -1 then~ g := -gj intedif(sum, f, g, k); k := -1; teken := sum; g := -gj sum := teken; ~~~ klaar end; sum : == i f f "" 0 then g else f; min : == i f i
<
j then i else j;...
-for k :== 0 step 1 until min do
...
-begin hulp := f + g + carry; ,
-
if hulp>
999999
then begin hulp :"" hulp - 1000000; carry := 1 end else carry := OJ~ 1IIIaIMmIGiIItiI:I~
-sum :== hulp end;
..."....""
if i "" j then begin m := i; goto verder end;
~ ~~ ~ ~
if i
>
j then-
begin for k := min + 1 step 1 until i do~~~' ~ ~
begin hulp
:=
f + carry;-..,
if hulp
>
999999
then begin hulp:=
hulp - 1000000; carry:=
1 end else carry:=
0;~ ~IIZl:I~ DiIIrIDlIDG~
sum :== hulp end;
m
:== i""""'''''''
begin for,k := min + 1 step 1 until j do
~~ ~
~ hulp := g + carry;
if hulp
>
999999
then begin hulp:=
hulp - 1000000; carry:=
1 end else car~J:=
0;Iti:lG:mO ~~ ~~
sum := hulp end; m. := j
~~J
verder: i f carry
+
0 ~::! ~~!l m := m+
1; k:= m; sum := carry ~; k :"" -2; sum := m;1!
fx
g=
-1 thenbeg1;!.!; g := -g; intesum(dif, f, g, k); k := -1; teken := difj,g := -g; dif := teken; ~2:!:.9. klaar~;
if i
>
j then result := 1 else if i<
j then result := -1 else--
~~--begin result :=
0;
-
for k := i step -1 until 0 do-
--~~
1£
f+
g l..~ ~!! result :=g
f>
g~!.! ~,~l; ~ ready ~ ~~;k :=
-2;
dif :=OJ
k :=-1;
dif :=OJ
k := 0; dif :=OJ
~ klaar .end;--ready: k
:=
-1; dif:=
if result=
1 then f else-gj--if result ,.. 1 then
~.' ~'
~ ~ k := 0 s~el? 1 until j ~
~ hulp := f - g.- carry;
if hulp
<
0 then begin hulp := hulp + 1000000; carry :=lllIGiIiiilJ ~~
dif := hulp
~;
~ ~ :=j + 1 ~ 1 until i do
~ hulp := f - carry;
if hulp
<
0 then begin hulp:=
hulp + 1000000; carry:=
"""'"
-dif := hulp end; ,.",.,""" In :"" i end else
end else carry :=
OJ
---1 end else carry := 0;
---kJ.~ar:
~;
dif := hulp
!2!
k:=
i ... 1 s~~1?luntil j do~1;: hulp : ... g - carry;.
if hulp
<
0 then begin hulp := hulp ... 1000000; carry:= end else carry:=
OJ~ ~~ -~
dif
:=
hulpm
!= j!2!
k := i ~ -1 ~ 1do
begin if dif .., 0 then
m
:=
m -
1 else begin k := -2; dif :=m;
goto klaar end end;~ ... ~~ ~ ~~ ~ --~
k := -2; dif
:=
0; end intedif;for j :=
m
+ 1 step 1 until n do----
~- ~ ~~ inteprod(pol[j, ~], pol[j -
1,
k), j, k); term[j, -2] := term[j,-1]
:= term[j,0]
:=0;
end end coe1';
for i
:=
j - 1 step -1 until 1 do~- ~=- ~
~ inteprod(a[k], terro[i - 1, k], j - 1, k); intedif(a[k), terro[i, k), ark], k); inteprod( term[ i, kJ, ark], qmineen, k); inteprod( ark], pol(l - 1, kJ, j, k); intesum(pol[i, kJ, ark], terro[i, k], k)
inteprod(term[O,k],term[O,k],qmi~een,k);
It := term[O, -2]; for k
:=
-2 step 1 until It do pol[O, k] := term[O, k]--
--~~ Newton(m, n, pol, 1', a1') .. ~ M, n; ~~
m,
n; integer array pol, 1', a1';" "
-E..~~ 1!!~~ i, j, k;
1'(-2) :"" af(=2] :=.1'[-1] := af[~l] := 1'[0] := afrO] := 0;
for.i begin
--:= 0- -
step 1 untilm -
1 do...
inteprod(f[k],1'[k],n,k); intesum(1'[k],f[k],pol[i,k],k); inteprod(af[k],af[k],n,k); intesum(af[k),af[k],f[k),k) ,tnteprod(1'[k), 1'[k],
n,
k); intesum(r[kL 1'[k], pol[m, kJ, 1<)tenu[O, 0] := pol[O, 0] := qmineen := q - 1; M[O] := q; if wbegin
>
2 then coef(l, wbegin - l,term, pol, qmineen);...
--for w := 2 step 1 until wbegin - 1 do
~ ~1I1lIl/QD' ~- ~
£e~~~ inteprod(wfac[k), wfac[k), w, k); inteprod(M[k], M[k), q X w, k) ~~;
for,w := wbegin step 1 until wmax do
~ ~ ~1IIl:a =1iI.U:i'
~ inteprod(wfac[k], w~ac[k],
w,
k); inteprod(M[k], M[k], q X w, k); inteprod(Mv[k], M[k], q, k); coef(w - 1, w, term, pol, qmineen); n :== w; i := w ;NLCRj PRINTTEXT(fq
==~);ABSFIXT(3, 0, q); PRINTTEXT({
w
~);ABSFIXT(3, 0, w); NLCR;
for i :
=
i + 1 while n<
nm.ax
do~ ~ ~
begin intedif(pol[w, k], pol[w, k], Mv[k], k);
--
opn: Newton(w, n, pol, f, at); signdeln :== t[-l] X af[-l]; if' :== f[-2]; iaf := af[-2];functie := t[if]Xl000000 + (if if ==
o
then Oelse t[if -1]);--
end w ~~ q end end progend Wi',,,,,,,,,,,,,,,.,,,,,,, if f[-1]
>
0 then"""""'
_.
begin agl: n:= n - 1; Newton(w, n, pol, f, af); if f(-l)
>
0 then goto agl end'IElI1~ ~~ ~
else if f[-l)
<
0 then~--
-n := -n + 1; Newton(w, n, pol, f, af); if f[-l]
<
°
~~~ ~~ ag2 ~~; begin ag2:
~-if f[-l) '"
°
then--
--begin SPACE( 25); PRINTTEX:T(
{it
=:f.); ABSFIXT(4,
0, n);---
PRINTTEXT(~ k =:f.); ABSFIXT(4, 0, n - i)j NLCRnext:
intesun~pol[w, k], pol(w, k], Mv[k), k); inteprod(Mv[k], Mv[k], q, k) end alfa~ q, qmineen, npluseen, iterm, irechterlid, n, ipol, alfa,
w,
irechterlidold, i, result; integer array rechterlid, term, pol, rechterlidnew[O : 25];-=---procedure onderzoek(m, a, b, result); value mj integer!.'il, result; integer array a, b;
~"il"~~ """"""'" -= ... ~ ... :uaz ... ~
integer i;
-
result: =0; .for i:=
m
step -1 until 0 do~ ~~ ~ ~
begin if a[i)
+
b[i) then begin result:= if a[i1<
b(i] then -1 else +1; goto klaar end end;~~ ~~~ ~ Wi'/j\I;~~
Idaar:
end onderzoek;
E~::~ ~nteprod(m, prod, f, g); value gj ~ m, g; 1!;!teger ~ prod, fj
begin integer i, carr.yj real hulp;
~r;~= ~~'W:llr
for i := 0 step 1 until m do
~ ~""'1IIPI
~ hulp := f[i] X g ... carry; carry := entier(hulp/1QOOOOO); prod(i] := hulp - carry X 1000000 ~;
.!!
carry,+
0 ~ ~ m := l'Il ... 1; prod[m) := carry ~--
--for k
:=
0 step 1 until min do~ ~ ~
begin hulp := f[k]
+
g[k] + carry;--
if hulp>
999999
then begin hulp := hulp - 1000000; carry:= end else carry := 0;~ ~~ ~~ sum,[k] : ... hulp ~; if :I. "" j ~~ ~ m := i; ~ verder ~; if i
>
j then t:b1QlJ ~beg:l.n for,k := min + 1 step 1 unt:I.l i do
~~~ ~ ~
begin ~ulp := f[k] + carry; ..
-
if hulp>
999999
then begin hulp....,.
-sum[k] := hulp
~; m:= i
end else
~~
begin fork : ... min
+
1 step 1 until j doiI:l57~~ ~ ~ ~
begin hulp := g[k]
...
+ carry; . ':= hulp - 1000000; carry := 1 ~ ~~ carry := 0;
if hulp
>
999999
then begin hulp := hulp - 1000000; carry:= end else carry:=
0;~ ~~ ~~ sum.[k] := hulp end; m:= j
-end;-verder:
1£
carry+
0 then begin m := m + 1; sum[m] := carry end- -
opnieuvr:
~ npluseen:= n +"; iterm := irechteriid := ipol := alfa := OJ rechterlid[O] := 1;
t~rm[O] := ~
x
qmine~n; pel(O) := 1+
term[O); for If~
begin
-:= 2
!!:!:R
1 until 1() dointeprod( irechterlid, rechterlid, rechterlid, inteprod( iterm, term, term, npluseen -
w);
inteprod( iterm, term, term, qmineen); inteprod( ipol, pol, pol,
w);
intesum( ipol, 'pol, ipol,pol, itenn, term); if +rechterlid
<
ipol then...
...".w);
begin alfa:= alfa + 1; irechterlidold := irechterlidj
--
inteprod( irechterlid"rechterlidnew, rechterlid, q);if irechterlid
<
+pOl th~n...
--begin for i := 0 step 1 until irechterlid do rechterlid[i] := rechterlidnew[i]j
- -
...
~~ opnieuw end
end else
- -
for i := 0...
step 1 until irechterlid do rechterlidnew[i] := rechterlid[i}; irechterlidold := irechterlldend;
-end ...-end progend
-end end
for i := 0 step 1 until irechterlid do rechterlid[i] := rechterlidnew[i];
~ ~ ~ ~
inteprod(irechterlid, recht~rlidnew, rey~terlidJ q); if irechterlid
>
ipol then goto verder else gato opn-
~~ ~~end else if result ... -1 then
~ ~:mww wmu
verder: irechterlid:= irechterlido+~; alfa
:=
alfa - 1 end else~~ for i : ... 0 ~ 1 ~.! lrechterlid
22
rechterlid[i] := rechterlidnew[i];NLCR; PRIN'l'TEXT( ~ n ...
:i-);
ABSFIXT( 3, 0, n}; PRIN'lITEXT( ~ k ... t);ABSFIXT(3, 0, n - alfa); PRINTTEXT(~
w ...
:i-);
ABSFIXT(3, 0, w);PRIN'rTEXT(
t
q ...:i-);
ABSFDCT( 3, 0, q)§ 4. Nonexistence of a non-trivial binary perfect 4-error-correcting code (J.H. van Lint)
For binary perfect codes that correct an odd number of errors Shapiro and Slotnick (1959) indicated the following method for finding possible values of the block-length n. A necessary condition for the existence of a perfect e-error-correcting code over GF(2) is
(4.
1 )e
P(n) :
=
~
(:r:-) =
2k •. l
l=0
The expression e! Pen) is a polynomial in n of degree e with integer coeffi-cients. If e is odd this polynomial is divisible by (n + 1). This leads to a finite number of poss ibili ties (n + 1) = ex. 2t where ex Ie!. I t is not hard to work through a number of small values of e. The first case that is hard to solve using (4.1) alone is e
=
4. Recently it was shown, using the computer extensively, that a binary perfect 4-error-correcting code does not exist i fn > 9 (cf. van Lint (1970)). We shall now give a short proof of this theorem. We use a theorem of Lloyd (1957).
Theorem (Lloyd): I f a binary perfect e-error-correctmg code C exists, with block-length n, then the polynomial
Pe(x).-.~ (_1)i(~=~)(Xi1)
l=Owhere
(~) = x(x-1) ••. (x-i+1)/il
l
has e distinct integral zeros among 1,2, ... ,n-1. For e
=
4 we find24P
(x)
4
The equation P ex) = 0 can be solved explicitly. The four -roots are given by
4
1-\-i.4) 2X
i = n + 1.:!:: (3n-7.:!::~6n2-30n+40)'2
Now remark that P (0) ==
4
4
L;
(x:)
and hence by (4.1) we have. l l==O 4 II i=o _ k-1 x. == 302 • l
Hence at least three of the roots are powers of 2 which implies that there is a choice of the second
±
sign in (4.4) such thatl l
n + 1 + (3n-7+V6n2 -30n+40)'2> 2{n+1-(3n-LtV6n2-30n+40)"2} This implies (eliminating one of the square roots) that:
23n> 9V6n2 - 30n +40 > n2 - 25n + 64 ,
i.e.
n2 - 48n + 64 < 0 •
Hence n must be less than
47.
The computer search of§
3
yielded no solu-tions of (4.1) with e == 4 and 9 < n < 1000. Hence we have proved:Theorem: For block-length n > 9 a binary perfect 4-error-correcting code does not exis t.
§
5.
Minimal weight of binary group codes (T. van den Hooven)We consider linear codes over the binary alphabet. 1et n be the block-length of a code, k the dimension of the code and d the minimal distance of the code-words. We define
W(n,k)
.-
maximum of d over all linear codes with fixed n,k, N(k,d).-
minimum of n over all linear codes with fixed k,d, K(n,d) :== maximum of k over all linear codes with fixed n,d.We have checked a number of results which can be found in the literature (references: Galabi and Myrvaagnes (1964), Hatcher (1964), PLM-report
(1966)). Using these results tables of W, N and K have been made for values of n and k up to
24.
In some of the references these tables are not complete but the cases that were still open have been decided since then (1. Galabi, private communication).Using Hamming codes, the idea of subcodes and of adding a single parity-check, and trivial weight estimates the following properties can be found in
(5.
1 ) (5.2)(5.3)
(5.4 ) (5.5) (5.6) (5.7) (5.S)a straightforward way (cf. Galabi and Myrvaagnes (1964)): W(n,n) =: 1 , W(n,k) ~ Wen + 1,k) , W(n,k)~W(n-1,k-1) , W(n,k) + W(m,k) ~ W(n +m,k) ~ W(n,k) + m W(n,k) =: 2h if W(n-1,k) =: 2h - 1 for h =: 1,2, ••• , if n <
~-1
•Using these inequalities and some known codes most of the entries in the tables can be checked readily. We shall only go into the ~nstances where we did not agree with published results.
Cay
III rlvLL-report (1966) on page 6 we find"If N(k~d) =: 2h - 1 tfJen N(k,d + 1) =: 2h h=:1,2, ••. ". This is obviously wrong, e.g. N(4,S) =: 15, N(4,9) =: 19.
--I t is true that for odd d we have N(k,d + 1) '" N(k,d) + 1. This is achieved by adding a single parity-check symbol (cf. property 27 in Hatcher (1964)).
(b) In PLM (1966) page 7 and also in Hatcher (1964) (property 54) we find:
( k ) k-1
" N(k,d) ~ d 2 - 1 + 2 - 1 II •
k-1
2
Here II ~" should be replaced by ":;" It
the result is given correctly.
In the proof in Hatcher (1964)
(c) In PML (1966) page 8 the upper-right formula should read " K(N(k,d),d) '" k 11 •
(d) In PML (1966) on page 8 the formula
"Ken ,d) +K(n
,[d2+1J)~K(n
+n ,d) It1 2 1 2
holds only if n :;" n . This can be seen from the proof which is
sug-1 2
gested in Hatcher (1964), property 51. There are two misprints in the following proof of property 52:
"K(n_d,[d;1]) + 1 :;"K(n,d) It
It is interesting to remark that these two inequalities can be combined if n ~ 2d. We find:
K(n,d) '" 1 + K(n_d,[d;1]) if n~2d,
and since n - d
~
2[d ; 1] this formula can be iterated. This yields a method for finding K(n,d) for all pairs (n,d) with n ~ 2d.lteferences
BerlekamP9 E .R. (1968), "Algebraic Coding Theory", McGraw-Hill Inc., New York.
Calabi, L. and E. Myrvaagnes (1964), "On the Minimal Weight of Binary Group Codes", IEEE Trans. Inform. Theory, IT 1 0, 385 - 3870
Dyson, F.J. (1946), "The Problem of the Pennies", Math. Gaz • .2Q, 231- 234.
Fine, N.J. (1947), "Solution of Advanced Problem 4203", Am. Math. Monthly
SA., 489-491.
Golay, M.J.E. (1949), "Notes on the Penny-weighing Problem, Lossless Symbol Coding with Nonprimes, etc.", IEEE Trans. Inform. Theory, l t i ,
103 - 109.
Hatcher, T. (1964), "On Minimal Distance, Shortest Length and Greatest Num-ber of Elements for Binary Group Codes", Parke Mathematical Labs.,
Carlisle, Mass., Tech. Mem. No.6.
Lint, J.H. van (1970), "On the Nonexistence of Certain Perfect Codes", Proceedings of the Symposium on Computers in Number Theory, Oxford 1969.
Lloyd, S.P. (1957), "Binary Block Coding", Bell System Tech. J. 36, 517-535.
o
'Beirne , T.H. (1965), "Puzzles and Paradoxes", Oxford University Press, London.Parke Mathematical Labs. (1966), "Mathematical Research on Coding Theory", Final Report AF (19) 628 - 3826.
Peterson, W.W. (1961), "Error-Correcting Codes", The M.LT. Press, Cambridge, Mass.
Shapiro, H.S. and D.L. Slotnick (1959), "On the Mathematical Theory of Error-Correcting Codes", IBM J. Res. Develop.