Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau. Über Polynome mit Arithmetik modulo m.

Ähnliche Dokumente
Über Polynome mit Arithmetik modulo m

2 Polynome und rationale Funktionen

Mathematik I für Studierende der Informatik und Wirtschaftsinformatik (Diskrete Mathematik) im Wintersemester 2015/16

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 8 1. Semester ARBEITSBLATT 8 RECHNEN MIT POTENZEN. 1) Potenzen mit negativer Basis

Mathematik 1 -Arbeitsblatt 1-8: Rechnen mit Potenzen. 1F Wintersemester 2012/2013 Unterlagen: LehrerInnenteam GFB. Potenzen mit negativer Basis

Modul Gleichungen umstellen

Terme und Gleichungen

Anleitung zum Ausführen der vier Grundrechenarten mit dem russischen Abakus ( Stschoty )

Linearfaktorenzerlegung und Polynomdivision 1 Aufgabe 1

Termumformungen. 2. Kapitel aus meinem Lehrgang ALGEBRA. Ronald Balestra CH St. Peter

Polynomdivision. W. Kippels 22. April Lösungsprinzip Grundmuster einer Polynomdivision Spezielle Beispiele,

1 Rechnen. Addition rationaler Zahlen gleicher Vorzeichen Summand + Summand = Summe

ADDIEREN UND SUBTRAHIEREN VON TERMEN POTENZSCHREIBWEISE

Polynomdivision. W. Kippels 22. November Inhaltsverzeichnis. 1 Vorwort 3

Regeln zur Bruchrechnung

Polynomgleichungen. Gesetzmäßigkeiten

Mathematik macht Freu(n)de im Wintersemester 2018/19

Kapitel 4. Kapitel 4 Restklassen (die modulo-rechnung)

Vorlesung. Inhalt. Lineare Algebra und Wahrscheinlichkeitsrechnung für Informatik Gunter Ochs, Nico Rompos Sommersemester 2016

schreiben, wobei p und q ganze Zahlen sind.

Faktorisierung bei Brüchen und Bruchtermen

Termumformungen - Ausbau

Mathematik für Informatik 3

Kapitel 3. Kapitel 3 Gleichungen

Grundlagen der Arithmetik und Zahlentheorie

= * 281 = : 25 = oder 7x (also 7*x) oder (2x + 3) *9 oder 2a + 7b (also 2*a+ 7*b)

1. Grundlagen der Arithmetik

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 3 2. Semester ARBEITSBLATT 3 RECHNEN MIT BRUCHTERMEN. 1. Kürzen von Bruchtermen

ALGEBRA Lineare Gleichungen Teil 1. Klasse 8. Datei Nr Friedrich W. Buckel. Dezember 2005 INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK

A1 Aufbau des Zahlensystems

$Id: integral.tex,v /05/05 13:36:42 hk Exp $

A12 Nullstellen Das Buch Inhaltsverzeichnis Stichwortverzeichnis Aufgaben zum Selberrechnen Die Strukturierung

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 7 1. Semester ARBEITSBLATT 7 ADDIEREN UND SUBTRAHIEREN VON TERMEN UND DIE POTENZSCHREIBWEISE

Anleitung zum Ausführen der vier Grundrechenarten mit dem japanischen Abakus ( Soroban )

Mathematik für Anwender I

die ganze Zahl die rationale Zahl

1 3 Z 1. x 3. x a b b. a weil a 0 0. a 1 a weil a 1. a ist nicht erlaubt! 5.1 Einführung Die Gleichung 3 x 9 hat die Lösung 3.

$Id: integral.tex,v /05/05 14:57:29 hk Exp hk $ ln(1 + t) 2 = ln 2 ln 3 + ln 2 = ln

Kapitel III Ringe und Körper

Wie stellt man eine Gleichung um?

Umgekehrter Dreisatz Der umgekehrte Dreisatz ist ein Rechenverfahren, das man bei umgekehrt proportionalen Zuordnungen anwenden kann.

Aufgabensammlung Klasse 8

Reelle Zahlen, Termumformungen, Gleichungen und Ungleichungen

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt Semester ARBEITSBLATT 11 GLEICHUNGEN UND ÄQUIVALENZUMFORMUNGEN

Termumformungen - Ausbau

) sind keine Terme. Setzt man für die Variable eines Terms eine Zahl ein, so erhält man als Ergebnis wieder eine Zahl. y = 2 3 y = 11

Grundlagen komplexe Zahlen. natürliche Zahlen

