ขั้นตอนวิธีแบบยุคลิด

จาก testwiki
รุ่นแก้ไขเมื่อ 16:35, 6 มกราคม 2568 โดย imported>อมฤตาลัย
(ต่าง) ←รุ่นแก้ไขก่อนหน้า | รุ่นแก้ไขล่าสุด (ต่าง) | รุ่นแก้ไขถัดไป→ (ต่าง)
ไปยังการนำทาง ไปยังการค้นหา

แม่แบบ:ลิงก์ไปภาษาอื่น แม่แบบ:ใช้ปีคศ

วิธีของยุคลิดสำหรับหาตัวหารร่วมมาก (หรม.) ของความยาวเริ่มต้น BA และ DC ซึ่งต่างนิยามให้เป็นพหุคูณของความยาว"หน่วย"เดียวกัน เพราะว่า DC สั้นกว่าจึงใช้"วัด" BA แต่เพียงครั้งเดียวเพราะเศษ EA น้อยกว่า CD ใช้ EA วัดความยาว DC ที่สั้นกว่าสองครั้ง จะเหลือเศษ FC สั้นกว่า EA แล้วใช้ FC วัดความยาว EA สามครั้ง เพราะว่าขั้นตอนนี้ไม่มีเศษ จึงจบโดยมี FC เป็น หรม. ด้านขวาเป็นตัวอย่างของนิโคมาคัสโดยจำนวน 49 และ 21 ให้ผลลัพธ์ค่าตัวหารร่วมมากเป็น 7 (ประยุกต์จาก Heath 1908:300)

ในวิชาคณิตศาสตร์ ขั้นตอนวิธีแบบยุคลิด (แม่แบบ:Langx)แม่แบบ:Ref label หรือ ขั้นตอนวิธีของยุคลิด เป็นวิธีคำนวณตัวหารร่วมมาก (หรม.) ของจำนวนเต็มสองจำนวน ตั้งชื่อตามยุคลิด นักคณิตศาสตร์ชาวกรีกผู้อธิบายทฤษฎีนี้ใน อิลิเมนต์ของยุคลิด เล่ม VII และ X[1]

ตัวหารร่วมมากของจำนวนเต็มสองจำนวนคือจำนวนเต็มมากที่สุดที่หารทั้งสองจำนวนนั้นได้โดยไม่เหลือเศษ

ขั้นตอนวิธีแบบยุคลิดเริ่มต้นด้วยจำนวนเต็มบวกคู่หนึ่ง แล้วสร้างจำนวนคู่ใหม่ประกอบด้วยจำนวนที่น้อยกว่าและผลต่างระหว่างจำนวนทั้งสอง จากนั้นทำซ้ำจนจำนวนทั้งสองเท่ากัน จำนวนในขั้นตอนสุดท้ายเป็นตัวหารร่วมมากของจำนวนเต็มบวกเริ่มต้น

หลักการสำคัญคือ หรม. ไม่เปลี่ยนค่าถ้านำจำนวนที่น้อยกว่าลบจำนวนที่มากกว่า เช่น หรม. ของ 252 และ 105 เท่ากับ หรม. ของ 147 (= 252 − 105) และ 105 จำนวนที่มากกว่าถูกลดลดค่าลงเสมอ ทำให้การทำวิธีนี้ซ้ำได้จำนวนที่เล็กลง การซ้ำนี้จึงจบอย่างแน่นอนเมื่อทั้งสองจำนวนมีค่าเท่ากัน (ถ้าทำอีกหนึ่งครั้ง จำนวนใดจำนวนหนึ่งจะเป็น 0)

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

ขั้นตอนวิธีของยุคลิดมีการประยุกต์ใช้ในทางทฤษฎีและปฏิบัติ อาจใช้ก่อกำเนิดจังหวะดนตรีที่สำคัญหลายรูปแบบที่พบในวัฒนธรรมต่าง ๆ ทั่วโลก[2] ขั้นตอนวิธีนี้เป็นส่วนประกอบสำคัญของการเข้ารหัสอาร์เอสเอ (การเข้ารหัสลับแบบกุญแจอสมมาตรที่ใช้ทั่วไปในการพาณิชย์อิเล็กทรอนิกส์) ขั้นตอนวิธีแบบยุคลิดใช้แก้สมการไดโอแฟนไทน์แบบรูปแบบ เช่นการหาจำนวนที่สอดคล้องกับสมภาคหลายชุด (ทฤษฎีบทเศษเหลือของจีน) หรือตัวผกผันการคูณในฟิลด์จำกัด, ใช้สร้างเศษส่วนต่อเนื่อง, ใช้หาจำนวนรากจริงของพหุนามโดยวิธีโซ่ของสเติร์ม และในขั้นตอนวิธีการแยกตัวประกอบของจำนวนเต็มสมัยใหม่ และที่สำคัญ ขั้นตอนวิธีของยุคลิดเป็นเครื่องมือสำหรับพิสูจน์ทฤษฎีบทในทฤษฎีจำนวน เช่น ทฤษฎีบทผลรวมกำลังสองของลากรองจ์และทฤษฎีบทมูลฐานของเลขคณิต

