Discreate 02 1 Algorithms Integers and...

21
.สุขสันต บัวฉิม โปรแกรมวิชาคอมพิวเตอร มหาวิทยาลัยราชภัฎลําปาง E-mail : [email protected] Tel. 0-19524746 Algorithms 21/08/49 บทที2, .สุขสันต บัวฉิม หนา 3 คําวา “Algorithm” นั้น ศัพทบัญญัติของราชบัณฑิตยสถานใชคําวา ขั้นตอนซึ่งถาจะขยายความอยางไมเปนทางการ ก็คือขั้นตอนวิธีการ แกไขปญหาเชิงคํานวณดวยดอมพิวเตอร ถึงแมวา “Algorithm” มีความหมายดังกลาว แตเปนคําที่มาจากคําวา “Al-Khwarizmi” ซึ่งเปนนักคณิตศาสตร เพื่อเปนใหเกียรตินัก คณิตศาสตรทานนี21/08/49 บทที2, .สุขสันต บัวฉิม หนา 4 คําวา “Algorithm” มาจากชื่อของนักคณิตศาสตรชาว เปอรเซีย Abu Ja'far Muhammad ibn Musa Al-Khwarizmi เกิดเมื่อประมาณป 780 ในเมือง Baghdad (now in Iraq) เสียชีวิตเมื่อประมาณป 850 เปนผูเขียนหนังสือเกี่ยวกับ เรื่องของจํานวนของชาวฮินดูและอาหรับ “Algoritmi de numero Indorum” (ภาษาลาติน) ซึ่งแปรวา “Al-khwarizmi on the Hindu Art of Reckoning” (ภาษาอังกฤษ) เขาเปนผู เริ่มใชเลขศูนยในระบบทศนิยม นอกจากนี้คําวา “algebra” ก็มาจากคําวา “al-jabr” ซึ่งเปนคําในชื่อหนังสือทาง พีชคณิตของเขาอีกเลมหนึ่ง เชนกัน http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Al-Khwarizmi.html

Transcript of Discreate 02 1 Algorithms Integers and...

Page 1: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

อ.สขสนต บวฉม

โปรแกรมวชาคอมพวเตอร มหาวทยาลยราชภฎลาปาง

E-mail : [email protected]

Tel. 0-19524746

Algorithms

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 3

• คาวา “Algorithm” นน ศพทบญญตของราชบณฑตยสถานใชคาวา

“ขนตอน” ซงถาจะขยายความอยางไมเปนทางการ กคอขนตอนวธการ

แกไขปญหาเชงคานวณดวยดอมพวเตอร

• ถงแมวา “Algorithm” มความหมายดงกลาว แตเปนคาทมาจากคาวา

“Al-Khwarizmi” ซงเปนนกคณตศาสตร เพอเปนใหเกยรตนก

คณตศาสตรทานน

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 4

• คาวา “Algorithm” มาจากชอของนกคณตศาสตรชาว

เปอรเซย Abu Ja'far Muhammad ibn Musa Al-Khwarizmi

เกดเมอประมาณป 780 ในเมอง Baghdad (now in Iraq)

เสยชวตเมอประมาณป 850 เปนผเขยนหนงสอเกยวกบ

เรองของจานวนของชาวฮนดและอาหรบ “Algoritmi de

numero Indorum” (ภาษาลาตน) ซงแปรวา “Al-khwarizmi

on the Hindu Art of Reckoning” (ภาษาองกฤษ) เขาเปนผ

เรมใชเลขศนยในระบบทศนยม นอกจากนคาวา “algebra”

กมาจากคาวา “al-jabr” ซงเปนคาในชอหนงสอทาง

พชคณตของเขาอกเลมหนง เชนกน

http://www-gap.dcs.st-and.ac.uk/~history/Mathematicians/Al-Khwarizmi.html

Page 2: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 5

• ศกษาจากตวอยาง

• ขอด กคอ ยงรตวอยางมาก กรแนวทางหลากหลายซงพรอมทจะประยกตกบ

ปญหาใหมทจะพบในอนาคต แตกม

• ขอเสย ทวาจะยดตดกบกลวธเกา ๆ ไมคอยยอมคดอะไรแผลง ๆ ใหม ๆ

