webentwicklung-frage-antwort-db.com.de

Wie funktioniert eine Modulo-Operation, wenn die erste Zahl kleiner ist?

Ich verwirre die Modulo-Operation in Python und verstehe, dass sie den Rest zurückwerfen wird.

Was aber, wenn die erste Zahl kleiner als die zweite ist?

zum Beispiel

2% 5 die Antwort ist 2.

Wie funktioniert das?

2/5 = 0,4

35
Pete

Hilft das

22  % 5 = 2 
17  % 5 = 2 
12  % 5 = 2 
7   % 5 = 2 
2   % 5 = 2

Vielleicht das

22 / 5 = 4 + 2/5
17 / 5 = 3 + 2/5
12 / 5 = 2 + 2/5
7  / 5 = 1 + 2/5
2  / 5 = 0 + 2/5
42
jrhicks

fünf geht in 2 null mal. 

5 * 0 = 0

2-0 = 2.

die antwort ist 2

26
MedicineMan

2 geteilt durch 5 (ganzzahlige Division) ist 0 mit einem Rest von 2.

15
qpingu

2 = 0 x 5 + 2

11
Pascal Thivent

zum Beispiel 2% 5 ist die Antwort 2. Wie funktioniert das? 2/5 = 0,4!

Modulo erzeugt inhärent ein ganzzahliges Ergebnis, wohingegen Division eine Ganzzahl- oder Fließkomma-Operation sein kann. Ihre Beobachtung, dass 2/5 gleich 0,4 ist, bedeutet, dass Sie in Bezug auf Fließkommazahlen denken. In diesem Fall ist die .4 selbst is der Rest, anders ausgedrückt. Der integrale Anteil von "0,4" ist "0" und der Rest ist "0,4". Der Rest einer Ganzzahl-Division-Operation ist genau das gleiche wie der Bruchteil (oder umgangssprachlich "Dezimal") einer Gleitkomma-Operation, nur anders ausgedrückt.

Der Bruchteil Ihres Beispiels, 0,4, kann als 0,4 oder als 2/5 (zwei Fünftel) ausgedrückt werden; So oder so ist es dasselbe. Wenn es als 2/5 geschrieben wird, ist der Nenner (Divisor) des Bruchteils derselbe wie der Nenner (Divisor) des ursprünglichen Problems, während der Zähler (Dividend) des Bruchteils derjenige ist, der als "rest" in ganzzahliger Division. Wie auch immer, der Bruchteil des Quotienten und der Rest repräsentieren dasselbe (der Teil des Dividende, die vom Divisor nicht gleichmäßig geteilt werden kann), nur anders ausgedrückt.

9
phonetagger

Es ist wirklich leicht, die Ergebnisse von Modulo herauszufinden, wenn die erste Zahl kleiner ist. Das Ergebnis ist immer gleich der ersten (kleineren) Zahl

3 % 5 = 3
5 % 10 = 5
78 % 112 = 78

Probieren Sie es selbst aus.

6
Doug Steinberg

Sie können sich 2/5 = 0 vorstellen, mit einem Rest von 2 von 5.

5
akf

Wenn die erste Zahl kleiner ist, lautet die Antwort erneut diese erste Zahl. 

Da die zweite Zahl größer ist, geht sie in die erste Zahl Null und der Rest ist die Gesamtheit dieser ersten Zahl. 

2
Darryl Calder

Der Zähler im Rest ist Ihre modulo Antwort, egal was , ob der Zähler größer oder kleiner als der Nenner ist.

12 % 5 = 2 , because 12 / 5 = 2 and **2**/5

9 % 2 = 1 , because 9 / 2 = 4 and **1**/2

Das kann sinnvoller sein.

5 % 89 = 5 , because 5 / 89 = 0 and **5**/89

5 % 365 = 5 , because 5 / 365 = 0 and **5**/365

5 % 6 = 5 , because 5 / 6 = 0 and **5**/6
2
Emerson

Zu beachten ist auch, dass, wenn die erste Zahl (a) eine negative Zahl ist, die Antwort immer die Differenz der zweiten Zahl zur ersten Zahl (n-a) ist.

Beispiel: a% n

  1. -5% 7 = 2 ---> 7 - 5 = 2
  2. 4% -9 = -5 ---> 9 - 4 = -5 (folgen Sie dem Vorzeichen der größeren Zahl)

Wenn beide Zahlen negativ waren, ist die Antwort immer eine negative Zahl, die der kleineren Zahl entspricht.

  1. -5% -7 = -5
  2. -4% -9 = -4
2
aldennis

a% b = a wenn a << b

1
user180100
a%b = a/b=c,
      c*b=d,
      a-d=modulo;

Dies ist es, was Python macht, während Mod zwei Zahlen oder so denke ich. Der Modulo zwischen einer kleineren und einer größeren Zahl ist immer die kleinere Zahl.

1
Josh

Es gibt keine Zahl, die 5 multipliziert, um 2 näher zu kommen.

Mit anderen Worten muss x0 sein, um die Gleichung zu erfüllen: 5*x + r = 2.

1
dud3

MOD funktioniert nicht mit Dezimalzahlen ... MOD (A, B) u Sie wollen das Ergebnis wo A

1
abhishek

Um die modulare Arithmetik zu verstehen, schlage ich vor, dass Sie zur Khan Academy gehen und ihren Beitrag darüber lesen. Sie haben auch interaktive Übungsfragen auf derselben Seite. Hier ist der Link: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-ismodular-arithmetic

Zusamenfassend: 

Verwenden Sie die folgende Gleichung: 

A = BQ + R

A ist die dividende

B ist der divisor

Q ist der Quotient

R ist der rest und ist das Ergebnis für ein Modulo.

Q = (A/B)

Beachten Sie, dass Q immer die kleinste ganzzahlige Ganzzahl ist. Wenn also Q = 0,2, dann ist Q = 0,0. Wenn Q = -1,2, dann ist Q = -2,0. 


Für deine Frage: 

Q = (2/5) = 0,4, also Q = 0.

Stecken Sie das in 'A = BQ + R':

2 = 5 * 0 + R

Also ist R = 2.


Hoffe das hilft. Wie gesagt, können Sie mehr über die Khan Academy lesen. Hier ist der Link: https://www.khanacademy.org/computing/computer-science/cryptography/modarithmetic/a/what-ismodular-arithmetic

0
H. Almidan