ถ้าปรับปรุงขั้นตอนวิธีให้ใช้เศษหารจากวิธีหารแบบยุคลิดแทนที่จะเป็นการลบ ขั้นตอนวิธีของยุคลิดคำนวณค่าตัวหารร่วมมากของจำนวนขนาดใหญ่อย่างมีประสิทธิภาพ โดยใช้ขั้นตอนวิธีการหารเป็นจำนวนครั้งไม่เกินห้าเท่าของจำนวนหลักของจำนวนขนาดเล็กกว่า (ในฐานสิบ) ขั้นตอนวิธีแบบปรับปรุงนี้พิสูจน์ได้โดย แม่แบบ:Ill เมื่อปี ค.ศ. 1844 นับเป็นจุดริเริ่มการศึกษาทฤษฎีความซับซ้อนในการคำนวณ และในคริสต์ศตวรรษที่ 20 มีการพัฒนาวิธีเพิ่มประสิทธิภาพในรูปแบบอื่นเพิ่มขึ้นมา

เมื่อย้อนขั้นตอนวิธีแบบยุคลิด ตัวหารร่วมมากสามารถเขียนในรูปผลรวมเชิงเส้นของสองจำนวนที่นำมาดำเนินการ โดยที่แต่ละจำนวนคูณกับจำนวนเต็ม เช่น ตัวหารร่วมมากของ 252 และ 105 คือ 21 และ แม่แบบ:Nowrap สมบัตินี้เรียกว่าเอกลักษณ์ของเบซู

พื้นฐาน — ตัวหารร่วมมาก

แม่แบบ:Main

ขั้นตอนวิธีแบบยุคลิดคำนวณค่าตัวหารร่วมมาก (หรม.) ของจำนวนธรรมชาติสองจำนวน a และ b ค่าตัวหารร่วมมาก g เป็นจำนวนธรรมชาติค่ามากสุดที่หารทั้ง a และ b ลงตัว คำที่มีความหมายเหมือนกับ หรม. ได้แก่ ตัวประกอบร่วมค่ามากสุด (แม่แบบ:Langx), ตัวประกอบร่วมค่ามากสุด (แม่แบบ:Langx) และ greatest common measure (GCM) ตัวหารร่วมมากมักเขียนแทนด้วย gcd(ab) หรือ (ab),[3] แม้ว่าสัญลักษณ์แบบหลังใช้สำหรับความคิดรวบยอดทางคณิตศาสตร์อีกหลายอย่าง เช่น เวกเตอร์พิกัดสองมิติ

ถ้า gcd(ab) = 1 แล้ว a กับ b เป็นจำนวนเฉพาะสัมพัทธ์[4] ความเป็นจำนวนเฉพาะสัมพัทธ์ไม่ได้บ่งบอกว่า a หรือ b เป็นจำนวนเฉพาะเองแต่อย่างใด[5] เช่น 6 และ 35 ต่างไม่ใช่จำนวนเฉพาะ เพราะต่างมีตัวประกอบเฉพาะจำนวนละสองตัว: 6 = 2 × 3 and 35 = 5 × 7 อย่างไรก็ตาม 6 และ 35 เป็นจำนวนเฉพาะสัมพัทธ์ ไม่มีจำนวนธรรมชาตินอกเหนือจาก 1 หารทั้ง 6 และ 35 ลงตัว เพราะไม่มีตัวประกอบเฉพาะร่วมกัน

"Tall, slender rectangle divided into a grid of squares. The rectangle is two squares wide and five squares tall."
สี่เหลี่ยมผืนผ้ากว้าง 24 ยาว 60 ประกอบด้วยสี่เหลี่ยมขนาดด้านละ 12 จำนวนสิบรูป ซึ่ง 12 คือตัวหารร่วมมากของ 24 และ 60 ในกรณีทั่วไป สี่เหลี่ยมผืนผ้ากว้าง a ยาว b จะแบ่งเป็นสี่เหลี่ยมจัตุรัสย่อยด้านละ c ได้เฉพาะในกรณีที่ c เป็นตัวหารร่วมของ a และ b

