คำนวณคณิตศาสตร์
เครื่องคำนวณมอดุโล


เครื่องคำนวณมอดุโล

เครื่องคำนวณมอดุโลค้นหาส่วนที่เหลือของการหารของตัวเลขเชิงตรรกะ/อตรรกะสองตัวเลขบวก/ลบ นอกจากนี้ คุณยังสามารถค้นหาวิธีค้นหาโมดูลัสด้วยตนเอง

มอดูลโอ

1

เกิดข้อผิดพลาดกับการคำนวณของคุณ

สารบัญ

  1. การคำนวณโดยไม่มีเครื่องคำนวณโมดูลัส
    1. ตัวอย่าง
  2. การสาธิตด้วยนาฬิกาตามหลักการมอดุโล
    1. ตัวอย่าง
  3. การใช้มอดุโล
    1. การกำหนดจำนวนคู่และคี่
    2. การแปลงหน่วย
    3. การกำหนดปีอธิกสุรทิน
  4. เครื่องกำเนิดตัวเลขสุ่ม
    1. การเข้ารหัส
  5. บทสรุป

เครื่องคำนวณมอดุโล

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

พิจารณาให้มีลูกสามคน คุณซื้อลูกอมหนึ่งกล่องที่มีจำนวน 20 ชิ้น คุณต้องการแบ่งลูกอมทั้งหมดอย่างสม่ำเสมอและยุติธรรมในหมู่ลูก ๆ ของคุณ และกินขนมที่เหลือด้วยตัวเองโดยไม่จำเป็นต้องตัดหรือหักมัน ลูก ๆ ของคุณยังอยู่ที่โรงเรียน ดังนั้นคุณสามารถกำหนดส่วนที่เหลืออยู่หลังการหารก่อนและกินลูกอมของคุณจำนวนหนึ่ง

นี่คือกรณีที่คุณสามารถใช้การทำงานมอดุโลได้ นอกจากนี้ ยังสามารถแสดงเป็นเครื่องหมาย % หรือ mod สำหรับการดำเนินการด้วยตัวเลขที่มีค่าน้อย คุณสามารถทำการคำนวณในหัวของคุณ หากคุณทำงานกับตัวเลขที่มีค่ามาก คุณจะสะดวกสบายมากขึ้นโดยใช้เครื่องคำนวณมอดุโล

สมการสามารถแสดงได้ดังนี้:

ส่วนปันผล = (ผลหาร × ตัวหาร) + เศษที่เหลือ

ในกรณีของเรา:

  • ส่วนปันผลคือ 20 (จำนวนลูกอมทั้งหมด)
  • ตัวหารคือ 3 (จำนวนเด็ก)
  • ผลหารคือ 6 (จำนวนลูกอมสำหรับเด็กแต่ละคน)
  • เศษที่เหลือคือ 2 (จำนวนลูกอมที่คุณสามารถกินด้วยตัวคุณเอง)

หากคุณใช้การดำเนินการมอดุโล คุณสามารถเขียนลงในแบบฟอร์มต่อไปนี้:

x % y = r

หรือ

x mod y = r

โดยที่ x คือส่วนปันผล y คือตัวหารและ r คือเศษที่เหลือ

ในกรณีของเรา

20 % 3 = 2

การคำนวณโดยไม่มีเครื่องคำนวณโมดูลัส

ลองใช้กรณีเฉพาะเป็นตัวอย่าง

ตัวอย่าง

Wayan อาศัยอยู่ในบาหลีและกำลังสร้างเกสต์เฮาส์ขนาดเล็กที่มีที่อยู่อาศัยหกยูนิต เขากำลังจะปูกระเบื้องห้องน้ำ เพื่อนบ้านของเขา Gede ซึ่งได้สร้างโรงแรมเสร็จแล้ว เสนอ Wayan ส่วนลดมากในการซื้อกระเบื้องที่เหลือ

เพื่อนบ้านนับกล่อง 15 กล่องในคลังสินค้าของเขา แต่ละกล่องมีกระเบื้อง 4 (60 × 60 ซม.) และกระเบื้องสองแผ่นตางหาก นั่นคือทั้งหมด 62 แผ่นและ Gede ต้องการขายกระเบื้องทั้งหมดในคราวเดียว

ตอนนี้ Wayan ต้องคิดว่าเขาจะสามารถปูห้องน้ำกี่ห้องด้วยกระเบื้องเหล่านี้ได้ และกระเบื้องกี่แผ่นจะยังคงไม่ถูกใช้?

