ไม่พบผลลัพธ์
เราไม่พบอะไรกับคำที่คุณค้นหาในตอนนี้, ลองค้นหาอย่างอื่นดู
เครื่องคำนวณมอดุโล (Modulo) ออนไลน์ ช่วยหาเศษเหลือจากการหารตัวเลขบวกและลบได้อย่างแม่นยำและรวดเร็ว พร้อมเรียนรู้วิธีหาค่าโมดูลัสด้วยตนเองอย่างง่ายดาย
มอดูลโอ
1
เกิดข้อผิดพลาดกับการคำนวณของคุณ
การดำเนินการมอดุโล (Modulo Operation) คือวิธีการทางคณิตศาสตร์ในการหา "เศษที่เหลือ" (Remainder) จากการหาร จุดเด่นของการหารเอาเศษแบบมอดุโลคือ ผลลัพธ์ที่ได้จะเป็นเศษเหลือที่เป็นจำนวนเต็มเสมอ
สมมติว่าคุณมีลูกสามคน และคุณซื้อลูกอมมาหนึ่งกล่องจำนวน 20 ชิ้น คุณต้องการแบ่งลูกอมทั้งหมดให้ลูกๆ อย่างเท่าเทียมและยุติธรรม ส่วนเศษลูกอมที่เหลือคุณตั้งใจจะเก็บไว้กินเองโดยไม่ต้องหักแบ่งครึ่ง เนื่องจากลูกๆ ของคุณยังอยู่ที่โรงเรียน คุณจึงสามารถคำนวณหาเศษที่เหลือหลังจากการหารล่วงหน้า เพื่อกินส่วนของคุณก่อนได้เลย
นี่คือตัวอย่างสถานการณ์ที่คุณสามารถใช้การดำเนินการมอดุโลได้ ในทางคณิตศาสตร์ สัญลักษณ์นี้มักจะเขียนแทนด้วยเครื่องหมาย % หรือคำว่า mod สำหรับตัวเลขจำนวนน้อยๆ คุณอาจจะสามารถคิดเลขในใจได้อย่างง่ายดาย แต่ถ้าคุณต้องจัดการกับตัวเลขที่มีค่ามาก การใช้เครื่องคิดเลขมอดุโล (Modulo Calculator) จะช่วยให้คุณคำนวณได้อย่างสะดวกและรวดเร็วมากยิ่งขึ้น
สมการพื้นฐานของการหารสามารถแสดงได้ดังนี้:
ตัวตั้ง = (ผลหาร × ตัวหาร) + เศษที่เหลือ
ในกรณีลูกอมของเรา:
หากคุณนำการดำเนินการมอดุโลมาใช้ คุณสามารถเขียนให้อยู่ในรูปแบบสมการได้ดังนี้:
x % y = r
หรือ
x mod y = r
โดยที่ x คือตัวตั้ง, y คือตัวหาร และ r คือเศษที่เหลือ
ในกรณีของเราจะเขียนได้ว่า:
20 % 3 = 2
ลองมาดูสถานการณ์จำลองเพื่อความเข้าใจที่ชัดเจนยิ่งขึ้น
Wayan อาศัยอยู่ที่เกาะบาหลีและกำลังสร้างเกสต์เฮาส์ขนาดเล็กที่มีห้องพักจำนวนหกห้อง เขากำลังจะปูกระเบื้องห้องน้ำ Gede เพื่อนบ้านของเขาเพิ่งสร้างโรงแรมเสร็จ จึงเสนอขายกระเบื้องที่เหลือให้ Wayan ในราคาพิเศษ
Gede นับกระเบื้องในโกดังได้ 15 กล่อง แต่ละกล่องมีกระเบื้อง 4 แผ่น (ขนาด 60 × 60 ซม.) และยังมีเศษกระเบื้องเหลืออยู่อีก 2 แผ่นต่างหาก รวมทั้งหมดคือ 62 แผ่น ซึ่ง Gede ต้องการขายเหมาทั้งหมดในคราวเดียว
ตอนนี้ Wayan ต้องคำนวณว่า เขาจะสามารถปูกระเบื้องห้องน้ำได้กี่ห้องด้วยจำนวนกระเบื้องที่มี และจะมีเศษกระเบื้องเหลืออยู่กี่แผ่นที่ไม่ได้ใช้?
เราจะหาค่ามอดุโลด้วยตนเองโดยไม่ใช้เครื่องมือคำนวณ Mod ได้อย่างไร?
Wayan วัดขนาดห้องน้ำมาตรฐานในเกสต์เฮาส์ของเขา และพบว่าเขาต้องใช้กระเบื้องประมาณ 14 แผ่นต่อหนึ่งห้องน้ำ
มาเริ่มการคำนวณด้วยตนเองกันเลย!
หากเขียนในรูปแบบที่สั้นและเข้าใจง่าย เราสามารถแสดงการคำนวณนี้ได้เป็น:
62 % 14 = 6
หรือ
62 mod 14 = 6
Wayan ตัดสินใจว่านี่เป็นข้อเสนอที่ดี เพราะในการปูกระเบื้องจริง ควรเผื่อกระเบื้องสำรองไว้ประมาณ 10% สำหรับการตัดแต่งหรือข้อผิดพลาดที่อาจเกิดขึ้น ส่วนห้องน้ำอีกสองห้องที่เหลือ เขาจะไปหาซื้อกระเบื้องจากร้านวัสดุก่อสร้างในพื้นที่เพิ่มเติม
แน่นอนว่า หากคุณใช้เครื่องคิดเลข Mod คุณจะได้ผลลัพธ์ทั้งหมดนี้ภายในเวลาเพียงไม่กี่วินาที
สาขาหนึ่งของคณิตศาสตร์ที่เรียกว่า "เลขคณิตแบบมอดุลาร์" (Modular Arithmetic) จะเกี่ยวข้องกับโครงสร้างที่เป็นวงรอบหรือวัฏจักร วิธีที่ง่ายที่สุดในการนึกภาพสิ่งนี้คือ หน้าปัดนาฬิกาที่มีวงจรแบบ 12 ชั่วโมง สำหรับนักคณิตศาสตร์แล้ว หน้าปัดนาฬิกาก็คือตัวอย่างที่ชัดเจนของ mod 12
หากคุณต้องการคำนวณว่า เวลา 251 ชั่วโมงสามารถหารเป็นวันได้อย่างลงตัวโดยไม่มีเศษเหลือหรือไม่ คุณสามารถใช้สมการนี้ได้:
251 mod 24
ผลลัพธ์ที่ได้คือ 11 ดังนั้นคำตอบคือ "ไม่!" (เราจะตอบว่า "ใช่" ได้ก็ต่อเมื่อผลลัพธ์ที่ได้คือ 0)
Daniel ต้องการนั่งรถบัสจากแอตแลนตาไปไมอามี รถออกเดินทางเวลา 13:00 น. (บ่ายโมง) และใช้เวลาเดินทางบนถนน 15 ชั่วโมง เขาจะไปถึงจุดหมายในเวลาใด? สมการที่ใช้คือ:
1 + 15 mod 12
ผลลัพธ์คือ 4 ในกรณีนี้ เขาจะไปถึงในเวลา 4:00 น. (ตี 4)
หนึ่งในการประยุกต์ใช้งานตัวดำเนินการมอดุโล (Modulo Operator) ขั้นพื้นฐานที่สุดคือ การตรวจสอบว่าตัวเลขนั้นเป็นเลขคู่หรือเลขคี่ ซึ่งสามารถทำได้โดยสมการ x % 2 ที่จะให้ผลลัพธ์เป็น 0 หรือ 1 เสมอ ตัวเลขที่เป็นเลขคู่จะให้ค่ามอดุโลเป็น 0 เสมอเนื่องจากสามารถหารด้วย 2 ได้ลงตัว ในขณะที่เลขคี่จะเหลือเศษ 1 เสมอ
ตัวอย่างที่พบบ่อยที่สุดในการเขียนโปรแกรมคือ เมื่อคุณสร้างตารางในแอปพลิเคชันและต้องการสลับสีพื้นหลังของแถวให้อ่านง่าย เช่น แถวหนึ่งสีฟ้าอ่อน แถวถัดไปสีเทาอ่อน คุณเพียงแค่ใช้ฟังก์ชันมอดุโลเช็กว่าแถวปัจจุบันเป็นแถวคู่หรือแถวคี่
การแปลงหน่วยถือเป็นอีกหนึ่งตัวอย่างคลาสสิกของการใช้การดำเนินการมอดุโลในชีวิตจริง มักจะใช้เมื่อเราต้องการแปลงหน่วยย่อย เช่น นาที, นิ้ว หรือเซนติเมตร ไปเป็นหน่วยที่ใหญ่ขึ้น เช่น ชั่วโมง, ไมล์ หรือกิโลเมตร ซึ่งการใช้ตัวเลขทศนิยมหรือเศษส่วนอาจไม่ตอบโจทย์เสมอไป
ตัวอย่างเช่น หากเราต้องการทราบว่า 373 นาที เท่ากับกี่ชั่วโมง การแสดงผลลัพธ์เป็น "6 ชั่วโมง 13 นาที" ย่อมเข้าใจง่ายกว่า "6.21666666666666666666667 ชั่วโมง"
การหารแบบปกติ (ปัดเศษทิ้งเป็นจำนวนเต็ม) จะช่วยบอกจำนวน "ชั่วโมง" ส่วนตัวดำเนินการมอดุโลจะใช้เพื่อหาจำนวน "นาที" ที่เป็นเศษเหลือ ไม่ว่าคุณจะกำลังจัดการกับเวลา, ระยะทาง, ความดัน, พลังงาน หรือแม้แต่พื้นที่จัดเก็บข้อมูล คุณสามารถใช้วิธีการหารเอาเศษนี้เพื่อแปลงหน่วยได้อย่างสมบูรณ์แบบ
อีกตัวอย่างหนึ่งที่น่าสนใจของการใช้มอดุโลคือ การคำนวณว่าปีใดเป็นปีอธิกสุรทินหรือไม่
ปีอธิกสุรทิน (Leap Year) คือปีในปฏิทินสุริยคติที่มีวันเพิ่มขึ้นมาอีก 1 วัน ซึ่งก็คือวันที่ 29 กุมภาพันธ์ นั่นเอง
เมื่อวันที่ 1 มกราคม 45 ปีก่อนคริสตกาล จูเลียส ซีซาร์ (Gaius Julius Caesar) ผู้เผด็จการแห่งโรมัน ได้ประกาศใช้ปฏิทินที่พัฒนาขึ้นโดยนักดาราศาสตร์ชาวอเล็กซานเดรีย ปฏิทินนี้อิงตามการคำนวณที่ว่า ปีทางดาราศาสตร์หนึ่งปีมีประมาณ 365.25 วัน (365 วัน กับอีก 6 ชั่วโมง) ปฏิทินนี้ถูกเรียกว่า "ปฏิทินจูเลียน"
เพื่อชดเชยเศษ 6 ชั่วโมงที่เกินมา ซีซาร์จึงได้ริเริ่มระบบปีอธิกสุรทินขึ้นมา โดยกำหนดให้ 3 ปีติดต่อกันมี 365 วัน และทุกๆ ปีที่หารด้วย 4 ลงตัว จะมีการเพิ่มวันพิเศษ 1 วันในเดือนกุมภาพันธ์
อย่างไรก็ตาม เมื่อเวลาผ่านไป กลับพบว่าแค่กฎข้อนี้ยังไม่ครอบคลุมเพียงพอ
ความจริงแล้ว ปีสุริยคติ (เวลาที่โลกโคจรรอบดวงอาทิตย์จากฤดูใบไม้ผลิตลอดหนึ่งรอบ) มีความยาวนานประมาณ 365 วัน 5 ชั่วโมง 49 นาที ความแตกต่างระหว่างปีสุริยคติจริงกับปีปฏิทินจูเลียน (365 วัน 6 ชั่วโมง) จะเหลื่อมกันอยู่ประมาณ 11 นาที ซึ่งเมื่อผ่านไปประมาณ 128 ปี เวลา 11 นาทีเหล่านี้จะสะสมจนกลายเป็น 1 วันเต็มๆ
เพื่อแก้ไขความคลาดเคลื่อนที่สะสมมา และป้องกันการคลาดเคลื่อนในอนาคต สมเด็จพระสันตะปาปาเกรกอรีที่ 13 จึงได้ทำการปรับปรุงปฏิทินใหม่ในปี ค.ศ. 1582 พระองค์ได้เพิ่มกฎเกณฑ์พิเศษสำหรับปีอธิกสุรทิน โดยปีอธิกสุรทินยังคงเป็นปีที่หารด้วย 4 ลงตัว แต่จะมีข้อยกเว้นสำหรับปีที่หารด้วย 100 ลงตัว ปีเหล่านั้นจะเป็นปีอธิกสุรทินได้ก็ต่อเมื่อหารด้วย 400 ลงตัวเท่านั้น
ดังนั้น กฎสำหรับการกำหนดปีอธิกสุรทินจึงสรุปได้ดังนี้:
นั่นหมายความว่า ปี 1700, 1800 และ 1900 ไม่ใช่ปีอธิกสุรทิน เนื่องจากหารด้วย 100 ลงตัวแต่หารด้วย 400 ไม่ลงตัว ในขณะที่ปี 1600 และ 2000 ถือเป็นปีอธิกสุรทิน เนื่องจากหารด้วย 400 ลงตัว
กลับมาที่ปัญหาของเราเกี่ยวกับการนำมอดุโลมาใช้
เราสามารถกำหนดเงื่อนไขได้ว่า:
คุณสามารถเขียนสคริปต์ 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.")
ตัวอย่างการประยุกต์ใช้งานการดำเนินการมอดุโลในการเขียนโปรแกรมที่เป็นที่นิยมอื่นๆ ได้แก่:
การจับคู่คณิตศาสตร์มอดุโลมักถูกใช้งานในฮาร์ดแวร์คอมพิวเตอร์และอุปกรณ์โทรคมนาคม เพื่อสร้างตัวเลขควบคุมและสร้างตัวเลขสุ่มในขอบเขตจำกัด ตัวอย่างเช่น วิธีคอนกรูเอนซ์เชิงเส้น (Linear Congruential Method) ซึ่งเป็นอัลกอริทึมการสุ่มตัวเลขที่ถูกคิดค้นโดย Derrick Henry Lehmer ในปี 1949
วิธีคอนกรูเอนซ์เชิงเส้น ทำงานภายใต้สมการ:
$$X_{n+1} = (a × X_n + c)\mod m$$
โดยที่:
ตัวอย่างเช่น หากเรากำหนด m = 11, X₀ = 9, a = 9, c = 9 เราจะได้ชุดตัวเลขสุ่มดังต่อไปนี้:
9, 2, 5, 10, 0, 9, 2, 5, 10, 0, 9
นักวิทยาการเข้ารหัสลับ (Cryptographers) ชื่นชอบการใช้งานมอดุโลเป็นอย่างมาก เพราะเมื่อนำมาใช้กับตัวเลขที่มีขนาดใหญ่มากๆ คุณสามารถสร้างสิ่งที่เรียกว่า "ฟังก์ชันทางเดียว" (One-way function) ด้วยมอดุโลได้ ฟังก์ชันพิเศษเหล่านี้ทำให้คณิตศาสตร์สามารถคำนวณไปข้างหน้าได้ง่าย แต่เป็นเรื่องยากมากที่จะคำนวณย้อนกลับ
ลองนึกภาพตาม หากบอกว่า 9 คือผลลัพธ์ของการยกกำลัง คุณสามารถเดาได้ทันทีว่าเลขต้นทางคือ 3 คุณมองเห็นภาพรวมของกระบวนการทั้งหมดตั้งแต่ต้นจนจบ แต่ถ้าผมบอกคุณว่า 9 คือผลลัพธ์ที่เกิดจากการ mod 29 มันแทบจะเป็นไปไม่ได้เลยที่คุณจะเดาได้ว่าตัวเลขต้นทาง (Input) คืออะไร
นักเข้ารหัสลับประยุกต์ใช้แนวคิดนี้ เพื่อใช้การหาเศษเหลือนำไปสู่การสร้างตัวเลขเฉพาะขนาดใหญ่ ซึ่งเป็นหัวใจสำคัญในการสร้างคีย์การเข้ารหัสข้อมูลที่ปลอดภัย
ไม่ว่าคุณจะพยายามแบ่งสิ่งของลงกล่องให้เท่าๆ กัน, อยากรู้ว่าตัวเลขหนึ่งหารอีกตัวเลขหนึ่งลงตัวหรือไม่ หรือแค่กำลังพยายามคำนวณเรื่องเวลา "การดำเนินการมอดุโล" จะเข้ามามีบทบาทเสมอ ในทุกสถานการณ์ที่กล่าวมา การหาเศษที่เหลือมีความสำคัญไม่แพ้การหาผลหารเลย
บางครั้งปัญหาการหารเอาเศษก็ดูตรงไปตรงมาและสามารถคิดในใจได้ แต่เมื่อตัวเลขเริ่มเยอะและมีความซับซ้อนมากขึ้น การเลือกใช้เครื่องคิดเลขมอดุโลออนไลน์ (Online Modulo Calculator) ย่อมเป็นทางเลือกที่ชาญฉลาด รวดเร็ว และแม่นยำที่สุดสำหรับคุณเสมอ