(จงมกพบบอย ๆ แนวคดแปลก ๆ ใหม ๆ มาจากคนนอกวงการ)

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 6

• รจกขอปญหาทสนใจ

• รจกเลอกกลวธการออกแบบ

• รจกเลอกใชโครงสรางขอมลทเหมาะสม

• และทสาคญ ตองรจกวเคราะหดวยวาผลทไดออกแบบไวดเลวเพยงใด

• ดงนนกอนทจะเขาสเรองราวทางอลกอรทมนน ผเรยนจะตองมพนฐาน

ทางการเขยนโปรแกรม โครงสรางขอมล และ คณตศาสตรดสครต

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 7

• “อาน + คด + ทา + ถาม” ใหมากกวา “ฟง + บน + สอบ + ทง”

• วชาทางสาขานไมใชมานงฟง จา และกสอบ การศกษาจะไดผลด (ตอตว

นกเรยนเอง) กคอตองอาน คด ทา และถาม (สวนการเขาเรยนและการเขา

สอบนนเปนเรองของระเบยบและกฎเกณฑ) เราสามารถเจาะเนอหาใน

รายละเอยดจากการอานตารา ฝกสมองจากการคดระหวางการทาแบบฝกหด

ฝกฝมอจากการทาการบานการเขยนโปรแกรม และสรางความกระจางใน

เนอหาจากการถามและถกเถยงกบผอน

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 8

Page 3: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 9

• ทเราจะพดกนเปนปญหาทคานวณหาคาตอบได (computational problem)

หรออกนกหนงกคอปญหาทใชคอมพวเตอรแกไขหาคาตอบใหได

• อาทเชน ปญหาการหาตวนอยสด ปญหารการทดสอบจานวนเฉพาะ ปญหา

การใหสจดยอกของกราฟ ปญหาการหาตวหมมาก การเรยงลาดบขอมล และ

อน ๆ อกสารพด

• การบรรยายลกษณะของปญหา จะตอง

– ระบลกษณะของขอมลขาเขา (ขอมลทใชประมวลผล)

– ระบลกษณะของผลทตองการใหชดเจน

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 10

• ปญหาการหาคานอยทสด :

– ขอมลขาเขา : เซตของจานวนจรง S ={a1, a2, …, an}

– ผลทตองการ : ak โดยท ak ≤ aj สาหรบคา j =1, 2, …, n (คาทนอยทสดจากกลม

ของขอมลขาเขา)

• เชน

– ขอมลขาเขา : 1, 3, 2, 7, 9, 0, 3, 5

– ผลทตองการ : 0

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 11

• 1. ปญหาทางเซต ลาดบ และสตรง (set sequence and string problems) เชน

การเรยงลาดบ(sorting) การคน(searching) การเลอก(selection) การแบงสวน

(partitioning) เปนตน

• 2. ปญหาเชงจานวน (numerical problems) เชน การทดสอบความเปน

จานวนเฉพาะ(primality testing) การแยกตวประกอบ(factorization) การยก

กาลง(exponentiation) การคณเมทรกซ(matrix multiplication) การสราง

จานวนสม(random number generation) เปนตน

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 12

• 3. ปญหาทางกราฟ (graph problems) เชน สภาพเชอมโยง(connectivity)

ตนไมแบบทอดขามเลกสด(minimum spanning tree) วถสนสด(shortest path)

การไหลในขายงาน(network flow) การเดนทางของพนกงานขาย(traveling

salesperson) การใหสกราฟ(graph coloring) เปนตน

• 4. ปญหาทางเรขาคณตเชงคานวณ (computational geometry problems) เชน

เปลอกนน(convex hull) จดใกลกนทสด(closest point) การสามเหลยม

(triangulation) เปนตน

Page 4: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 13

• http://www.cse.unsw.edu.au/~lambert/java/3d/ConvexHull.html

• http://www.cse.unsw.edu.au/~lambert/java/3d/hull.html

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 14

• ถาอลกอรทม a ถกออกแบบไวแกปญหา p สงท a รบเปนขอมลขาเขา กคอ

ขอมลทเปนไปไดของ p

• ขอมลขาเขาตวหนง ๆ ของ p วาเปน “ตวอยางปญหา” หรอ “ตวอยางขอมล