1. Funktionen. 1.3 Steigung von Funktionsgraphen

Der Nenner eines Bruchs darf nie gleich 0 sein! Der Zähler eines Bruchs kann dagegen auch 0 sein. Dies besagt, dass kein Teil zu nehmen ist.

Mathematik 1 -Arbeitsblatt 1-4: Rechnen mit Brüchen. 1F Wintersemester 2012/2013 Unterlagen: LehrerInnenteam GFB RECHNEN MIT BRÜCHEN

textlichen Problem heraus. Hier folgt nun ein zugegebenermaßen etwas künstliches Problem :

Studienmaterial Einführung in das Rechnen mit Resten

Mathematische Grundlagen 2. Termrechnen

Grundlagen der Informatik I. Übung

Rechnen mit natürlichen Zahlen 2

Zahlen 25 = = 0.08

Wie subtrahiert man ungleichnamige Brüche? Wie addiert man gemischte Zahlen? muss man Brüche auf den Hauptnenner bringen?

1 Potenzen und Polynome

Kapitel 19 Partialbruchzerlegung

Ganzrationale Funktionen

Fachrechnen für die Feuerwehr

14 Partialbruchzerlegung

Definition 131 Sei R ein (kommutativer) Ring. Ein Polynom über R in der Variablen x ist eine Funktion p der Form

Grundwissen Mathematik

Bruchrechnen. 2.1 Teilbarkeit von Zahlen. Die Primfaktorzerlegung ist die Zerlegung einer natürlichen Zahl in ein Produkt von Primzahlen.

Zähler mal Zähler, Nenner mal Nenner

Begriffe, die auf eine Multiplikation oder Division hinweisen

1 Modulare Arithmetik

8. Der Fundamentalsatz der Algebra

Kapitel 4: Variable und Term

Mathematik: Mag. Schmid Wolfgang Arbeitsblatt 5 1. Semester ARBEITSBLATT 5 RECHNEN MIT BRÜCHEN. 1. Arten von Brüchen und Definition

A.12 Nullstellen / Gleichungen lösen

Teil 1: Trainingsheft für Klasse 7 und 8 DEMO. Lineare Gleichungen mit einer Variablen. Datei Nr Friedrich W. Buckel. Stand 5.

Münchner Volkshochschule. Planung. Tag 02

Grundrechnungsarten mit Dezimalzahlen

6.2. Ringe und Körper

Leitprogramm Bruchterme

Aufgaben mit zwei Rechenzeichen nebeneinander zum Beispiel: 5 (+ 3) Es gilt:

Wiederholung der Grundlagen

1 Zahlentheorie. 1.1 Kongruenzen

Lineare Gleichungssystem

Diskrete Strukturen. Arbeitsblatt 1: Zahlen (zu Übungsblatt 1)

Wieviel Uhr ist es in hundert Stunden? Eine Antwort durch Modulo- Rechnen

1 Körper. Wir definieren nun, was wir unter einem Körper verstehen, und sehen dann, dass es noch andere, ganz kleine Körper gibt:

ALGEBRA UND MENGENLEHRE

Lösen von Gleichungen

Polynome. Analysis 1 für Informatik

Übersicht über wichtige und häufig benötigte mathematische Operationen

13 Stetige Funktionen

2 Rechentechniken. 2.1 Potenzen und Wurzeln. Übersicht

Punktrechnung geht vor Strichrechnung 3*4 + 5 = = 17. Das Minuszeichen vor einem Produkt ändert nur bei einem Faktor das Vorzeichen.

2 ZAHLEN UND VARIABLE

Ich mache eine saubere, klare Darstellung, schreibe die Aufgabenstellung ab und unterstreiche das Resultat doppelt.

Verstehst du die Sprache der Mathematik? Arbeitsblatt 1

Polynomiale Gleichungen

Demo-Text für Modulo-Rechnungen. und. Restklassen. Höhere Algebra INTERNETBIBLIOTHEK FÜR SCHULMATHEMATIK.

Grundwissen JS 5 Algebra

9. Polynom- und Potenzreihenringe

Transkript:

