ทำไม 2 mod 4 = 2


150

ฉันอายที่จะถามคำถามง่าย ๆ แบบนี้ เทอมของฉันไม่ได้เริ่มเป็นเวลาอีกสองสัปดาห์ดังนั้นฉันจึงไม่สามารถถามอาจารย์ได้และผู้ต้องสงสัยจะฆ่าฉัน

ทำไม 2 mod 4 = 2


45
2 = 0 * 4 + 2เพราะ
p4bl0


1
ในผลลัพธ์ x / y ประกอบด้วยส่วนจำนวนเต็มและส่วนเศษส่วน หากคุณคูณส่วนเศษส่วนกับตัวหารคุณจะได้ส่วนที่เหลือ และ x = จำนวนเต็มส่วนy + ส่วนที่เหลือ (เช่นเศษส่วนส่วน y) ในกรณีนี้เป็นส่วนหนึ่งจำนวนเต็มคือ 0 และส่วนที่เหลือเป็น 2
mshsayem

76
ดีใจที่คุณมีความกล้าที่จะถามคำถามนั้น
ปู

moduloมากไกลจะเท่ากับหารสองหมายเลข
holex

คำตอบ:


151

Mod เพียงหมายความว่าคุณใช้เวลาที่เหลือหลังจากทำการแบ่ง ตั้งแต่ 4 ไปเป็น 2 ศูนย์คุณจะได้ส่วนที่เหลืออีก 2


95

โมดูโล่เป็นส่วนที่เหลือไม่ใช่การหาร

2 / 4 = 0R2
2 % 4 = 2

เข้าสู่ระบบมักจะใช้สำหรับผู้ประกอบการโมดูโลในแทนคำว่า%mod

สำหรับx % 4คุณจะได้รับตารางต่อไปนี้ (สำหรับ 1-10)

 x x%4
------
 1  1
 2  2
 3  3
 4  0
 5  1
 6  2
 7  3
 8  0
 9  1
10  2


13

ง่ายกว่าถ้าคุณใช้กล้วยและกลุ่มคน

สมมติว่าคุณมีกล้วย 1 ลูกและกลุ่มละ 6 คนคุณจะแสดง: 1 mod 6/ 1 % 6/1 modulo 6 /

คุณต้องการกล้วย 6 ลูกเพื่อให้แต่ละคนในกลุ่มได้รับอาหารที่ดีและมีความสุข

ดังนั้นถ้าคุณมีกล้วย 1 ลูกและต้องการแบ่งปันกับ 6 คน แต่คุณสามารถแบ่งปันได้ถ้าคุณมีกล้วย 1 ลูกต่อสมาชิกกลุ่มแต่ละกลุ่มนั่นคือ 6 คนคุณจะได้กล้วย 1 ลูก (ที่เหลือไม่ได้แชร์กับใครใน กลุ่ม) เช่นเดียวกับกล้วย 2 ใบ จากนั้นคุณจะมีกล้วย 2 ลูกที่เหลือ (ไม่มีการแบ่งปัน)

แต่เมื่อคุณได้รับ 6 กล้วยคุณควรจะมีความสุขเพราะมีกล้วย 1 ตัวสำหรับสมาชิกแต่ละคนในกลุ่ม 6 คนและส่วนที่เหลือคือ 0 หรือไม่มีกล้วยเหลืออยู่เมื่อคุณแชร์กล้วยทั้ง 6 คนใน 6 คน

ทีนี้สำหรับกล้วย 7 ลูกและ 6 คนในกลุ่มคุณก็จะมี 7 mod 6 = 1เพราะคุณให้กล้วย 6 คนต่อกล้วย 1 อันและกล้วยที่เหลือ 1 อัน

สำหรับ12 mod 6หรือ 12 กล้วยที่ใช้ร่วมกันใน 6 คนแต่ละคนจะมีสองกล้วยและส่วนที่เหลือคือ 0



8

ฉันสับสนเกี่ยวกับเรื่องนี้เหมือนกันเมื่อไม่กี่นาทีที่ผ่านมา จากนั้นฉันก็ทำส่วนยาวด้วยกระดาษและมันก็สมเหตุสมผล:

  • 4 ไปเป็น 2 ศูนย์ครั้ง
  • 4 คูณ 0 คือ 0
  • คุณวางศูนย์นั้นไว้ใต้ 2 แล้วลบที่เหลือ 2

เท่าที่คอมพิวเตอร์กำลังจะเกิดปัญหานี้ คอมพิวเตอร์หยุดอยู่ที่นั่นและส่งคืน 2 ซึ่งสมเหตุสมผลเนื่องจากเป็นสิ่งที่ "%" (mod) ร้องขอ