ขาเขา” หรอ “Instance”

• เชน

{4, 3, 6, 7, 10, 44, 2, 5, 9} เปนตวอยางหนงของปญหาการหาคามากทสด

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 15

• ให f(n) เปนฟงกชนทแทนประสทธภาพของอลกอรทมหนง ดงนน

n คอ ขนาดของตวอยางปญหาทอลกอรทมนนนาไปใชประมวลผล

• ตวอยาง

{4, 3, 6, 7, 10, 44, 2, 5, 9} เปนตวอยางปญหาหนงทม n เทากบ 9 ตว

• ปญหาการหาคานอยทสด

– ขอมลขาเขา : {a1, a2, a3,…, an}

– ขนาดของตวอยางปญหา : ______n

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 16

• คอ ลาดบของขนตอนเชงคานวณซงแปลงตวอยางขอมลขาเขาของปญหา ไป

เปนผลลพธทตองการ

“ขนตอนตาง ๆ ตองสามารถแปลงไปเปนคาสงททางานดวยคอมพวเตอรได”

• อลกอรทมทด

– ใชสาหรบแกไขปญหาได

– ทางานไดถกตองเสมอทกกรณ

– การทางานตองมประสทธภาพ(มองเรองของเวลาทใชในการทางาน)

– งายตอการนาไปเขยนเปนโปรแกรม

Page 5: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 17

• สาหรบจานวนเตมบวก

01: findmin(int A[1..n])02: {03: min = A[1]04:05: for (i = 2 to n)06: if (A[i]<min) then min = A[i]07: Return min08: }

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 18

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 19 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 20

ทง 3 โปรแกรมนไดผลลพธ

เหมอนกน แตโปรแกรมไหน

นาใชมากทสด และ มหลกการ

พจารณาอยางไร

Page 6: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 21 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 22

• Linear search หรอ Sequential search

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 23 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 24

Page 7: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 25

• ใหคนหา 19 จากเทอมตอไปน 1 2 3 5 6 7 8 10 12 13 15 16 18 19 20 22,

• แบงเทอมออกเปน 2 เทอม

• 1 2 3 5 6 7 8 10 12 13 15 16 18 19 20 22, นาคาทมากทสดจากเทอมแรกมาเปรยบเทยบกบคาทเราตองการคนหา 10 < 19 จรง ใหขยบไปทเทอมสอง และกนามาแบงครงอก จะได

• 12 13 15 16 18 19 20 22, เปรยบเทยบ 16 < 19

• 18 19 20 22, เปรยบเทยบ 19 < 19

• 18 19, เปรยบเทยบ 18 < 19 ซงเปนเทอมสดทาย กทาใหออกจากวงรอบ และนามาเปรยบเทยบกบคา x วาเทากนหรอเปลา ถาเทากนก return คา ตาแหนงออกมา ถาไมเทา return คา 0 ออกมา

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 26

• List all the steps used by Algorithm 1 to find the maximum of the list

1, 8, 12, 9, 11, 2, 14, 5, 10, 4.

Primes Number

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 28

• นยาม จานวนเตมบวก p ทมคามากกวา 1 เปนจานวนเฉพาะ กตอเมอมแต 1

และ p เทานนทหาร p ลงตว

• สวนจานวนเตมทมคามากกวา 1 ทไมใชจานวนเฉพาะนน เรยกวา

จานวนประกอบ (Composite Number)

• เชน จานวนเฉพาะท นอยกวา 100 คอ 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31,

37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89 และ 97.

Page 8: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 29

• ถา n เปนจานวนประกอบแลว n ตองมตวประกอบเฉพาะตวหนงทมคา

ไมมากกวา

• พสจน : เนองจาก n เปนจานวนประกอบ เราสามารถเขยน n=ab ไดโดย

ท a และ b เปนจานวนเตม ≤ b < n จะพบวา a ≤ เพราะวา ถา

a > และ a ≤ b แลว ab > n ดงนน a ≤ ถา a เปนจานวนประกอบ

ตวประกอบเฉพาะของ a ยอมเปนตวประกอบเฉพาะของ n ดวย ดงนน

ตวประกอบเฉพาะของ n ตองมคาไมเกน

