Chinesischer Restsatz
Mit dem Chinesischen Restsatz lässt sich ein Gleichungssystem aus Kongruenzen der folgenden Form lösen:
wobei der ggT zwischen den immer gleich sein muss.
Eine Python Implementierung sieht so aus:
def crt(a, m):
M = np.prod(m)
x = 0
for ai, mi in zip(a, m):
Mi = M / mi
Ni = invmod(Mi, mi)
x += ai * Mi * Ni
return x % M
Für die Funktion invmod
siehe Modulo Invertierbarkeit.
Skript Seite 34, für