ติดต่อลงโฆษณา ในเวปบอร์ดนี้

Abuse/แจ้งลบ
ABUSE / แจ้งลบ
Your Email :
Why? !
Security Code

สงสัยเรื่อง modulo ที่ติดลบ

- กลับไปยังหมวดหลักของกระทู้นี้
  - สงสัยเรื่อง modulo ที่ติดลบ
แจ้งลบกระทู้ หรือ ลบผู้ตอบกลับ กระทู้โดย : teos IP ADDRESS : 58.9.39.233 , ,



« เมื่อ 10/07/2007 , 16:22:54 » Send Topic Set to Print Page Edit


ตอนเขียนโปรแกรมสมัยแรกๆ เคยจำว่า modulo คือฟังก์ชันการหาเศษจากผลหาร แต่พอใช้ไปสักพักแล้วเริ่มรู้สึกแปลกๆ ตอนที่เวลาตัวตั้งหรือตัวหารเป็นค่าติดลบ ซึ่ง modulo ให้ผลเป็นค่าติดลบได้ อย่าง -5 mod 2 = -1 (เพราะ -2 * 2 + -1) .. เอ่อ .. ถ้า modulo ใช้สำหรับหา 'เศษ' ของการหาร ทำไมเศษมันเป็นติดลบได้ล่ะ ? เศษมันควรจะ >= 0 หรือเปล่า ? .. เรื่องนี้อาจจะต้องย้อนกลับไปไกลหน่อย

ที่มาของ modulo หรือ mod มาจาก modular arithmetic ซึ่งนิยามโดย คาร์ล เฟดริก เกาส์ เมื่อสองร้องกว่าปีที่แล้ว ตามนิยามที่เกาส์เขียนไว้คือ จำนวนเต็ม a, b จะเป็น congruent modulo ของจำนวนเต็ม n ถ้า (a - b) หารด้วย n ลงตัว หรือเขียนได้เป็น

a ≡ b (mod n)

ถ้าคิดย้อนกลับก็จะได้ว่า a หารด้วย n จะได้เศษเป็น b .. ใน modular arithmetic ค่า b เป็นจำนวนเต็มบวกหรือลบก็ได้ ดังนั้นผลลัพธ์ของ modulo จึงเป็นค่าติดลบได้ .. ค่า b บางทีเรียกว่า residue หรือ remainder แยกเป็นสองแบบคือ minimal residue มีค่าเท่ากับ b หรือ b - n ขึ้นกับว่าค่าสัมบูรณ์ของตัวไหนน้อยกว่าก็เอาตัวนั้น และอีกแบบคือ common residue ซึ่งคือเศษของการหาร โดย b ต้องเป็นจำนวนเต็มที่น้อยกว่า n และ b >= 0

ดังนั้นค่าของ ฟังก์ชัน หรือ โอเปอร์เรเตอร์ modulo ในโปรแกรมหรือภาษาสำหรับเขียนโปรแกรมทั้งหลายจึงไม่ได้ให้ผลลัพธ์เป็นเศษของการหารซะทีเดียว .. อย่างไรก็เรายังสามารถหาเศษของการหารโดยใช้ modulo ได้ โดยกรณีผลลัพธ์เป็นค่าติดลบ ให้บวกตัวหารเข้าไปอีกที เช่น ตัวอย่าง -5 mod 3 = -2 จะได้เศษของการหารคือ = -2 + 3 = 1

สรุปว่ามันเหมือนหมุนมั๊ยอ่ะ แล้วไอหมุนที่จารสอนคือยังไง รบกวนบอกที ชักจะงง ขอบคุณครับ

แจ้งลบกระทู้ หรือ ลบผู้ตอบกลับ ตอบกลับโดย : teos IP ADDRESS : 58.9.39.233 , ,



« Reply #1 เมื่อ 10/07/2007 , 16:23:58 » Edit
ลืมใส่ที่มา http://kitty.in.th/index.php?room=blog&date=2006-03-31
แจ้งลบกระทู้ หรือ ลบผู้ตอบกลับ ตอบกลับโดย : tury IP ADDRESS : 202.44.8.100 , , 10.16.15.190



« Reply #2 เมื่อ 13/07/2007 , 10:48:58 » Edit
อืมมม คิดมากระวังเห็นภาพหลอนนะ
แจ้งลบกระทู้ หรือ ลบผู้ตอบกลับ ตอบกลับโดย : WhiteRabbit IP ADDRESS : 202.44.8.100 , , 10.50.1.24




« Reply #3 เมื่อ 15/07/2007 , 04:17:34 » Edit
ต๊ะว่า มาสนทนานอกบอร์ดก็ได้นะเรื่องนี้ แต่ไหนๆก็ถามมา -5 mod 3 จะหารได้ -1 ครั้ง ดังนั้น ต้องเพิ่มอีก -2 ถ้าจับหมุนจากคำตอยที่เป็นไปได้คือ 0 - 2 ก็จะหมุนจาก 0 ไป 2 ที (จากคำตอบ -2)เป็น 2 และ 1 นั่นคือ ได้คำตอบ 1 นั่นเอง - -" งงมะ
apichoke47@hotmail.com
ตอบกลับกระทู้นี้
  ไอคอนข้อความ :
** ชื่อ : สมัครสมาชิก : เข้าสู่ระบบ
** Security Code : ! ใส่ Code ตามที่ปรากฏที่ภาพด้านข้าง
กรุณากด F5 หาก Security Code ไม่แสดงผล
  อีเมล์ :
  รูปภาพประกอบ : ขนาดไม่เกิน 100KB **สมาชิกเท่านั้น
(BBZnet.com เพิ่มเนื้อที่เก็บภาพให้แต่ละบอร์ดมากถึง 1GB ต้องการมีเว็บบอร์ดของตัวเอง คลิกที่นี่เพื่อสมัครสมาชิก)
  ยินดีให้รูปประกอบนี้ ไปให้บริการ ส่งรูปภาพเข้ามือถือ ยินดี ไม่ยินดี
** ข้อความ :

ไอคอนอื่นๆ
  ใช้ไอคอน
B i U URL CENTER IMG Li Font QUOTE Special Tag
( เปลี่ยนไปใช้งานแบบ HTML Editor Mode, ต้องการ IE6+ และเปิดใช้งาน Java Script )
    คำเตือน
  • การแอบอ้างใช้ชื่อบุคคลซึ่งอาจทำให้บุคคลนั้นเกิดความเสียหาย อาจถูกดำเนินคดีทางกฏหมายได
  • การโพสรูปภาพที่ไม่เหมาะสม หรือ ไม่ได้รับอนุญาตจากเจ้าของภาพ อาจถูกดำเนินคดีทางกฏหมายได้
  • หากพบเห็นรูปภาพหรือกระทู้ที่ไม่เหมาะสมสามารถเมล์เข้ามาได้ที่ webmaster@bbznet.com โดยระบุ subject "กระทู้ไม่เหมาะสม" พร้อมทั้งระบุ ADDRESS ของเว็บบอร์ด