จะค้นหาโมดูลัสด้วยตนเองโดยไม่มีเครื่องคำนวณตัวดำเนินการโมดูลัสได้อย่างไร?

Wayan วัดขนาดของห้องน้ำมาตรฐานในเกสต์เฮาส์ของเขาและรู้ว่าเขาต้องการกระเบื้องประมาณ 14 แผ่นต่อห้อง

มาทำการคำนวณด้วยตนเองกันเถอะ!

  1. ตัดสินใจเลือกหมายเลขหรือตัวปันผลเริ่มต้น ในกรณีของเรา นั่นคือ 62 แผ่น หรือจำนวนกระเบื้องที่เพื่อนบ้านเสนอ
  2. กำหนดตัวหาร นี่คือ 14 — จำนวนกระเบื้องโดยเฉลี่ยสำหรับห้องน้ำมาตรฐาน
  3. หารตัวปันผลด้วยตัวหารและปัดผลลัพธ์เป็นจำนวนเต็ม 62 / 14 = 4.428571428571429 หรือ 4 ดังนั้น Wayan จึงสามารถใช้กระเบื้องสำหรับสี่ห้องน้ำ
  4. คูณผลลัพธ์ที่ปัดลงจากการหารด้วยตัวหาร และนั่นคือ 4 × 14 = 56 นี่จะเป็นจำนวนกระเบื้องสำหรับสี่ห้อง
  5. ลบผลการคูณนี้จากตัวปันผลเดิม นั่นคือ 62 - 56 = 6 ทำให้ Wayan มีกระเบื้องเหลือหกแผ่น

ในวิธีที่ง่ายและสั้น เราสามารถเขียนการดำเนินการนี้ได้เป็น:

62 % 14 = 6

หรือ

62 mod 14 = 6

Wayan ตัดสินใจว่านี่เป็นตัวเลือกที่ดีเพราะเขาควรใช้กระเบื้องสำรองประมาณ 10% สำหรับงานปูกระเบื้องในกรณีที่มีการตัดแต่งหรือความเข้าใจผิด และเขาจะซื้อกระเบื้องสำหรับห้องน้ำอีกสองห้องที่ร้านก่อสร้างท้องถิ่น

เครื่องคำนวณ mod สามารถให้ผลลัพธ์นี้ได้ในเวลาเพียงไม่กี่วินาที

การสาธิตด้วยนาฬิกาตามหลักการมอดุโล

คณิตศาสตร์ประเภทหนึ่งที่เรียกว่า "เลขคณิตแบบมอดุลาร์" เกี่ยวข้องกับโครงสร้างแบบวงจร วิธีที่ง่ายที่สุดในการแสดงสิ่งนี้คือหน้าปัดที่มีวงจร 12 สำหรับนักคณิตศาสตร์ หน้าปัดมี mod 12

หากคุณต้องการดูว่าคุณสามารถหารเวลา 251 ชั่วโมงเป็นวันโดยไม่มีเศษเหลือได้หรือไม่ คุณสามารถใช้การดำเนินการได้

251 mod 24

ผลลัพธ์คือ 11 ดังนั้นคำตอบคือไม่! เราสามารถตอบ "ใช่" ได้ก็ต่อเมื่อผลลัพธ์คือ 0

ตัวอย่าง

Daniel ต้องการนั่งรถบัสจากแอตแลนตาไปไมอามี ออกเวลา 13.00 น. และถนนใช้เวลา 15 ชั่วโมง จะถึงเวลาเท่าไหร่เมื่อเขามาถึง? นั่นจะเป็น

1 + 15 mod 12

ซึ่งคือ 4 ในกรณีของเขา จะเป็น 4 โมงเช้า

การใช้มอดุโล

การกำหนดจำนวนคู่และคี่

การใช้งานพื้นฐานที่สุดอย่างหนึ่งของตัวดำเนินการโมดูลัสคือการตรวจสอบว่าตัวเลขเป็นคู่หรือคี่หรือไม่ สิ่งนี้เป็นไปได้เพราะ x% 2 จะให้ 0 หรือ 1 เสมอ ตัวเลขคู่จะให้ 0 เสมอเพราะหารด้วย 2 เท่ากัน ในขณะที่ตัวเลขคี่จะให้เศษเหลือของ 1 เสมอ

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

การแปลงหน่วย