19 Fingerprinting Martin Dietzfelbinger Fakultät für Informatik und Automatisierung, Technische Universität Ilmenau Anhang: Über Polynome mit Arithmetik modulo m Dieser Abschnitt ergänzt Kapitel 19 Fingerprinting im Taschenbuch der Algorithmen (hrsg. von B. Vöcking et al., Springer-Verlag, Berlin, 2008). Wir wollen hier den Hintergrund des Fingerprinting-Satzes beleuchten, der die zentrale mathematische Aussage dieses Kapitels darstellt. Die Überlegungen führen zu einem vollständigen Beweis des Satzes. Um den Fingerprinting-Satz zu verstehen, muss man sich Polynome modulo m anschauen. Hierfür braucht man etwas Geduld, und man sollte sich vor ein bisschen Rechnerei mit Variablen und Unbekannten nicht fürchten. Einen Fingerabdruck FP m (T, r) für einen Text T = (a 1,..., a n ), der aus Zahlen zwischen 0 und m 1 besteht, hatten wir folgendermaßen berechnet: (a 1 r n + a 2 r n 1 + + a n 1 r + a n r) mod m. (1) Dabei war r eine Zahl zwischen 1 und m 1. Auch r = 0 ist nicht verboten, es ergibt sich nur immer der Wert 0. Wir sehen uns Ausdrücke wie in (1) genauer an. Da man zunächst nicht weiß, welches r eingesetzt wird, schreibt man an die Stelle dieses r ein Symbol x, die Variable. Auf diese Weise landet man bei Polynomen. Polynome modulo m Modulo-m-Polynome zum Beispiel für m = 17 sind Ausdrücke wie Man hat also Potenzen 10x 4 + 14x + 2 oder x 3 + 2x oder x 10 + 7. x 0 = 1, x 1 = x, x 2, x 3, x 4,..., eines Symbols x (der Variablen ). Darunter ist auch die Potenz x 0, die als 1 zu verstehen ist, und als als Faktor weggelassen wird: 2 x 0 = 2.

2 Martin Dietzfelbinger Statt x 1 schreibt man x. Solche Potenzen kann man Zahlen zwischen 0 und m 1 multiplizieren, und die sich ergebenden Ausdrücke kann man addieren. Damit man nicht durcheinanderkommt, ordnet man die Summanden nach Möglichkeit nach (fallenden) x-potenzen, aber man darf auch 5x + 3x 2 + 1 oder 5x+2x 2 +1+x 2 schreiben und betrachtet dies als dasselbe wie 3x 2 +5x+1. Wenn man einen Ausdruck wie 2x 4 3x 3 + 30x 2 + 3 hat, der eigentlich kein Polynom modulo 17 ist, weil negative Faktoren und solche größer als 16 nicht erlaubt sind, kann man alle Zahlen modulo 17 nehmen, und erhält ein ordentliches mod-17-polynom: 2x 4 + 14x 3 + 13x 2 + 3. Folgendes ist die allgemeine Form eines mod-m-polynoms: c n x n + c n 1 x n 1 + + c 2 x 2 + c 1 x + c 0. (2) Dabei sind c n,..., c 0 Zahlen zwischen 0 und m 1. 1 Interessanterweise braucht man sich bei der Speicherung eines Polynoms in einem Computer überhaupt nicht um das x zu kümmern. Man speichert die Zahlen c 0, c 1,..., c n, zum Beispiel in einem Array C[0..n], und hat die ganze Information. Rechnen mit mod-m-polynomen Mit mod-m-polynomen kann man die arithmetischen Operationen Addition, Subtraktion und Multiplikation durchführen. Diese Operationen ergeben sich, indem man die gewöhnlichen Rechenregeln wie Ausklammern und Ausmultiplizieren anwendet, und mit Zahlen immer modulo m rechnet. Addition: Wir addieren zwei mod-m-polynome, indem wir ganz normal rechnen, als ob x eine Unbekannte wäre, und Terme mit derselben Potenz von x zusammenfassen. Dabei werden die Faktoren bei derselben Potenz von x addiert modulo m natürlich. Zum Beispiel (m = 17): (2x 4 + 3x 3 + 10x + 3) + (3x 5 + 14x 3 + 10x + 4) = 3x 5 + 2x 4 + 3x + 7. Der Summand mit x 3 fällt weg, weil (3 + 14) mod 17 = 0 ist. Subtraktion: Das Vorgehen bei der Subtraktion ist ähnlich wie bei der Addition. Beispiel: (10x 3 + 3x + 2) (x 3 + 2x + 13) = 9x 3 + x + 6. 1 Im Vergleich zu (1) haben wir die Nummerierung der Faktoren umgedreht und noch einen Summanden c 0 hinzugefügt.