n

n

n

n

n

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 30

• จานวนเฉพาะเปนองคประกอบพนฐานของจานวนเตมทงหลาย กลาวคอ

เราสามารถเขยนจานวนเตมใดๆ ไดดวยผลคณของจานวนเฉพาะ (เรยกวา

เปนการแยกตวประกอบแบบจานวนเฉพาะ – prime factorization)

• เชน 15 = 3*5

1000 = 2 * 2 * 2 * 5 * 5 = 23 52

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 31

• จงแยกจานวนเฉพาะทตวประกอบกนแลวไดจานวนตอไปน 100, 641, 999

และ 1024

• 100 = 2 ∗ 2 ∗ 5 ∗ 5 = 2 5

• 641 = 641

• 999 = 3 ∗ 3 ∗ 3 ∗ 37 = 3 ∗• 1024 = 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 ∗ 2 10

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 32

• จงแยกจานวนเฉพาะทตวประกอบกนแลวได 7007

ตอบ

• 7007 / 7 = 1001

• 1001 / 7 = 143

• 143 / 11 = 13

• ∴ 7007 = 7 ∗ 7 ∗ 11 ∗ 13 = 2∗ ∗

Page 9: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

Greatest Common Divisors&

Least Common Multiples

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 34

• กาหนดให a และ b เปนจานวนเตม a หาร b ลงตว เมอ b = am โดยท m เปน

จานวนเตมจานวนหนง เราเรยก a วาตวหาร(divisor)

เราใชสญลกษณ

b / a หมายความวา ผลลพธของการหาร b ดวย a

a | b หมายความวา a หาร b ลงตว

a | b หมายความวา a หาร b ไมลงตว หมายความวา b = ma + r โดยท r

เปนเศษของการหาร 0 < r < a

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 35

• เราเรยก a วาเปนตวหารรวม (common divisor) ของจานวนเตม b และ c เมอ

a | b และ a | c สาหรบกรณท a เปนตวหารรวมทมคามากทสด เราเรยก a วา

ตวหารรวมมาก (Greatest Common Divisors) ของจานวนเตม b และ c เขยน

ยอ ๆ วา gcd(b, c)

• ตวอยาง

gcd(20, 15) = 5

gcd(13, 31) = 1

gcd(420, 21) = 21

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 36

• ในกรณท gcd(m, n) =1 หมายความวา m และ n ไมมตวหารทมากกวา 1

รวมกนเลยนน เราเรยก m และ n วา เฉพาะสมพทธ (relatively prime)

• ตวอยาง

gcd(84, 125) เปนจานวนเฉพาะสมพทธเพราะ

84 = 22 * 3 * 7

125 = 53

Page 10: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 37 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 38

• จงหา gcd(420, 21), gcd(15, 20) และ gcd(34, 55)

• ใชขนตอนวธแบบยคลคจะไดลาดบการหาดงน

gcd(420, 21) = gcd(21, 420) = gcd(0, 21) = 21

gcd(15, 20) =

gcd(34, 55)

gcd(5, 15) = gcd(0, 5) = 5

= gcd(21, 34) = gcd(13, 21) = gcd(8, 13) = gcd(5, 8)

= gcd(3, 5) = gcd(2, 3) = gcd(1, 2) = gcd(0, 1) = 1

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 39

• จงหา

• gcd(24, 36)

• gcd (17, 22)

• gcd(111, 201)

• gcd(1001, 1331)

• จงเขยน pseudo code หา Euclidean algorithm

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 40

Procedure gcd(a, b: positive integers)x := ay := bwhile x <> 0begin

y := xr := y mod xx := r

end {gcd(a, b) is y}