ให้ g = gcd(a, b) จากการที่ a และ b เป็นพหุคูณของ g สามารถเขียนในรูป a = mg และ b = ng และไม่มีจำนวนเต็ม G ที่มากกว่า g ที่ทำให้ข้อความดังกล่าวเป็นจริง m และ n ต้องเป็นจำนวนเฉพาะสัมพัทธ์ เพราะหากมีตัวประกอบร่วมของ m และ n จะทำให้ g มีค่ามากขึ้น ดังนั้นจำนวนเต็ม c ใด ๆ ที่หาร a และ b ลงตัว จะต้องหาร g ลงตัวด้วย ตัวหารร่วมมาก g ของ a และ b คือตัวหารร่วมบวกเพียงหนึ่งตัวของ a และ b ที่หารด้วยตัวหารร่วมอื่น c ลงตัว

ตัวหารร่วมมากสามารถอธิบายได้ด้วยการสมมติสี่เหลี่ยมผืนผ้ากว้าง a ยาว b และตัวหารร่วม c ที่หาร a และ b ลงตัว ด้านของสี่เหลี่ยมสามารถแบ่งเป็นส่วนย่อยยาว c ซึ่งแบ่งสี่เหลี่ยมผืนผ้าเป็นตารางสี่เหลี่ยมจัตุรัสย่อยยาวด้านละ c โดยตัวหารร่วมมาก g คือค่าที่มากที่สุดที่เป็นไปได้ของ c ตัวอย่างดังภาพคือสี่เหลี่ยมผืนผ้ากว้าง 24 ยาว 60 สามารถแบ่งได้เป็นตารางของสี่เหลี่ยมจัตุรัส 1 × 1, สี่เหลี่ยมจัตุรัส 2 × 2, สี่เหลี่ยมจัตุรัส 3 × 3, สี่เหลี่ยมจัตุรัส 4 × 4, สี่เหลี่ยมจัตุรัส 6×6 หรือสี่เหลี่ยมจัตุรัส 12 × 12 ดังนั้น 12 คือตัวหารร่วมมากของ 24 และ 60 โดยสี่เหลี่ยมผืนผ้ากว้าง 24 ยาว 60 สามารถแบ่งเป็นตารางของสี่เหลี่ยมจัตุรัสยาวด้านละ 12 ที่มีสี่เหลี่ยมจัตุรัส 2 รูปติดด้านกว้าง (24/12 = 2) และสี่เหลี่ยมจัตุรัส 5 รูปติดด้านยาว (60/12 = 5)

ตัวหารร่วมมากของสองจำนวน a และ b คือผลคูณของตัวประกอบเฉพาะที่สองจำนวนนี้มีร่วมกัน โดยตัวประกอบเฉพาะหนึ่งค่าสามารถนำมาคูณได้หลายรอบ ตราบที่ผลคูณของตัวประกอบเหล่านี้หาร a และ b ลงตัว ตัวอย่างเช่น 1386 แยกตัวประกอบได้เป็น 2 × 3 × 3 × 7 × 11 และ 3213 แยกตัวประกอบได้เป็น 3 × 3 × 3 × 7 × 17 ตัวหารร่วมมากของ 1386 และ 3213 จึงเท่ากับ 63 = 3 × 3 × 7 ซึ่งก็คือผลคูณของตัวประกอบเฉพาะร่วม ถ้าสองจำนวนไม่มีตัวประกอบเฉพาะร่วมกัน ตัวหารร่วมมากคือ 1 (เท่ากับค่าผลคูณว่าง) หรือก็คือทั้งสองจำนวนนั้นเป็นจำนวนเฉพาะสัมพัทธ์ ข้อได้เปรียบของขั้นตอนวิธีแบบยุคลิดคือสามารถหาค่าตัวหารร่วมมากโดยไม่ต้องหาตัวประกอบเฉพาะร่วม

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

แม่แบบ:Math

ดังนั้นขั้นตอนวิธีแบบยูคลิดที่หาหรม.ของสองจำนวนจะสามารถหา หรม. ของหลายจำนวนได้ด้วยเช่นกัน

คำอธิบาย

กระบวนการ

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

แต่ละขั้นตอนเริ่มด้วยเศษสองจำนวนที่มีค่าไม่เป็นลบ rk−1 และ rk−2 เนื่องจากวิธีการนี้จะทำให้เศษมีค่าลดลงในทุกขั้นตอนเสมอ rk−1 มีค่าน้อยกว่าเศษตัวก่อน rk−2 เป้าหมายของขั้นตอนที่ k คือหาผลหาร qk และเศษ rk ที่สอดคล้องกับสมการ

rk2=qkrk1+rk

จะได้ว่า 0 ≤ rk < rk−1 กล่าวได้ว่า จำนวนที่มากกว่า rk−2 ถูกลบด้วยพหุคูณของจำนวนที่น้อยกว่า rk−1 จนกว่าเศษ rk จะมีค่าน้อยกว่า rk−1