การแปลงหน่วยเป็นตัวอย่างทั่วไปของการใช้งานในทางปฏิบัติของการดำเนินงานมอดุโล มักจะใช้เมื่อเราต้องการแปลงหน่วยขนาดเล็ก เช่น นาที นิ้ว หรือเซนติเมตร เป็นหน่วยที่ใหญ่กว่า เช่น ชั่วโมง ไมล์ หรือกิโลเมตร เลขทศนิยมหรือเศษส่วนไม่ได้มีประโยชน์เสมอไปในสถานการณ์เช่นนี้

ตัวอย่างเช่น หากเราต้องการทราบจำนวนชั่วโมงใน 373 นาที ผลลัพธ์ที่แสดงเป็น 6 ชั่วโมง 13 นาทีอาจมีค่ามากกว่า 6.21666666666666666666667 ชั่วโมง

การหารมาตรฐาน (ด้วยการปัดเศษเป็นจำนวนเต็มที่ใกล้ที่สุด) กำหนดจำนวนชั่วโมง และการดำเนินการมอดุโลจะใช้เพื่อคำนวณนาทีที่เหลือ ไม่ว่าจะจัดการกับเวลา ระยะทาง ความดัน พลังงาน หรือการจัดเก็บข้อมูล คุณสามารถใช้วิธีการทั่วไปนี้เพื่อแปลงหน่วยได้

การกำหนดปีอธิกสุรทิน

อีกตัวอย่างหนึ่งของการใช้การดำเนินการมอดุโลคือการดูว่าปีหนึ่งเป็นปีอธิกสุรทินหรือไม่

ปีอธิกสุรทินเป็นปีปฏิทินที่มีวันพิเศษในปฏิทินสุริยะ วันพิเศษในปีอธิกสุรทินคือวันที่ 29 กุมภาพันธ์

เมื่อวันที่ 1 มกราคม 45 ปีก่อนคริสตกาล Gaius Julius Caesar เผด็จการโรมันได้แนะนำปฏิทินที่พัฒนาขึ้นในกรุงโรมโดยนักดาราศาสตร์ Alexandrian ปฏิทินนี้ขึ้นอยู่กับการคำนวณว่าปีดาราศาสตร์มีประมาณ 365.25 วัน (365 วันและ 6 ชั่วโมง) ปฏิทินนี้เรียกว่าปฏิทินจูเลียน

เพื่อปรับค่ากะหกชั่วโมง Caesar ได้แนะนำปีอธิกสุรทิน เป็นเวลาสามปีติดต่อกัน มี 365 วันในหนึ่งปี และในแต่ละปี ผลคูณของสี่ วันพิเศษหนึ่งวันในเดือนกุมภาพันธ์

อย่างไรก็ตาม เมื่อเวลาผ่านไป ปรากฎว่ากฎนี้เพียงอย่างเดียวไม่เพียงพอ

ปีเขตร้อนโดยเฉลี่ย (เวลาระหว่างอีควิน็อกซ์ฤดูใบไม้ร่วงทั้งสอง) แม่นยำกว่าประมาณ 365 วัน และ 5 ชั่วโมง 49 นาที ความแตกต่างระหว่างปีเฉลี่ยกับปีปฏิทินจูเลียน (365 วันและ 6 ชั่วโมง) อยู่ที่ประมาณ 11 นาที ดังนั้นในเวลาประมาณ 128 ปี 11 นาทีเหล่านั้นอาจเพิ่มขึ้นเป็นวันพิเศษทั้งวัน

เพื่อชดเชยข้อผิดพลาดที่สะสมและเพื่อหลีกเลี่ยงการเปลี่ยนแปลงที่คล้ายกันในอนาคต สมเด็จพระสันตะปาปา Gregory ที่ 13 ได้ปรับปฏิทินในปี 1582 เขาเพิ่มกฎเพิ่มเติมสำหรับปีอธิกสุรทิน ปีอธิกสุรทินยังคงเป็นผลคูณของสี่ปี แต่มีข้อยกเว้นสำหรับปีเหล่านั้นซึ่งเป็นผลคูณของ 100 ปีดังกล่าวเป็นปีอธิกสุรทินก็ต่อเมื่อหารด้วย 400 ลงตัว