Page 11: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 41

),min(),min(2

),min(1 ...),gcd( 2211 nn ba

nbaba pppba =

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 42

• จากการแยกจานวนเฉพาะทเปนตวประกอบของ 120 และ 500 ได

120 = 23 *3*5 และ 500 = 22 * 53 นามาหา ห.ร.ม(gcd) ได

min(3, 2) min(1, 0) min(1, 3) 2 0 1

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 43

• .

),max(),max(2

),max(1 ...),( 2211 nn ba

nbaba pppbalcm =

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 44

• อะไรคอ ค.ร.น (lcm) ของ 23 35 72 และ 24 33

• ตอบ

3 5 2 4 3 max(3, 4) max(5, 3) max(2, 0) 4 5 2

Page 12: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 45

• What are the greatest common divisors and least common multiples of the

following pairs of integers?

• A. 22 * 33 * 55 , 25 * 33 * 52

• B. 2 * 3 * 5 * 7 * 11 * 13 , 211 * 39 * 11 * 1714

• C. 17, 1717

• D. 22 * 7 , 53 * 13

Representations of Integers

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 47

• ตวอยางเลขฐานทเราใชอยทกวนนคอ ฐาน 10

• 965 = 9*102 + 6*101 + 5*100

• จากฐาน 8 เปน ฐาน 10

• (245)8 = 2*82 + 4*8 + 5

= 128 + 32 + 5

= 165 ฐาน 10

ไมนยมเขยน

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 48

• (101011111)2 มคาเทาไหรในฐาน 10

• Solution:

(101011111)2 = 28 + 26 + 24 + 23 + 22 + 2 + 1

= 256 + 64 + 16 + 8 + 4 + 2 + 1

= 351

Page 13: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 49

• (2AEOB)16 มคาเทาไหรในฐาน 10

• Solution :

(2AEOB)16 = 2*164 + 10*163 + 14*162 + 0*16 + 11

= 175627

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 50

• (12345)10 มคาเทาไหรในฐาน 8

• Solution :

12345 = 8 * 1543 + 1

1543 = 8 * 192 + 7

192 = 8 * 24 + 0

24 = 8 * 3 + 0

3 = 8 * 0 + 3

∴ (12345)10 = (30071)8

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 51

Procedure base b expansions (n : positive integers)q := nk := 0while q <> 0begin

ak := q mod bq := ⎣q/b⎦

k := k + 1end {the base b expansions of n is (ak-1, …, a1, a0)b }

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 52

• สาหรบเลขฐาน 2 นน ในชดขอมลหนง ๆ เราจะเรยกวาเปนเซตของชด

ขอมล เชน a = (1101)2

b = (0101)2

• เราสามารถกระจายตาแหนงใหอยในรปของ array ไดดงน

n-1 n-2 1 0 2

n-1 n-2 1 0 2

Page 14: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 53

• ในการบวกเลขฐานทกชนดตองมตวทด (carry) ฐาน 2 ก เชนกน ในการบวก

เลขในเซต a และ b ให c คอ ตวทด และ s คอ ตวเกบคาตอบของ ai + bi

0 0 0 0

1 1 0 0 1

ไมมตวทด

มตวทด

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 54

• Add a = (1)2 and b = (0)2

จากสตร 0 0 0 0

1 + 0 = 0 * 2 +1

S0 = 1

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 55

• Add a = (110)2 , and b = (011)2

Solution: a0 + b0 = 0 + 1 = 0 * 2 + 1 | c0 = 0 , s0 = 1

a1 + b1 + c0 = 1 + 1 + 0 = 1 * 2 + 0 | c1 = 1 , s1 = 0

a2 + b2 + c1 = 1 + 0 + 1 = 1 * 2 + 0 | c2 = 1 , s2 = 0

s3 = c2 = 1

∴ a + b = (1001)2

a0 + b0 = c0 * 2 + s0

a1 + b1 + c0 = c1 * 2 + s1

1 1

1 1 0

0 1 1

1 0 0 121/08/49 บทท 2, อ.สขสนต บวฉม หนา 56

procedure add(a, b: จานวนเตมบวก (positive integers)){เราสามารถกระจายตาแหนงของเลขฐาน 2 ของ a และ b ได (an-1, an-2, …, a1, a0)2 และ (bn-1, bn-2, …, b1, b0)2 }

c := 0for j := 0 to n-1begin

d := ⎣(aj + bj + c)/2⎦

sj : = aj + bj + c - 2dc :=d

endsn := c{กระจายตาแหนงของผลรวม s คอ (sn, sn-1, …, s1, s0)2 }

Page 15: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 57

• จงเปลยนเลขตอไปนจากฐาน 10 เปน ฐาน 2

a. 231 b. 45 c. 532

• จงเปลยนเลขตอไปนจากฐาน 2 เปน ฐาน 10

a. 1 1111 b. 10 0000 0001 c. 1 0101 0101

• จงเปลยนเลขตอไปนจากฐาน 16 เปน ฐาน 10

a. 80E b. 135AB c. ABBA

Matrices

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 59

• นยาม คอ จานวนทจดอยในรปสเหลยมตามแนวนอนซงเรยกวา แถว

และแนวตง เมตรกซทมแนวนอน m แถว และมแนวตง n แนวตง เรา

เรยกวา เมตรกซขนาด m x n สญลกษณของเมตรกซ A คอ A = [aij]m x n

เมอ 1 <= i <= m, 1 <= j <= n และ aij คอ สมาชกทอยในตาแหนงท ( i, j)

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 60

• เมตรกซทจะบวก หรอลบกนนน จะตองเปนเมตรกซทมขนาดเทากน

เทานน เชน เมตรกซขนาด 3 x 3 บวกกน

Page 16: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 61 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 62

• นยาม ให A เปนเมตรกซขนาด m x k และ B เปนเมตรกซขนาด k x n ซง A

มจานวนเสนแนวตงเทากบจานวนแถวของ B ดงนน ผลคณของ A และ B

คอ เมตรกซทมาจากสมาชกจากเมตรกซ A แถวท i และ เมตรกซ B

เสนแนวตงท j

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 63 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 64

Page 17: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 65 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 66

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 67

• ไดแก เมตรกซทไดจากการเขยนเมตรกซ A ใหม โดยนาสมาชกในแถวท 1

ของ A ทงแถวมาเรยงเปนแนวตงท 1 ของเมตรกซใหม และนาสมาชกใน

แถวท 2 ของ A ทงแถวมาเรยงเปนแนวตงท 2 ของเมตรกซใหม และตอ ๆ

ไป เขยนแทนดวย

t

A At

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 68

• คอ เมตรกซทมลกษณะเปน 0 และ 1 เราเรยกวา Zero – One Matrix โดย Zero

– One Matrix นจะเปนพนฐานของ สญลกษณทางบลลน คอ ⋀ และ ⋁

Page 18: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 69

• นยาม ให A = [aij] และ B = [bij] เปน เมตรกซขนาด m x n การ join ของ A

และ B ในตาแหนงท ( i, j) , aij bij การ join ของเมตรกซสามารถเขยนได

A B

• การ meet ของเมตรกซ ในตาแหนงท ( i, j) , aij bij เราสามารถได คอ

A B

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 70

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 71

• นยาม ให A = [aij] เปนเมตรกซศนยหนงขนาด m x k และ B = [bij] เปน

เมตรกซศนยหนงขนาด k x n Boolean product ของ A และ B สามารถ

เขยนเปนสญลกษณได A B คอ เมตรกซขนาด m x n โดย ( i, j) ได [cij]

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 72

Page 19: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 73 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 74

• นยาม ให A คอ เมตรกซศนยหนงทยกกาลง โดยให r คอ ตวเลขจานวนเตม

บวกทเปนกาลงของ A ซงเราเขยนได

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 75 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 76

• Find A + B

• Find AB if

Page 20: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 77 21/08/49 บทท 2, อ.สขสนต บวฉม หนา 78

• ให

จงหา

a. A B

b. A B

c. A B

⎥⎦

⎤⎢⎣

⎡=⎥

⎤⎢⎣

⎡=

0110

,1011

BA

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 79

• ให

จงหา

a. A B

b. A B

c. A B

⎥⎥⎥

⎢⎢⎢

⎡=

⎥⎥⎥

⎢⎢⎢

⎡=

101101110

,100011101

BA

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 80

• ให

จงหา

a. A[2]

b. A[3]

c. A ⋁ A[2] ⋁ A[3]

⎥⎥⎥

⎢⎢⎢

⎡=

010101001

A

Page 21: Discreate 02 1 Algorithms Integers and Matricesjanphar.lpru.ac.th/suksan/Discreate_PDF/Discreate_02_Algorithms... · จํานวนเฉพาะ (primality testing) การแยกตัวประกอบ

21/08/49 บทท 2, อ.สขสนต บวฉม หนา 81