ในขั้นแรก (k = 0) เศษ r−2 และ r−1 มีค่าเท่ากับ a และ b ตามลำดับ ในขั้นต่อมา (k = 1) เศษมีค่าเท่ากับ b และเศษ r0 ของขั้นแรก ทำแบบนี้ต่อไปเรื่อย ๆ ขั้นตอนวิธีดังกล่าวเขียนออกมาในรูปแบบลำดับของสมการได้ว่า

a=q0b+r0b=q1r0+r1r0=q2r1+r2r1=q3r2+r3

ถ้า a มีค่าน้อยกว่า b ให้สลับตัวเลขในขั้นแรก ตัวอย่างคือ ถ้า a < b ผลหารในขั้นแรก q0 จะมีค่าเท่ากับศูนย์ และเศษ r0 มีค่าเท่ากับ a ดังนั้น rk จะมีค่าน้อยกว่า rk−1 สำหรับทุก k ≥ 0

เพราะเศษมีค่าลดลงในทุกขั้นตอน แต่ไม่สามารถเป็นมีค่าเป็นลบ เศษ rN จึงจะต้องเท่ากับศูนย์ในสักขั้นตอน

การพิสูจน์ความถูกต้อง

ความถูกต้องของขั้นตอนวิธีแบบยูคลิดสามารถพิสูจน์ได้โดยสองขั้นตอน ในขั้นตอนแรก เห็นได้ว่าเศษตัวสุดท้ายที่ไม่เท่ากับศูนย์ rN−1 จะหารทั้ง a และ b ลงตัว เพราะมันเป็นตัวหารร่วม จึงมีค่าน้อยกว่าหรือเท่ากับตัวหารร่วมมาก g และในขั้นตอนที่สอง เห็นได้ว่าตัวหารร่วมใด ๆ ของ a และ b (รวมถึงตัวหารร่วมมาก g ด้วย) ต้องหาร rN−1 ลงตัว ดังนั้น g ต้องมีค่าน้อยกว่าหรือเท่ากับ rN−1 ข้อสรุปสองอันนี้ไม่แน่นอน เว้นแต่ rN−1 = g

เพื่อแสดงให้เห็นว่า rN−1 หารทั้ง a และ b ลงตัว (ขั้นแรก) และ rN−1 หาร rN−2 ลงตัว

แม่แบบ:Math

เพราะเศษตัวสุดท้าย rN คือศูนย์ ทำให้ rN−1 หาร rN−3 ลงตัวด้วย

แม่แบบ:Math
แม่แบบ:Math

ตัวอย่างการใช้งาน

Animation in which progressively smaller square tiles are added to cover a rectangle completely.
แอนิเมชั่นแสดงขั้นตอนวิธีแบบยุคลิดโดยใช้วิธีการลบ แรกเริ่ม สี่เหลี่ยมผืนผ้ามีขนาด a = 1071 และ b = 462 ต่อมา สี่เหลี่ยมจัตุรัสขนาด 462×462 ถูกวางลงไป ทำให้เหลือสี่เหลี่ยมพืนผ้าขนาด 462×147 โดยสี่เหลี่ยมพืนผ้านี้จะถูกวางทับโดยสี่เหลี่ยมจัตุรัสขนาด 147×147 จนกระทั่งเหลือสี่เหลี่ยมพื้นผ้าขนาด 21×147 ที่เหลือก็นำสี่เหลี่ยมจัตุรัสขนาด 21×21 มาวางให้ครบ ทำให้ไม่เหลือพื้นที่ที่ยังไม่ได้ปิด จึงสรุปได้ว่า ขนาดของสี่เหลี่ยมจัตุรัสที่เล็กที่สุด (21) คือ ห.ร.ม. ของ 1071 และ 462

เพื่อให้เห็นภาพ ขั้นตอนวิธีแบบยุคลิดสามารถนำมาใช้หาตัวหารร่วมมากของ a = 1071 และ b = 462 ได้ เริ่มต้นด้วย นำ 1071 เป็นตัวตั้ง ลบกับตัวคูณของ 462 จนกว่าเศษจะน้อยกว่า 462 ซึ่งเมื่อพิจารณาแล้ว การคูณด้วย 2 นั้นสามารถนำมาใช้ในการลบออกได้ (q0 = 2) โดยมีเศษคือ 147

แม่แบบ:Math

ต่อมา ตัวคูณของ 147 จะถูกลบออกจาก 462 จนกว่าเศษจะมีค่าน้อยกว่า 147 เมื่อพิจารณาแล้ว การคูณด้วย 3 นั้นสามารถนำมาใช้ในการลบออกได้

แม่แบบ:Math

ต่อมา ตัวคูณของ 21 จะถูกลบออกจาก 147 จนกว่าเศษจะมีค่าน้อยกว่า 21 ซึ่งการคูณด้วย 7 นั้นสามารถนำมาใช้ในการลบออกได้ (q2 = 7) ไม่เหลือเศษแล้ว