19 Über Polynome mit Arithmetik modulo m 3 Man subtrahiert die Faktoren bei denselben Potenzen von x und bildet dann die Reste modulo m. Wenn man das Rechnen mit negativen Zahlen vermeiden will, kann man auch im Subtrahenden den Faktor c durch m c ersetzen und das sich ergebende Polynom addieren statt subtrahieren, also im obigen Beispiel: (10x 3 + 3x + 2) + (16x 3 + 15x + 4) = 9x 3 + x + 6. Eine besondere Situation entsteht, wenn man ein Polynom von sich selber subtrahiert: (10x 3 + 3x + 2) (10x 3 + 3x + 2) = (10x 3 + 3x + 2) + (7x 3 + 14x + 15) = 0. Dieses Polynom, bei dem alle Faktoren bei allen Potenzen von x gleich 0 sind, heißt das Nullpolynom. Normalerweise wird man sich wohl nicht mit so einem komischen nichtssagenden Ding beschäftigen, aber wir müssen das Nullpolynom erkennen, wenn es auftaucht. Multiplikation: Bei der Multiplikation zweier Polynome (modulo m) multipliziert man aus und fasst dann Terme mit derselben x-potenz zusammen. Beispiel: (10x 4 + 3x + 2) (x 3 + 2x + 13) = (10x 7 + 3x 5 + 11x 4 ) + (3x 4 + 6x 2 + 5x) + (2x 3 + 4x + 9) (3) = 10x 7 + 3x 5 + 14x 4 + 2x 3 + 6x 2 + 9x + 9. Gibt es auch eine Division für Polynome? Ja, aber das ist etwas komplizierter. Division: Nach dem Ergebnis der Multiplikation aus (3) wird man sicher schreiben (immer modulo m): (10x 7 + 3x 5 + 14x 4 + 2x 3 + 6x 2 + 9x + 9) : (x 3 + 2x + 13) = 10x 4 + 3x + 2. Manchmal jedoch (bzw. ziemlich häufig) geht es nicht auf. Wie bei der Division von Zahlen machen wir dann Division mit Rest. Damit wir nicht plötzlich Brüche bekommen, teilen wir nur durch Polynome, bei denen die höchste Potenz von x den Faktor 1 hat, zum Beispiel ist x 10 + 5 als Divisor zugelassen, aber nicht 10x 2 + 3x + 1. Der Rest bei der Polynomdivision ist wieder ein Polynom, dessen höchste x-potenz kleiner ist als die höchste x-potenz des Divisors. Beispiel: Wir haben (modulo 17) also schreiben wir (2x + 5) (x 2 + 4) + (2x + 4) = 2x 3 + 5x 2 + 10x + 7, (2x 3 + 5x 2 + 10x + 7) : (x 2 + 4) = (x 2 + 4) Rest (2x + 4). (4) Es gibt auch einen Algorithmus zur Division von zwei Polynomen f und g, der immer den Quotienten und den Rest berechnet, aber uns reicht es hier

4 Martin Dietzfelbinger festzustellen, dass man für jedes Polynom f und jedes Polynom g, das bei der höchsten x-potenz den Faktor 1 hat, ein Quotientenpolynom q und ein Restpolynom re finden kann, so dass f = g q + re (5) ist. Dabei ist die höchste x-potenz im Rest re niedriger als die höchste x- Potenz in g. Zum Beispiel ist in (4) die höchste x-potenz im Rest x = x 1 niedriger als die höchste x-potenz im Divisor (x 2 ). Für unsere Fingerabdruck-Situation benötigen wir nur einen extrem einfachen Fall: Division durch Polynome x+s, wo s eine Zahl ist. Das sieht dann zum Beispiel so aus (s = 3): 3x 4 + 13x 3 + 5x 2 + 2x + 6 = (3x 3 + 4x 2 + 10x + 6) (x + 3) + 5, wie man mit etwas Geduld nachrechnet; das heißt: (3x 4 + 13x 3 + 5x 2 + 2x + 6) : (x + 3) = 3x 3 + 4x 2 + 10x + 6 Rest 5. Allgemein ist es klar, dass bei der Division mit Rest durch ein Polynom x + s der Rest einfach eine Zahl ist. 2 Einsetzen in Polynome, Nullstellen, Abspalten von Linearfaktoren Bis jetzt haben wir mit Polynomen gerechnet. Eine weitere sehr wichtige Operation bei Polynomen ist das Einsetzen. Das heißt, dass man an der Stelle der Variablen x eine Zahl r zwischen 0 und m 1 setzt und ausrechnet, was herauskommt. Wenn wir zum Beispiel im Polynom f = 3x 4 + 13x 3 + 5x 2 + 2x + 1 für x die Zahl 2 einsetzen, bekommen wir f(2) = (3 2 4 + 13 2 3 + 5 2 2 + 2 2 + 1) mod 17 = 7, wenn wir für x die Zahl 14 einsetzen, bekommen wir f(14) = (3 14 4 + 13 14 3 + 5 14 2 + 2 14 + 1) mod 17 = 0, und so weiter. Wenn f(r) = 0 ist, dann nennen wir r eine Nullstelle von f. Also ist zum Beispiel r = 14 eine Nullstelle von f = 3x 4 + 13x 3 + 5x 2 + 2x + 1. Wir teilen nun f durch x 14 = x + 3 (modulo 17 gesehen!) und bemerken: 2 Wer Lust hat, kann versuchen, einen Algorithmus zu finden, mit dem man ein beliebiges Polynom c nx n + + c 1x + c 0 durch ein Polynom x + s teilt.

