Gegeben drei Matrizen wollen wir testen , ob AB \ neq C . Angenommen, die arithmetischen Operationen + und - benötigen eine konstante Zeit, wenn sie auf Zahlen aus \ mathbb {Z} angewendet werden .
Wie kann ich einen Algorithmus mit einseitigem Fehler angeben, der in wird, und seine Richtigkeit beweisen?
Ich habe es jetzt mehrere Stunden lang versucht, aber ich kann es nicht richtig machen. Ich denke, ich muss die Tatsache nutzen, dass für jedes höchstens die Hälfte der Vektoren s \ in S = \ left \ {1, 0 \ right \} ^ n x \ cdot s erfüllt , wobei das Skalarprodukt .
algorithms
probabilistic-algorithms
matrices
linear-algebra
Warteschlange
quelle
quelle
Antworten:
WennAB=C , dann ist A(Bx)=Cx für alle Vektoren x . Generieren Sie zufällig Vektoren und überprüfen Sie diese. Dies ist als Freivalds-Algorithmus bekannt . Wikipedia hat Details.
quelle