เราได้รับการฝึกฝนให้ใส่ทศนิยมและดำเนินต่อไปซึ่งเป็นสาเหตุที่สิ่งนี้สามารถต่อต้านได้ในตอนแรก


7

มีคนติดต่อฉันและขอให้ฉันอธิบายรายละเอียดเพิ่มเติมคำตอบของฉันในความคิดเห็นของคำถาม ดังนั้นนี่คือสิ่งที่ฉันตอบกลับบุคคลนั้นในกรณีที่สามารถช่วยเหลือผู้อื่นได้:

การดำเนินการแบบโมดูโลช่วยให้คุณได้รับส่วนที่เหลือจากการแตกแบบยุคลิด (ซึ่งใช้ได้กับจำนวนเต็มไม่ใช่จำนวนจริง) หากคุณมี A ที่ A = B * C + D (กับ D <B) ดังนั้นหารของ Euclidian ของ A โดย B คือ C และส่วนที่เหลือคือ D ถ้าคุณหาร 2 ด้วย 4, หารด้วย 0 และส่วนที่เหลือคือ 2

สมมติว่าคุณมีวัตถุ A (ที่คุณไม่สามารถตัดได้) และคุณต้องการกระจายวัตถุเหล่านั้นในจำนวนเดียวกันให้กับคน B ตราบใดที่คุณมีวัตถุมากกว่า B คุณให้แต่ละวัตถุ 1 และทำซ้ำ เมื่อคุณมีวัตถุน้อยกว่า B เหลือคุณหยุดและเก็บรักษาวัตถุที่เหลือ จำนวนเวลาที่คุณได้ทำการดำเนินการซ้ำแล้วเรียกว่าหมายเลข C คือความฉลาด จำนวนวัตถุที่คุณเก็บไว้ท้ายที่สุดเรียกมันว่า D คือส่วนที่เหลือ

หากคุณมี 2 วัตถุและ 4 คน คุณมีวัตถุน้อยกว่า 4 รายการ ดังนั้นแต่ละคนได้รับ 0 วัตถุและคุณเก็บ 2

นั่นเป็นสาเหตุที่ 2 โมดูโล 4 เป็น 2


5

ตัวดำเนินการ modulo จะประเมินค่าเป็นส่วนที่เหลือของการหารของตัวถูกดำเนินการจำนวนเต็มสองตัว นี่คือตัวอย่างบางส่วน:

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)

4

mod หมายถึง reaminder เมื่อหารด้วย ดังนั้น 2 หารด้วย 4 คือ 0 โดยเหลือ 2 ดังนั้น 2 mod 4 คือ 2


4

Modulo เป็นส่วนที่เหลือซึ่งแสดงเป็นจำนวนเต็มของนิพจน์การหารทางคณิตศาสตร์

สมมติว่าคุณมีพิกเซลบนหน้าจอที่ตำแหน่ง 90 ซึ่งหน้าจอกว้าง 100 พิกเซลและเพิ่ม 20 มันจะล้อมไปที่ตำแหน่ง 10 เหตุใด ... เพราะ 90 + 20 = 110 จึง 110% 100 = 10

สำหรับฉันที่จะเข้าใจมันฉันคิดว่าโมดูโล่เป็นจำนวนเต็มแทนจำนวนเศษส่วน นอกจากนี้หากคุณทำนิพจน์ย้อนกลับและประมวลผลส่วนที่เหลือเป็นตัวเลขเศษส่วนแล้วเพิ่มลงในตัวหารมันจะให้คำตอบเดิมของคุณ

ตัวอย่าง:

    100
(A) ---  =  14 mod 2
     7

    123
(B) ---  =  8 mod 3
     15

     3
(C) ---  =  0 mod 3
     4

วิศวกรรมย้อนกลับไปที่:

                        2      14(7)    2       98    2     100
 (A) 14 mod 2  =  14 + ---  =  ----- + ---  =  --- + ---  = ---
                        7        7      7       7     7      7

                      3      8(15)    3      120    3      123
 (B) 8 mod 3  =  8 + ---  =  ----- + ---  =  --- + ---  =  ---
                      15       15     15      15    15      15

                      3       3
 (B) 0 mod 3  =  0 + ---  =  ---
                      4       4

2

เมื่อคุณหาร 2 ด้วย 4 คุณจะได้ 0 ด้วย 2 เหลือหรือเหลือ โมดูโล่เป็นเพียงส่วนที่เหลือหลังจากหารจำนวน


1

ฉันคิดว่าคุณกำลังสับสนกับวิธีการอ่านสมการโมดูโล

เมื่อเราเขียนสมการหารเช่น2/4เราหาร 2 ด้วย 4

