Es existiert ein binary GCD algorithm zum Finden des größten gemeinsamen Teilers einer Zahl. Im Allgemeinen kann die GCD auf XGCD erweitert werden, was dabei helfen kann, eine multiplikative Inverse in einem Feld zu finden.Binär-XGCD für Polynome
Ich arbeite mit Binärzahlen, die ein Polynom darstellen. Zum Beispiel repräsentiert die Bitfolge 1101
x^3 + x^2 + 1. Ich muss das modulare Inverse eines zufälligen Polynoms modulo x^p - 1 für einige große bekannte prime p berechnen. Jedoch muss ich es in konstanter Zeit machen (was bedeutet, dass die Laufzeit nicht von der Zahl abhängen sollte, die ich invertiere). Ich weiß, wie man die binäre GCD konstante Zeit macht und ich weiß, wie man die XGCD für Polynome implementiert, um multiplikative Inverse zu berechnen. Was ich nicht weiß ist, ob es ein binäres GCD-Äquivalent (mit entsprechendem XGCD) für (binäre) Polynome gibt?
Das ist cool, der Faktor _x_ ist der gleiche wie der Wert 2 in der binären Darstellung, was bedeutet, dass Multiplikation/Division durch _x_ nur Bitshifting ist, genauso wie es ist, wenn Sie mit 2 multiplizieren/dividieren. "gerade" kann bestimmt werden, indem nur das letzte Bit geprüft wird. Außerdem ist die Addition gleich der Subtraktion (xor) und hat keine Überträge. Alles in allem würde ich sagen, dass dies ein schneller Algorithmus sein wird. – Sebastian