แม่แบบ:Math
ขั้นที่ k สมการ ผลหาร (q) และเศษเหลือ (r)
0 แม่แบบ:Math แม่แบบ:Math และ แม่แบบ:Math
1 แม่แบบ:Math แม่แบบ:Math และ แม่แบบ:Math
2 แม่แบบ:Math แม่แบบ:Math และ แม่แบบ:Math; อัลกอริทึมจบลง

การอธิบายเป็นภาพ

เราสามารถทำขั้นตอนวิธีแบบยูคลิดให้เห็นภาพได้ โดยใช้วิธีคล้ายกับการปูกระเบื้องในการหาตัวหารร่วมมาก[6] สมมุติว่าเราต้องการปูพื้นที่สี่เหลี่ยมผืนผ้าขนาด a×b โดยใช้กระเบื้องสี่เหลี่ยมจัตุรัส โดยที่ a เป็นค่าที่มีค่ามากกว่าอีกจำนวน เริ่มแรก เราจะปูโดยใช้กระเบื้องสี่เหลี่ยมจัตุรัสขนาด b×b แต่ว่า กลับเหลือพื้นที่ที่ปูไม่ได้ มีขนาดเป็น r0×b โดยที่ r0<b เราก็เลยเปลี่ยนไปใช้กระเบื้องสี่เหลี่ยมจัตุรัสขนาด r0×r0 แทน แต่ก็ยังปูพื้นที่ได้ไม่ครบอีก เหลือพื้นที่เป็น r1×r0 เราก็เลยเปลี่ยนไปใช้กระเบื้องขนาด r1×r1 แทน ทำแบบนี้ซ้ำไปเรื่อย ๆ จนกระทั่งไม่เหลือพื้นที่ที่ยังไม่ได้ปู นั่นคือ เมื่อกระเบื้องสี่เหลียมจัตุรัสสามารถปูพื้นที่ที่ยังไม่ได้ปูในขั้นที่แล้วได้ทั้งหมด โดยความยาวของด้านของสี่เหลี่ยมจัตุรัสที่เล็กที่สุดก็คือตัว ห.ร.ม. ของขนาดของสี่เหลี่ยมรูปต้นแบบนั่นเอง เช่น กระเบื้องสี่เหลี่ยมจัตุรัสขนาดเล็กที่สุดในรูปคือ 21×21 (ในรูปแสดงโดยใช้สีแดง) และ 21 เป็นตัวหารร่วมมากของ 1071 และ 462 ซึ่งเป็นรูปสี่เหลี่ยมต้นฉบับ (แสดงโดยใช้สีเขียว)

การหารแบบยูคลิด

แม่แบบ:Main

ในทุกขั้นตอน k ขั้นตอนวิธีแบบยุคลิดคำนวณผลหาร qk และเศษ rk จากตัวเลขสองตัว rk−1 และ rk−2

แม่แบบ:Math

โดยที่ rk เป็นจำนวนเต็มที่ไม่เป็นลบ และมีค่าน้อยกว่าค่าสัมบูรณ์ของ rk−1 โดยมีทฤษฏีที่รับรองว่าขั้นตอนวิธีแบบยุคลิดจะมีผลหารและเศษเสมอ

ในขั้นตอนวิธีแบบยุคลิดแบบดั้งเดิม ผลหารและเศษหาได้จากการลบซ้ำ ๆ นั่นคือ

แม่แบบ:Math

การนำไปใช้งาน

การนำไปใช้งานของขั้นตอนวิธีแบบยูคลิดจะถูกเขียนในรูปแบบโค้ดเทียม

function gcd(a, b)
    while b ≠ 0
        t := b
        b := a mod b
        a := t
    return a
function gcd(a, b)
    while a ≠ b 
        if a > b
            a := a − b
        else
            b := b − a
    return a

ในรูปแบบเรียกซ้ำ[7] จะขึ้นอยู่กับความเท่ากันของตัวหารร่วมมากของเศษเหลือต่อเนื่อง โดยมีเงื่อนไขการหยุดคือ gcd(rN−1, 0) = rN−1

function gcd(a, b)
    if b = 0
        return a
    else
        return gcd(b, a mod b)

(หากค่าที่รับมาเป็นลบ หรือฟังก์ชัน mod อาจให้ค่าที่ติดลบ ต้องเปลี่ยน "return a" เป็น "return max(a, −a)")

พัฒนาการทางประวัติศาสตร์

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