กฎสำหรับการกำหนดปีอธิกสุรทินมีดังนี้:

  • ปีที่มีตัวเลขเป็นผลคูณของ 400 เป็นปีอธิกสุรทิน
  • ปีที่เหลือซึ่งเป็นผลคูณของ 100 ไม่ใช่ปีอธิกสุรทิน (ตัวอย่างเช่น ปี 1700, 1800, 1900, 2100, 2200, 2300)
  • ปีที่เหลือ ซึ่งตัวเลขเป็นผลคูณของ 4 เป็นปีอธิกสุรทิน
  • ปีอื่น ๆ ทั้งหมดไม่ใช่ปีอธิกสุรทิน

ดังนั้นปี 1700, 1800 และ 1900 จึงไม่ใช่ปีอธิกสุรทิน เนื่องจากเป็นผลคูณของ 100 และไม่ใช่ผลคูณของ 400 ปี 1600 และ 2000 เป็นปีอธิกสุรทิน เนื่องจากเป็นผลคูณของ 400

เรามากลับไปที่ปัญหาของเรากันเถอะ

เรารู้ว่า:

  • หากหมายเลขปี mod 4 = 0 และหมายเลขปี mod 100 ≠ 0 แสดงว่าเป็นปีอธิกสุรทิน
  • หากจำนวนปี mod 400 = 0 แสดงว่าเป็นปีอธิกสุรทิน
  • ในกรณีอื่น ๆ มันไม่ใช่ปีอธิกสุรทิน

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

year = int(input('Enter year: '))

if (year%4 == 0 and year%100 != 0) or (year%400 == 0) :

	print(year, "is a leap year.")

else:

	print(year, "is not a leap year.")

แอพพลิเคชั่นยอดนิยมของการดำเนินการมอดุโลในการเขียนโปรแกรมรวมถึง:

  • การพิจารณาว่าบางอย่างเป็นคู่หรือคี่
  • ดำเนินการเฉพาะในแต่ละรายการ Nth ในรายการ
  • จำกัดจำนวนให้เป็นช่วง
  • หมุนผ่านตัวเลือกที่จำกัด (อาร์เรย์วงกลม)
  • การย้อนกลับตัวเลข
  • การแปลงข้อมูลเชิงเส้นเป็นเมทริกซ์
  • การกำหนดว่าอาร์เรย์เป็นเวอร์ชันที่หมุนซึ่งกันและกันหรือไม่
  • การแบ่งหน้า

เครื่องกำเนิดตัวเลขสุ่ม

การจับคู่มอดุโลมักใช้ในฮาร์ดแวร์คอมพิวเตอร์และอุปกรณ์โทรคมนาคมเพื่อสร้างตัวเลขควบคุมและรับตัวเลขสุ่มในช่วงที่จำกัด เช่น เครื่องกำเนิดตัวเลขสุ่มที่สอดคล้องกัน Derrick Henry Lemer เสนอวิธีการที่สอดคล้องกันเชิงเส้นในปี 1949

วิธีการสอดคล้องเชิงเส้นทำงานตามสูตร:

$$X_{n+1} = (a × X_n + c)\mod m$$

ที่ซึ่ง:

  • m คือมอดุโล
  • a คือตัวคูณ
  • c คือการเพิ่มขึ้น และ
  • X₀ คือค่าเริ่มต้น

ตัวอย่างเช่น สำหรับ m = 11, X₀ = 9, a = 9, c = 9 เราจะได้รับชุดตัวเลขสุ่มต่อไปนี้:

9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9

การเข้ารหัส

นักเข้ารหัสชอบมอดุโล เพราะเมื่อใช้กับตัวเลขที่ใหญ่จริง ๆ คุณสามารถสร้างด้วยมอดุโลบางอย่างที่เรียกว่า "ฟังก์ชันทางเดียว" ฟังก์ชั่นพิเศษเหล่านี้ทำให้การคำนวณบางอย่างในทิศทางเดียวได้ง่ายแต่ไม่ใช่ทิศทางตรงกันข้าม

หาก 9 เป็นผลมาจากการยกกำลัง คุณสามารถตรวจสอบได้อย่างรวดเร็วว่าอินพุตคือ 3 คุณสามารถจินตนาการถึงกระบวนการทั้งหมดต่อหน้าคุณตั้งแต่ต้นจนจบ ถ้าฉันบอกคุณว่า 9 เป็นผลลัพธ์ของ mod 29 มันยากที่จะทราบว่ามีอะไรอยู่ในอินพุต

นักเข้ารหัสชอบแนวคิดนี้เพราะพวกเขาสามารถใช้การการกับเศษที่เหลือเพื่อสร้างตัวเลขเฉพาะขนาดใหญ่เพื่อสร้างคีย์เข้ารหัส

บทสรุป

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

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