เมื่อเขียนสมการโมดูโลเช่น2 % 4เรากำลังหาร2 by 4(คิด 2 ส่วน 4) และคืนค่าส่วนที่เหลือ


1

MOD เป็นตัวดำเนินการส่วนที่เหลือ นั่นคือสาเหตุที่ 2 mod 4 ให้ 2 เป็นส่วนที่เหลือ 4 * 0 = 0 แล้ว 2-0 = 2 เพื่อให้ชัดเจนยิ่งขึ้นลองทำเช่นเดียวกันกับ 6 mod 4 หรือ 8 mod 3


1

นี่คืออัลกอริทึม Euclid

เช่น

mod b = k * b + c => mod b = c โดยที่ k คือเลขจำนวนเต็มและ c คือคำตอบ

4 mod 2 = 2 * 2 + 0 => 4 mod 2 = 0

27 mod 5 = 5 * 5 + 2 => 27 mod 5 = 2

ดังนั้นคำตอบของคุณคือ

2 mod 4 = 0 * 4 + 2 => 2 mod 4 = 2


1

สำหรับ:

2 mod 4

เราสามารถใช้สูตรเล็ก ๆ นี้ที่ฉันคิดขึ้นมาหลังจากคิดไปเล็กน้อยบางทีมันอาจจะถูกนิยามไว้แล้วในบางที่ที่ฉันไม่รู้ แต่ใช้ได้กับฉันและมันมีประโยชน์จริงๆ

A mod B = C โดยที่ C คือคำตอบ

K * B - A = |C| ที่ K คือจำนวนครั้งที่ B พอดีกับ A

2 mod 4 อยากจะเป็น:

0 * 4 - 2 = |C|

C = |-2| => 2

หวังว่ามันจะเหมาะกับคุณ :)


1

การทำงานของ Mod ทำงานด้วยการเตือนความจำ

สิ่งนี้เรียกว่าการคำนวณแบบแยกส่วน

 a==b(mod m) 
 then m|(a-b)
 a-b=km 
 a=b+km
 So, 2=2+0*4

1

เพื่อตอบแบบโมดูโล x % yคุณต้องถามสองคำถาม:

A- กี่ครั้งที่yจะไปxโดยไม่เหลือ? สำหรับ 2% 4 นั่นคือ 0

B- คุณต้องเพิ่มจำนวนเท่าใดเพื่อให้ได้สิ่งนั้นกลับมา x ? ในการรับจาก 0 ถึง 2 คุณจะต้อง 2-0 คือ 2

สิ่งเหล่านี้สามารถสรุปได้ในหนึ่งคำถามเช่น: คุณจะต้องเพิ่มผลลัพธ์การหารxด้วยจำนวนเต็มเท่าไหร่yเพื่อกลับไปที่x ?

โดย integer-ish มันมีความหมายเฉพาะจำนวนเต็มและไม่เศษส่วนใด ๆ ที่น่าสนใจ

ส่วนที่เหลือเป็นเศษส่วน (เช่น. 283849) ไม่เป็นที่สนใจในโมดูโลเนื่องจากโมดูโล่จะทำกับตัวเลขจำนวนเต็มเท่านั้น


0

สำหรับวิธีการคิดเกี่ยวกับมันให้มองภาพใบหน้าของนาฬิกาที่ในตัวอย่างเฉพาะของคุณไปที่ 4 แทน 12 ถ้าคุณเริ่มที่ 4 บนนาฬิกา (ซึ่งก็เหมือนกับการเริ่มต้นที่ศูนย์) และหมุนไปตามเข็มนาฬิกาเพื่อ 2 "ชั่วโมง" คุณลงจอดบน 2 เหมือนเดินไปตามเข็มนาฬิกาเป็นเวลา 6 "ชั่วโมง" จะลงจอดคุณด้วย 2 (6 mod 4 == 2 เช่นเดียวกับ 2 mod 4 == 2)


6
ที่จริงแล้วค่อนข้างสับสน
Joe Phillips

@ do3boy: แนวคิดของหน้าปัดนาฬิกาเป็นวิธีที่ง่ายและสะดวกในการอธิบายความจริงของโมดูโล่ ยกเว้นว่ามันจะง่ายกว่าที่จะใช้รูปแบบ 24 ชั่วโมงในการอธิบายแทนการปรับเปลี่ยนจำนวนตำแหน่งที่มีอยู่
Atmocreations

0

นี่อาจเป็นเวลาที่ดีที่จะพูดถึงฟังก์ชั่น modr () มันส่งกลับทั้งส่วนและส่วนที่เหลือของการหาร

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")
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.