ขั้นตอนวิธีแบบยุคลิดเป็นหนึ่งในขั้นตอนวิธีที่เก่าแก่ที่สุดที่ใช้กันอย่างแพร่หลาย[8] ซึ่งปรากฏในแม่แบบ:Ill (300 ปีก่อนคริสต์ศักราช) โดยเฉพาะในหนังสือเล่มที่ 7 (ประพจน์ที่ 1-2) และในหนังสือเล่มที่ 10 (ประพจน์ที่ 2-3) ในหนังสือเล่มที่ 7 ขั้นตอนวิธีถูกสร้างขึ้นเพื่อใช้กับจำนวนเต็ม แต่ในหนังสือเล่มที่ 10 ได้นำไปใช้กับความยาวส่วนของเส้นตรง (ในการใช้สมัยใหม่นี้ อาจพูดได้ว่ามันถูกสร้างขึ้นเพื่อใช้กับจำนวนจริง แต่ในอดีต ความยาว พื้นที่ และปริมาตร ซึ่งนับว่าเป็นจำนวนจริงในปัจจุบัน ไม่ได้ถูกวัดด้วยหน่วยเดียวกันและไม่ได้มีหน่วยธรรมชาติเป็นของตนเอง อาจกล่าวได้ว่าแนวคิดเกี่ยวกับจำนวนจริงไม่เป็นที่รู้จักในขณะนั้น) ขั้นตอนวิธีถัดมานั้นเกี่ยวกับเรขาคณิต ห. ร. ม. ของความยาว a และ b สอดคล้องกับความยาวที่มากที่สุด g ซึ่งวัด a และ b กล่าวคือ ความยาว a และ b ทั้งคู่ต่างก็เป็นพหุคูณของความยาว g

ขั้นตอนวิธีนี้อาจไม่ได้ถูกคิดค้นโดยยุคลิด ผู้ซึ่งรวบรวมผลลัพธ์จากนักคณิตศาสตร์ในหนังสือ เอเลเมนส์ ของเขา[9][10] นักคณิตศาสตร์และประวัติศาสตร์ แม่แบบ:Ill ได้เสนอแนะว่า เนื้อหาในหนังสือเล่มที่ 7 ได้รับมาจากตำราเรียนเกี่ยวกับทฤษฎีจำนวน ซึ่งเขียนโดยนักคณิตศาสตร์ในโรงเรียนของพีทาโกรัส[11] ขั้นตอนวิธีอาจเป็นที่รู้จักจาก แม่แบบ:Ill (ราว 375 ปีก่อนคริสต์ศักราช)[8][12] ขั้นตอนวิธีนี้อาจเกิดขึ้นก่อน Eudoxus[13][14] พิจารณาจากการใช้ศัพท์เฉพาะ ἀνθυφαίρεσις (anthyphairesis หรือการลบส่วนกลับ) ในงานของยุคลิดและแอริสตอเติล[15]

หลายศตวรรษต่อมา ขั้นตอนวิธีของยุคลิดถูกค้นพบทั้งในประเทศอินเดียและจีน[16] โดยแรกเริ่มเพื่อแก้ปัญหาแม่แบบ:Ill ซึ่งเกิดขึ้นในดาราศาสตร์และทำให้สามารถสร้างปฏิทินที่แม่นยำ ในช่วงท้ายศตวรรษที่ 5 นักคณิตศาสตร์และดาราศาสตร์ชาวอินเดีย อารยภัฏ ได้อธิบายขั้นตอนวิธีว่าเป็น "เครื่องบด"[17] ซึ่งอาจมาจากประสิทธิภาพของมันในการแก้ปัญหาสมการไดโอแฟนไทน์[18] ถึงแม้ว่ากรณีพิเศษของแม่แบบ:Ill จะถูกอธิบายในหนังสือจีนชื่อ แม่แบบ:Ill โดยผลเฉลยทั่วไปถูกเผยแพร่โดย แม่แบบ:Ill ในหนังสือของเขาชื่อ Shushu Jiuzhang (數書九章 แม่แบบ:Ill)[19] ขั้นตอนวิธีแบบยุคลิดถูกอธิบายในเชิงตัวเลขครั้งแรกและเป็นที่รู้จักอย่างมากในยุโรปในหนังสือ Problèmes plaisants et délectables ฉบับที่ 2 ของ แม่แบบ:Ill (Pleasant and enjoyable problems, 1624)[17] ในยุโรป ขั้นตอนวิธีแบบยุคลิดถูกใช้เพื่อแก้ปัญหาสมการไดโอแฟนไทน์และใช้เพื่อพัฒนาเศษส่วนต่อเนื่อง แม่แบบ:Ill ถูกตีพิมพ์โดยนักคณิตศาสตร์ชาวอังกฤษชื่อ แม่แบบ:Ill[20] ซึ่งเชื่อว่ามันเกิดมาจาก แม่แบบ:Ill เพื่อเป็นวิธีสำหรับคำนวณเศษส่วนต่อเนื่องอย่างมีประสิทธิภาพ[21]