19 Über Polynome mit Arithmetik modulo m 5 (3x 4 + 13x 3 + 5x 2 + 2x + 1) : (x + 3) = 3x 3 + 4x 2 + 10x + 6. Die Division geht auf! Wir stellen fest, dass dieser Effekt immer eintritt. Weil diese Erkenntnis so wichtig ist, geben wir auch einen Beweis an. Satz 1 Wir betrachten Polynome modulo m, für eine Zahl m 2. Es gilt: Wenn r eine Nullstelle des Polynoms f ist, dann ergibt die Division von f durch x r ( = x + (m r)) den Rest 0. Das heißt: Wenn r eine Nullstelle des Polynoms f ist, kann man f = (x r) q schreiben, für ein (Quotienten-)Polynom q. Beweis: Wir können auf jeden Fall f mit Rest durch x r dividieren, also schreiben: f = q (x r) + re. Dabei ist re eine Zahl zwischen 0 und m 1 und q ein Polynom. Jetzt setzen wir für x auf beiden Seiten r ein. Das liefert (weil r Nullstelle von f ist): 0 = f(r) = q(r) (r r) + re = re. Weil der Rest re gleich 0 ist, ist f = q (x r), und Satz 1 ist bewiesen. Man kann Satz 1 auch so beschreiben: Wenn r eine Nullstelle von f ist, dann kann man von f den Faktor (x r) abspalten. Der nächste Satz sagt, dass man dies nacheinander für mehrere verschiedene Nullstellen eines Polynoms machen kann. Der Beweis dieses Satzes ist ein bisschen knifflig; hier spielt die Voraussetzung, dass m eine Primzahl ist, die entscheidende Rolle. Satz 2 Wir betrachten Polynome modulo m, für eine Primzahl m 2. Wenn k 1 ist und die verschiedenen Zahlen r 1,..., r k zwischen 0 und m 1 liegen und alles Nullstellen von f sind, dann kann man schreiben: wobei h ein passendes Polynom ist. f = (x r 1 ) (x r 2 ) (x r k ) h, Beweis: Wir sehen uns zuerst den Fall an, wo f zwei Nullstellen r und t hat. Nach Satz 1 schreiben wir f = q (x r). Weil t eine andere Nullstelle von f ist, haben wir (modulo m): 0 = f(t) = q(t) (t r). Das heißt: Die Zahl q(t) (t r), mit Rechenoperationen in den ganzen Zahlen (ohne Restbildung modulo m berechnet), ist durch m teilbar. Weil t und r verschiedene Zahlen zwischen 0 und m 1 sind, ist t r nicht durch m teilbar. Es ist nun eine bekannte Grundeigenschaft von Primzahlen m, dass aus

