I tallteori i Matematikk X, skal elevene kjenne til feilrettende koder og kryptering. Dette er veldig aktuelle anvendelser av kongruensregning, som frem til da virker helt umotivert. De fleste feilrettende kodene er basert på kontrollsiffer som må tilfredsstille en bestemt kongruensligning. For ISBN-koder og norske personnummer skal hvert siffer multipliseres med en bestemt koeffisient, og summen skal være kongruent med 0 mod 11.
Det som i utgangspunktet blir slitsomme oppgaver med mye bokføring, gjør wxMaxima til en lek. Trikset er å ta skalarproduktet (operatoren . ) av koeffisientvektoren og siffervektoren.
Kontrollsiffer for ISBN-10
koeffisienter: [1,2,3,4,5,6,7,8,9,10];
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
isbn: [8,2,7,7,8,2,0,1,9,x];
[8, 2, 7, 7, 8, 2, 0, 1, 9, x]
koeffisienter . isbn;
10x + 202
solve(% = 0,x), modulus: 11;
x = 4
Fødselsnummer
Når de kjedelige utregningene er eliminert, får vi tid til å snakke om hvordan koeffisientene er satt sammen. Jeg bruker samme teknikk som Aschehougs lærebok, som forandrer koeffisientene i stedet for å følge Ernst Selmers fremstilling og snakke om «11-komplement».
pna: [8,4,5,10,3,2,7,6,9,10,0];
[8, 4, 5, 10, 3, 2, 7, 6, 9, 10, 0]
pnb: [6,7,8,9,4,5,6,7,8,9,10];
[6, 7, 8, 9, 4, 5, 6, 7, 8, 9, 10]
individ: [1,1,0,4,9,1,2,3,8,x,y];
[1, 1, 0, 4, 9, 1, 2, 3, 8, x, y]
solve([pna . individ=0, pnb . individ=0], [x,y]), modulus: 11;
[[x = -2, y = 4]]
Maxima gir løsningen nærmest 0, x=-2, i stedet for det minste positive svaret x=9. Med en passende besvergelse er det sikkert mulig å overbevise programmet om noe annet.