ในศตวรรษที่ 19 ขั้นตอนวิธีแบบยุคลิดนำไปสู่การพัฒนาระบบจำนวนแบบใหม่ เช่น แม่แบบ:Ill และแม่แบบ:Ill ในปี 1815 คาร์ล ฟรีดริช เกาส์ได้ใช้ขั้นตอนวิธีแบบยุคลิดในการสาธิตการแยกตัวประกอบได้อย่างเดียวในแม่แบบ:Ill ถึงแม้ผลงานของเขาจะได้ตีพิมพ์ครั้งแรกในปี 1832 ก็ตาม[22] เกาส์ได้พูดถึงขั้นตอนวิธีในหนังสือ แม่แบบ:Ill ของเขา (ถูกตีพิมพ์ในปี 1801) แต่ใช้เป็นเพียงวิธีสำหรับเศษส่วนต่อเนื่อง[16] แม่แบบ:Ill เป็นคนแรกที่อธิบายขั้นตอนวิธีแบบยุคลิดเพื่อเป็นพื้นฐานสำหรับทฤษฏีจำนวนอื่น ๆ[23] Lejeune Dirichlet ได้ระบุว่าผลลัพธ์ของทฤษฎีจำนวนหลายอัน เช่น การแยกตัวประกอบได้อย่างเดียว (Unique factorization) จะเป็นจริงสำหรับระบบจำนวนใด ๆ ที่สามารถใช้ขั้นตอนวิธีแบบยุคลิดได้[24] การบรรยายของ Lejeune Dirichlet ในหัวข้อทฤษฎีจำนวนถูกแก้ไขและต่อเติมโดย แม่แบบ:Ill ผู้ใช้ขั้นตอนวิธีของยุคลิดในการศึกษาจำนวนเชิงพีชคณิต ซึ่งเป็นรูปแบบจำนวนแบบใหม่ ตัวอย่างเช่น Dedekind เป็นคนแรกที่พิสูจน์ แม่แบบ:Ill โดยใช้การแยกตัวประกอบได้อย่างเดียวของจำนวนเต็มเกาส์เซียน[25] Dedekind ยังนิยามแนวคิดของแม่แบบ:Ill หรือระบบจำนวนซึ่งสามารถนิยามขั้นตอนวิธีแบบยุคลิดฉบับทั่วไป (ดังที่อธิบายด้านล่าง) ในทศวรรษปลายของศตวรรษที่ 19 ขั้นตอนวิธีแบบยุคลิดค่อย ๆ ถูกลดความสำคัญลงโดยทฤษฎี แม่แบบ:Ill ของ dedekind ซึ่งมีความทั่วไปมากขึ้น[26]

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

โดนัลด์ คนูธ, The Art of Computer Programming, เล่มที่ 2: Seminumerical Algorithms, พิมพ์ครั้งที่ 2 (1981), 318.

การประยุกต์ใช้อื่น ๆ ของขั้นตอนวิธีของยุคลิดถูกพัฒนาขึ้นในศตวรรษที่ 19 ในปี 1829 แม่แบบ:Ill ได้แสดงว่าขั้นตอนวิธีนั้นเป็นประโยชน์ในวิธี แม่แบบ:Ill ซึ่งใช้สำหรับการนับรากที่แท้จริงของพหุนามในช่วงที่สนใจ[27]

ขั้นตอนวิธีแบบยุคลิดเป็นแม่แบบ:Ill ซึ่งคือวิธีที่ใช้ในการหาความสัมพันธ์ของจำนวนเต็มในจำนวนจริงเทียบเท่า แม่แบบ:Ill ใหม่หลายอันได้ถูกพัฒนาขึ้น เช่น ขั้นตอนวิธีของ แม่แบบ:Ill และ R.W. Forcade (1979)[28] และ แม่แบบ:Ill[29][30]

ในปี 1969 Cole และ Davie ได้พัฒนาเกมผู้เล่นสองคนโดยมีพื้นฐานจากขั้นตอนวิธีแบบยุคลิด ชื่อว่า The Game of Euclid [31] ซึ่งมีกลยุทธ์ที่ดีที่สุด[32] ผู้เล่นจะเริ่มต้นจากกองหินซึ่งมี a และ b ก้อน เมื่อถึงตาของผู้เล่นแล้วจะทำการนำหินออกจากกองที่มีจำนวนมากกว่าเป็นจำนวนเท่ากับพหุคูณ m ของจำนวนหินในกองที่น้อยกว่า ดังนั้น ถ้าทั้งสองกองมีหิน x และ y ก้อนตามลำดับ เมื่อ x มากกว่า y ผู้เล่นคนต่อไปสามารถนำหินออกจากกองที่มีจำนวนหินมากกว่า ทำให้จำนวนหินลดจาก x ก้อนเหลือ x - my ก้อน ตราบเท่าที่ยังคงเป็นจำนวนเต็มที่ไม่ติดลบ ผู้ชนะคือผู้เล่นคนแรกที่ทำให้กองใดกองหนึ่งของตนเองเหลือหินเท่ากับ 0[33][34]