6 Martin Dietzfelbinger m teilt das Produkt a b ohne Rest folgt, dass m Teiler von a oder von b (oder auch von beiden) ist 3. Hier folgern wir: m teilt q(t) (in den ganzen Zahlen berechnet). Das heißt: modulo m gesehen ist q(t) = 0. Daher ist t Nullstelle des Quotientenpolynoms q. Wir wenden Satz 1 noch einmal an und schreiben q = p (x t) für ein passendes Polynom p. Damit ist f = p (x t) (x r), wie gewünscht. Beispiel: Für m = 17 und gilt, dass f(2) = f(16) = 0 ist, und dass f = x 4 + 16x 3 + x 2 + 14x + 11 (6) f = (x 2) (x 16) (x 2 + 3) = (x + 15) (x + 1) (x 2 + 3). Wenn man mehr als zwei Nullstellen hat, kann man nach dem gleichen Muster weiter die entsprechenden Faktoren herausziehen, und bekommt schließlich die gewünschte Darstellung f = (x r 1 ) (x r 2 ) (x r k ) h. Nun können wir die für unser Ziel zentrale Aussage formulieren und beweisen. Satz 3 Wir betrachten Polynome modulo m, für eine Primzahl m 2. Wenn f ein Polynom ist, das nicht das Nullpolynom ist, so dass x n die höchste in f (mit Faktor 0) vorkommende Potenz von x ist, dann hat f höchstens n verschiedene Nullstellen. Beispiele: (Immer modulo 17.) Das Polynom 2x + 11 hat eine Nullstelle (nämlich 3), das Polynom 2x 2 + 7x + 12 hat zwei Nullstellen (nämlich 2 und 3), das Polynom x 4 + 16x 3 + x 2 + 14x + 11 aus (6) hat keinesfalls mehr als vier Nullstellen (tatsächlich sind es nur zwei, nämlich 2 und 16). Beweis von Satz 3: Wir nehmen irgendwelche k verschiedenen Nullstellen von f, und nennen sie r 1,..., r k. Nach Satz 2 kann man schreiben: f = (x r 1 ) (x r 2 ) (x r k ) h. (7) Dabei kann h nicht das Nullpolynom sein, sonst wäre f selber das Nullpolynom und x n könnte keinen Faktor haben, der nicht 0 ist. Daher kommt in h eine höchste Potenz von x mit einem Faktor vor, der nicht 0 ist, zum Beispiel dx l, d 0, l 0. Dann sieht man, dass beim Ausmultiplizieren in (7) die Potenz x k+l entsteht, ebenfalls mit dem Faktor d, und dass dies die höchste Potenz von x ist, die es in dem Produkt gibt. Also ist die höchste Potenz von x, die in f vorkommt, x k+l. Weil x n die höchste solche Potenz ist, ist n = k + l k. Also hat f keinesfalls mehr als n Nullstellen. 3 Für Nicht-Primzahlen m muss das nicht so sein: Die Zahl 6 teilt das Produkt 4 9 = 36, aber 6 teilt weder 4 noch 9.

Polynome und Fingerabdrücke 19 Über Polynome mit Arithmetik modulo m 7 Nach diesen länglichen Vorbereitungen können wir den Fingerprinting-Satz aus Kapitel 19 des Buches beweisen. Fingerprinting-Satz Wenn T A und T B verschiedene Texte (Zahlenfolgen) der Länge n sind, und wenn m eine Primzahl ist, die größer ist als die größte Zahl in T A und T B, dann können von den m Zahlenpaaren FP m (T A, r), FP m (T B, r), r = 0, 1,..., m 1, höchstens n viele aus gleichen Zahlen bestehen. Beweis: Sehen wir uns zwei gleich lange Texte (also Zahlenfolgen) T A = (a 1,..., a n ) und T B = (b 1,..., b n ) an. Dabei sollen die Zahlen a 1,..., a n, b 1,..., b n zwischen 0 und m 1 liegen. Zu diesen Texten bilden wir zwei Polynome: f A = a 1 x n + + a n x f B = b 1 x n + + b n x, und und dann noch das Polynom g, das wir durch Subtrahieren modulo m bekommen: g = f A f B = (a 1 b 1 ) x n + + (a n b n ) x. Wenn nun T A und T B verschiedene Text sind, dann ist (auch modulo m gesehen) mindestens einer der Faktoren (a i b i ) in g nicht 0, also ist g ein Polynom, das nicht das Nullpolynom ist, und bei dem keine höhere x-potenz als x n vorkommt. (Aber natürlich muss nicht x n vorkommen, weil ja a 1 = b 1 sein könnte.) Nun ist offenbar FP(T A, r) = f A (r) und FP(T B, r) = f B (r). Wenn also die Fingerabdrücke FP(T A, r)und FP(T B, r) gleich sind, dann ist f A (r) = f B (r), also g(r) = 0 das heißt, dass r eine Nullstelle von g ist. Nach Satz 3 hat g keinesfalls mehr als n Nullstellen. Also gibt es nicht mehr als n Zahlen r mit FP(T A, r) = FP(T B, r), und der Fingerprinting-Satz ist bewiesen. Stand: 14.01.2008