Gibt es in Rust eine Modulfunktion (nicht Rest!)?
Soweit ich das beurteilen kann, gibt es keine modulare Rechenfunktion .
Dies geschieht auch in C, wo häufig die von Ihnen erwähnte Problemumgehung verwendet wird : ((a % b) + b) % b
.
In C, C ++, D, C #, F # und Java %
ist tatsächlich der Rest. In Perl ist Python oder Ruby %
der Modul.
Sprachentwickler gehen nicht immer den "richtigen mathematischen Weg", daher scheinen Computersprachen aus der strengen Sicht des Mathematikers seltsam zu sein. Die Sache ist, dass sowohl der Modul als auch der Rest für verschiedene Verwendungszwecke korrekt sind.
Der Modul ist mathematischer, wenn Sie möchten, während der Rest (in der C-Familie) mit der gemeinsamen Ganzzahldivision übereinstimmt, die Folgendes erfüllt : (a / b) * b + a % b = a
; Dies wird aus dem alten Fortran übernommen. Damit%
heißt der Rest besser, und ich nehme an, Rust stimmt mit C überein.
Sie sind nicht der Erste, der dies bemerkt:
modulus
anstelle vonmodulo
(was häufiger AFAICS ist) zu verwenden.