Wstydzę się zadać tak proste pytanie. Mój semestr nie zaczyna się jeszcze przez dwa tygodnie, więc nie mogę poprosić profesora, a napięcie mnie zabije.
W x / y wyniki składają się z części całkowitej i części ułamkowej. Jeśli pomnożymy część ułamkową przez dzielnik, otrzymamy resztę. A x = część całkowita y + reszta (tj. Część ułamkowa y). W tym przypadku część całkowita to 0, a reszta to 2.
mshsayem
76
cieszę się, że miałeś odwagę zadać to pytanie.
utorować
modulo jest bardzo daleko, aby być równe podzielenie dwóch liczb.
holex
Odpowiedzi:
151
Mod oznacza po prostu, że pobierasz resztę po wykonaniu podziału. Ponieważ 4 mieści się w 2 zero razy, otrzymujesz resztę 2.
O wiele łatwiejsze, jeśli używasz bananów i grupy ludzi.
Powiedzmy, że masz 1 banana i grupę 6 osób, tak byś wyraził: 1 mod 6/ 1 % 6/ 1 modulo 6.
Potrzebujesz 6 bananów na każdą osobę w grupie, aby być dobrze odżywionym i szczęśliwym.
Więc jeśli masz 1 banana i chcesz podzielić się nim z 6 osobami, ale możesz udostępnić tylko wtedy, gdy masz 1 banana na każdego członka grupy, czyli 6 osób, wtedy będziesz mieć 1 banana (pozostały, nie udostępniony nikomu w grupa), to samo dotyczy 2 bananów. Następnie będziesz miał 2 banany jako resztę (nic nie jest dzielone).
Ale kiedy zdobędziesz 6 bananów, powinieneś być szczęśliwy, ponieważ wtedy jest 1 banan na każdego członka w grupie 6 osób, a reszta to 0 lub brak bananów, gdy podzieliłeś wszystkie 6 bananów na 6 osób.
Teraz, dla 7 bananów i 6 osób w grupie, będziesz mieć 7 mod 6 = 1 , ponieważ dałeś 6 osobom po 1 bananie, a 1 banan to reszta.
Dla 12 mod 6lub 12 bananów podzielonych na 6 osób, każdy z nich będzie miał dwa banany, a reszta to 0.
Ktoś skontaktował się ze mną i poprosił o dokładniejsze wyjaśnienie mojej odpowiedzi w komentarzu do pytania. Oto, co odpowiedziałem tej osobie na wypadek, gdyby mogła pomóc komukolwiek innemu:
Operacja modulo daje ci pozostałą część euklidesowego podziału (który działa tylko z liczbami całkowitymi, a nie rzeczywistymi). Jeśli masz A takie, że A = B * C + D (z D <B), to iloraz euklidesowego dzielenia A przez B wynosi C, a reszta to D. Jeśli podzielisz 2 przez 4, iloraz wynosi 0, a reszta to 2.
Załóżmy, że masz obiekty typu A (których nie możesz ciąć). I chcesz rozdzielić taką samą ilość tych obiektów wśród osób B. Dopóki masz więcej niż B obiektów, każdemu z nich dajesz 1 i powtarzasz. Kiedy pozostało mniej niż B obiektów, zatrzymujesz się i zatrzymujesz pozostałe. Ilorazem jest liczba powtórzeń operacji, nazwijmy tę liczbę C. Pozostała liczba obiektów, które trzymasz na końcu, nazwijmy to D.
Jeśli masz 2 obiekty i 4 osoby. Masz już mniej niż 4 obiekty. Więc każda osoba dostaje 0 obiektów, a ty zatrzymujesz 2.
Operator modulo oblicza pozostałą część z dzielenia dwóch operandów całkowitych. Oto kilka przykładów:
23 % 10 evaluates to 3 (because 23/10 is 2 with a remainder of 3)
50 % 50 evaluates to 0 (50/50 is 1 with a remainder of 0)
9 % 100 evaluates to 9 (9/100 is 0 with a remainder of 9)
Modulo to reszta wyrażenia dzielenia matematycznego, wyrażona jako liczba całkowita.
Więc powiedzmy, że masz piksel na ekranie w pozycji 90, gdzie ekran ma szerokość 100 pikseli i dodajesz 20, zawinie się do pozycji 10. Dlaczego ... ponieważ 90 + 20 = 110, a zatem 110% 100 = 10.
Aby to zrozumieć, uważam, że modulo jest reprezentacją liczby całkowitej ułamkowej. Ponadto, jeśli wykonasz wyrażenie wstecz i przetworzysz resztę jako liczbę ułamkową, a następnie dodasz ją do dzielnika, da ci to oryginalną odpowiedź.
Przykłady:
100
(A) --- = 14 mod 2
7
123
(B) --- = 8 mod 3
15
3
(C) --- = 0 mod 3
4
MOD jest operatorem reszty. Dlatego 2 mod 4 daje 2 jako resztę. 4 * 0 = 0, a następnie 2-0 = 2. Aby było to bardziej zrozumiałe, spróbuj zrobić to samo z 6 mod 4 lub 8 mod 3.
Możemy użyć tej małej formuły, którą wymyśliłem po zastanowieniu, może jest już zdefiniowana w miejscu, którego nie znam, ale działa dla mnie i jest naprawdę przydatna.
A mod B = C gdzie C jest odpowiedzią
K * B - A = |C| gdzie K to ile razy B mieści się w A.
Aby wizualnie o tym pomyśleć, wyobraź sobie tarczę zegara, która w twoim konkretnym przykładzie wskazuje tylko 4 zamiast 12. Jeśli zaczniesz od 4 na zegarze (co jest jak rozpoczęcie od zera) i obejdziesz go zgodnie z ruchem wskazówek zegara 2 "godziny", wylądujesz na 2, tak jak poruszanie się po nim zgodnie z ruchem wskazówek zegara przez 6 "godzin" również wylądowałoby na 2 (6 mod 4 == 2 tak jak 2 mod 4 == 2).
@ do3boy: idea tarczy zegara jest bardzo prostą i łatwą metodą dokładnego opisania faktu modulo. poza tym, że łatwiej byłoby skorzystać z formatu 24h do wyjaśnienia, zamiast modyfikować liczbę dostępnych pozycji.
Atmocreations
0
To może być dobry moment, aby wspomnieć o funkcji modr (). Zwraca zarówno całość, jak i pozostałe części podziału.
print("\n 17 // 3 =",17//3," # Does the same thing as int(17/3)")
print(" 17 % 3 =",17%3," # Modulo division gives the remainder.")
whole, remain = divmod(17,3)
print(" divmod(17,3) returns ->",divmod(17,3),end="")
print(" because 3 goes into 17,",whole,"times with a remainder of",remain,end=".\n\n")
2 = 0 * 4 + 2
.Odpowiedzi:
Mod oznacza po prostu, że pobierasz resztę po wykonaniu podziału. Ponieważ 4 mieści się w 2 zero razy, otrzymujesz resztę 2.
źródło
Modulo to reszta, a nie dzielenie.
Znak
%
jest często używany zamiast słowa jako operatora modulomod
.Na
x % 4
, masz w poniższej tabeli (dla 1-10)źródło
Operatorem reszty jest modulo (mod,%).
źródło
O wiele łatwiejsze, jeśli używasz bananów i grupy ludzi.
Powiedzmy, że masz 1 banana i grupę 6 osób, tak byś wyraził:
1 mod 6
/1 % 6
/1 modulo 6
.Potrzebujesz 6 bananów na każdą osobę w grupie, aby być dobrze odżywionym i szczęśliwym.
Więc jeśli masz 1 banana i chcesz podzielić się nim z 6 osobami, ale możesz udostępnić tylko wtedy, gdy masz 1 banana na każdego członka grupy, czyli 6 osób, wtedy będziesz mieć 1 banana (pozostały, nie udostępniony nikomu w grupa), to samo dotyczy 2 bananów. Następnie będziesz miał 2 banany jako resztę (nic nie jest dzielone).
Ale kiedy zdobędziesz 6 bananów, powinieneś być szczęśliwy, ponieważ wtedy jest 1 banan na każdego członka w grupie 6 osób, a reszta to 0 lub brak bananów, gdy podzieliłeś wszystkie 6 bananów na 6 osób.
Teraz, dla 7 bananów i 6 osób w grupie, będziesz mieć
7 mod 6 = 1
, ponieważ dałeś 6 osobom po 1 bananie, a 1 banan to reszta.Dla
12 mod 6
lub 12 bananów podzielonych na 6 osób, każdy z nich będzie miał dwa banany, a reszta to 0.źródło
2/4 = 0 z resztą 2
źródło
Ja też byłem zdezorientowany zaledwie kilka minut temu. Potem zrobiłem podział odręcznie na kartce papieru i to miało sens:
O ile komputer ma rozwiązać ten problem. Komputer zatrzymuje się w tym miejscu i zwraca 2, co ma sens, ponieważ o to prosi "%" (mod).
Zostaliśmy przeszkoleni, aby wprowadzać ułamki dziesiętne i kontynuować pracę, dlatego na początku może to być sprzeczne z intuicją.
źródło
Ktoś skontaktował się ze mną i poprosił o dokładniejsze wyjaśnienie mojej odpowiedzi w komentarzu do pytania. Oto, co odpowiedziałem tej osobie na wypadek, gdyby mogła pomóc komukolwiek innemu:
źródło
Operator modulo oblicza pozostałą część z dzielenia dwóch operandów całkowitych. Oto kilka przykładów:
źródło
mod oznacza rozwiertak po podzieleniu przez. Zatem 2 podzielone przez 4 daje 0, a pozostało 2. Dlatego 2 mod 4 to 2.
źródło
Modulo to reszta wyrażenia dzielenia matematycznego, wyrażona jako liczba całkowita.
Więc powiedzmy, że masz piksel na ekranie w pozycji 90, gdzie ekran ma szerokość 100 pikseli i dodajesz 20, zawinie się do pozycji 10. Dlaczego ... ponieważ 90 + 20 = 110, a zatem 110% 100 = 10.
Aby to zrozumieć, uważam, że modulo jest reprezentacją liczby całkowitej ułamkowej. Ponadto, jeśli wykonasz wyrażenie wstecz i przetworzysz resztę jako liczbę ułamkową, a następnie dodasz ją do dzielnika, da ci to oryginalną odpowiedź.
Przykłady:
Odwrócona konstrukcja, aby:
źródło
Kiedy dzielisz 2 przez 4, otrzymujesz 0 z 2 pozostałymi lub pozostałymi. Modulo to po prostu reszta po podzieleniu liczby.
źródło
Myślę, że jesteś zdezorientowany, jak odczytuje się równanie modulo.
Kiedy piszemy równanie dzielenia, takie jak
2/4
dzielenie 2 przez 4.Kiedy zostanie zapisane równanie modulo, na przykład
2 % 4
dzielimy2 by 4
(pomyśl 2 przez 4) i zwracamy resztę.źródło
MOD jest operatorem reszty. Dlatego 2 mod 4 daje 2 jako resztę. 4 * 0 = 0, a następnie 2-0 = 2. Aby było to bardziej zrozumiałe, spróbuj zrobić to samo z 6 mod 4 lub 8 mod 3.
źródło
To jest algorytm Euclid.
na przykład
a mod b = k * b + c => a mod b = c, gdzie k to liczba całkowita, a c to odpowiedź
4 mod 2 = 2 * 2 + 0 => 4 mod 2 = 0
27 mod 5 = 5 * 5 + 2 => 27 mod 5 = 2
więc twoja odpowiedź brzmi
2 mod 4 = 0 * 4 + 2 => 2 mod 4 = 2
źródło
Dla:
2 mod 4
Możemy użyć tej małej formuły, którą wymyśliłem po zastanowieniu, może jest już zdefiniowana w miejscu, którego nie znam, ale działa dla mnie i jest naprawdę przydatna.
A mod B = C
gdzie C jest odpowiedziąK * B - A = |C|
gdzie K to ile razy B mieści się w A.2 mod 4
byłoby:0 * 4 - 2 = |C|
C = |-2| => 2
Mam nadzieję, że to działa dla Ciebie :)
źródło
Operacja mod działa z przypomnieniem.
Nazywa się to arytmetyką modularną.
źródło
Aby odpowiedzieć na modulo
x % y
, zadajesz dwa pytania:A- Ile razy
y
wchodzix
bez reszty? Dla 2% 4 to 0.B- Ile musisz dodać, aby wrócić do
x
? Aby dostać się od 0 z powrotem do 2, potrzebujesz 2-0, czyli 2.Można je podsumować jednym pytaniem, takim jak to: Ile trzeba będzie dodać do całkowitego wyniku dzielenia
x
przez byy
, aby wrócić dox
?Przez liczbę całkowitą rozumie się tylko liczby całkowite, a nie jakiekolwiek ułamki.
Reszta z dzielenia ułamkowego (np. 283849) nie jest interesująca w modulo, ponieważ modulo zajmuje się tylko liczbami całkowitymi.
źródło
Aby wizualnie o tym pomyśleć, wyobraź sobie tarczę zegara, która w twoim konkretnym przykładzie wskazuje tylko 4 zamiast 12. Jeśli zaczniesz od 4 na zegarze (co jest jak rozpoczęcie od zera) i obejdziesz go zgodnie z ruchem wskazówek zegara 2 "godziny", wylądujesz na 2, tak jak poruszanie się po nim zgodnie z ruchem wskazówek zegara przez 6 "godzin" również wylądowałoby na 2 (6 mod 4 == 2 tak jak 2 mod 4 == 2).
źródło
To może być dobry moment, aby wspomnieć o funkcji modr (). Zwraca zarówno całość, jak i pozostałe części podziału.
źródło