การประยุกต์ใช้ทางคณิตศาสตร์

เอกลักษณ์ของเบซู

เอกลักษณ์ของเบซูระบุว่าตัวหารร่วมมาก g ของจำนวนนับสองจำนวน a และ b สามารถเขียนเป็นผลรวมเชิงเส้นของจำนวนนับ a และ b ได้[35] กล่าวอีกนัยหนึ่ง คือ สามารถหาจำนวนนับ s และ t ที่ทำให้ g = sa + tb ได้เสมอ[36][37]

จำนวนนับ s และ t สามารถคำนวณได้จากผลหาร q0, q1, ... โดยการย้อนกลับลำดับของสมการในอัลกอริธึมของยุคลิด[38] โดยเริ่มต้นจากสมการรองสุดท้าย ซึ่งสามารถเขียน g ในรูปของผลหาร qN−1 และเศษที่เหลือสองตัวก่อนหน้า rN−2 และ rN−3 ได้ดังนี้

แม่แบบ:Math

เศษที่เหลือทั้งสองนั้นสามารถเขียนให้อยู่ในรูปของผลหารและเศษที่เหลือก่อนหน้าได้เช่นกัน

แม่แบบ:Math และ
แม่แบบ:Math

เมื่อแทนค่า rN−2 และ rN−3 ลงในสมการแรก จะได้ g เป็นผลรวมเชิงเส้นของเศษเหลือ rN−4 และ rN−5 การแทนที่สมการที่เหลือด้วยเศษที่เหลือก่อนหน้าสามารถทำต่อไปได้เรื่อย ๆ จนกว่าจะถึงจำนวนนับเดิม a และ b

แม่แบบ:Math
แม่แบบ:Math
แม่แบบ:Math

หลังจากแทนที่ส่วนที่เหลือทั้งหมด r0, r1, ... สมการสุดท้ายจะแสดงให้เห็นว่า g เป็นผลรวมเชิงเส้นของ a และ b คือ g = sa + tb จากเอกลักษณ์ของเบซู อัลกอริธึมข้างต้นจึงสามารถเขียนในรูปทั่วไปของแม่แบบ:Illได้

หมายเหตุ

แม่แบบ:Refbegin

แม่แบบ:Refend

อ้างอิง

แม่แบบ:รายการอ้างอิง

บรรณานุกรม

แหล่งข้อมูลอื่น

แม่แบบ:Commons category

  1. Thomas L. Heath, The Thirteen Books of Euclid's Elements, 2nd ed. [Facsimile. Original publication: Cambridge University Press, 1925], 1956, Dover Publications
  2. http://cgm.cs.mcgill.ca/~godfried/publications/banff.pdf
  3. แม่แบบ:Harvnb
  4. แม่แบบ:Harvnb
  5. แม่แบบ:Harvnb
  6. แม่แบบ:Cite journal
  7. แม่แบบ:Harvnb
  8. 8.0 8.1 แม่แบบ:Harvnb, p. 318
  9. แม่แบบ:Cite book
  10. แม่แบบ:Cite book
  11. แม่แบบ:Cite book
  12. แม่แบบ:Cite journal
  13. แม่แบบ:Cite book
  14. แม่แบบ:Cite book
  15. แม่แบบ:Cite journal
  16. 16.0 16.1 แม่แบบ:Harvnb
  17. 17.0 17.1 แม่แบบ:Harvnb
  18. แม่แบบ:Harvnb
  19. แม่แบบ:Harvnb
  20. แม่แบบ:Cite book
  21. แม่แบบ:Harvnb
  22. แม่แบบ:Cite journal Reprinted in แม่แบบ:Cite book and แม่แบบ:Cite book
  23. แม่แบบ:Harvnb
  24. แม่แบบ:Harvnb
  25. Richard Dedekind in แม่แบบ:Harvnb
  26. แม่แบบ:Harvnb
  27. แม่แบบ:Cite journal
  28. แม่แบบ:MathWorld
  29. แม่แบบ:Cite journal
  30. แม่แบบ:Cite journal
  31. แม่แบบ:Cite journal
  32. แม่แบบ:Cite journal
  33. แม่แบบ:Harvnb
  34. แม่แบบ:Cite book
  35. แม่แบบ:Cite book
  36. แม่แบบ:Harvnb
  37. แม่แบบ:Harvnb
  38. แม่แบบ:Harvnb
  39. แม่แบบ:Harvnb