Dadas três matrizes queremos testar se . Suponha que as operações aritméticas e tenham tempo constante quando aplicadas a números de .
Como posso declarar um algoritmo com erro unilateral que é executado no tempo e provar sua correção?
Eu tentei agora por várias horas, mas não consigo acertar. Eu acho que tenho que usar o fato de que para qualquer no máximo metade dos vetores satisfaz , onde indica o produto escalar .
Respostas:
Se , então para todos os vetores . Gere vetores aleatoriamente e verifique. Isso é conhecido como algoritmo de Freivalds . Wikipedia tem detalhes.AB=C A(Bx)=Cx x
fonte