tìm ra kho ng th i gian gi a chúng. Cách làmth c hi n tính tr có nh . Nh ng dùng ph
ng th c đ
ả
ờ
ữ
ự
ệ
ừ
ớ
ư
ươ
ứ ể
chuy n đ i s d h n nhi u.
ể
ổ ẽ ễ ơ
ề
Đi u tr trêu là, đôi khi vi c làm cho bài toán khó h n
ề
ớ
ệ
ơ (t ng quát h n) l i khi n cho d dàng h n (ít
ổ
ơ
ạ
ế
ễ
ơ
tr
ng h p đ c bi t, ít kh năng gây ra l i).
ườ
ợ
ặ
ệ
ả
ỗ
11.13 Thu t toán
ậ
Khi b n vi t m t l i gi i t ng quát cho m t l p các bài toán, thay vì tìm l i gi i riêng cho m t bài toán
ạ
ế
ộ ờ
ả ổ
ộ ớ
ờ
ả
ộ
riêng l , b n đã vi t m t
ẻ ạ
ế
ộ thu t toán
ậ
. Th t không d đ nh nghĩa thu t ng này, b i v y tôi s c g ng
ậ
ễ ị
ậ
ữ
ở ậ
ẽ ố ắ
th vài cái ti p c n khác nhau.
ử
ế ậ
Tr
c h t, hãy xét m t s th không ph i là thu t toán. Khi b n h c tính nhân gi a hai s , có l b n đã
ướ ế
ộ ố ứ
ả
ậ
ạ
ọ
ữ
ố
ẽ ạ
ghi nh b n c u ch
ng. Th t ra, b n đã h c thu c lòng 100 l i gi i c th , b i v y ki n th c này th c
ớ ả ử
ươ
ậ
ạ
ọ
ộ
ờ
ả ụ ể ở ậ
ế
ứ
ự
s không ph i là thu t toán.
ự
ả
ậ
Nh ng n u b n “l
i bi ng,” có th b n đã h c h i đ
c m y m o v t. Ch ng h n, đ tính tính c a m t
ư
ế
ạ
ườ
ế
ể ạ
ọ ỏ ượ
ấ
ẹ ặ
ẳ
ạ
ể
ủ
ộ
s
ố n v i 9, b n có th vi t
ớ
ạ
ể ế n−1 là ch s th nh t và 10−
ữ ố ứ
ấ
n là ch s th hai. M o này là l i gi i t ng quát
ữ ố ứ
ẹ
ờ
ả ổ
đ nhân m t s d
i m
i b t kì v i 9. Đó chính là thu t toán!
ể
ộ ố ướ
ườ ấ
ớ
ậ
T
ng t , nh ng kĩ thu t b n h c đ c ng có nh , tr có nh , và phép chia s l n đ u là nh ng thu t
ươ
ự
ữ
ậ ạ
ọ ể ộ
ớ ừ
ớ
ố ớ
ề
ữ
ậ
toán. M t trong nh ng đ c đi m c a thu t toán là chúng không c n trí thông minh đ th c hi n. Chúng
ộ
ữ
ặ
ể
ủ
ậ
ầ
ể ự
ệ
ch là nh ng c ch máy móc trong đó t ng b
c n i ti p nhau theo m t lo t nh ng nguyên t c đ n
ỉ
ữ
ơ ế
ừ
ướ ố ế
ộ
ạ
ữ
ắ ơ
gi n.
ả
Theo ý ki n c a tôi, th t đáng ng i khi th y r ng chúng ta dành quá nhi u th i gian trên l p đ h c cách
ế ủ
ậ
ạ
ấ ằ
ề
ờ
ớ
ể ọ
th c hi n nh ng thu t toán mà, nói th ng ra là, không c n trí thông minh gì c . M t khác, quá trình
ự
ệ
ữ
ậ
ẳ
ầ
ả
ặ
thi t k nh ng thu t toán l i thú v , đ y th thách trí tu , và là ph n trung tâm c a vi c mà ta g i là l p
ế ế
ữ
ậ
ạ
ị ầ
ử
ệ
ầ
ủ
ệ
ọ
ậ
trình.
Có nh ng vi c mà con ng
i làm theo l t nhiên, ch ng khó khăn hay ph i suy nghĩ gì, l i là nh ng th
ữ
ệ
ườ
ẽ ự
ẳ
ả
ạ
ữ
ứ
khó bi u di n b ng thu t toán nh t. Vi c hi u ngôn ng là m t ví d đi n hình. Chúng ta ai cũng làm
ể
ễ
ằ
ậ
ấ
ệ
ể
ữ
ộ
ụ ể
v y, nh ng đ n nay ch a ai gi i thích đ
c r ng ta làm v y
ậ
ư
ế
ư
ả
ượ ằ
ậ b ng cách nào
ằ
, ít nh t là bi u di n d
i
ấ
ể
ễ
ướ
d ng thu t toán.
ạ
ậ
B n s s m có c h i thi t k nh ng thu t toán đ n gi n cho nhi u bài toán khác nhau.
ạ ẽ ớ
ơ ộ
ế ế
ữ
ậ
ơ
ả
ề
11.14 Thu t ng
ậ
ữ
l p:
ớ
Tr
c đây, tôi đã đ nh nghĩa l p là m t t p h p các ph ng th c có liên quan. Trong ch ng này ta
ướ
ị
ớ
ộ ậ
ợ
ươ
ứ
ươ
còn đ c bi t r ng l i đ nh nghĩa l p cũng đ ng th i là m t b n m u c a m t ki u đ i t
ng m i.
ượ
ế ằ
ờ ị
ớ
ồ
ờ
ộ ả
ẫ ủ
ộ
ể
ố ượ
ớ
th c th :
ự
ể
Thành viên c a m t l p. M i đ i t
ng đ u là th c th c a m t l p nào đó.
ủ
ộ ớ
ỗ ố ượ
ề
ự
ể ủ
ộ ớ
constructor:
M t ph ng th c đ c bi t đ kh i t o các bi n th c th c a m t đ i t ng m i l p nên.
ộ
ươ
ứ ặ
ệ ể
ở ạ
ế
ự
ể ủ
ộ ố ượ
ớ ậ
l p kh i đ ng:
ớ
ở ộ
L p có ch a ph ng th c
ớ
ứ
ươ
ứ main n i b t đ u vi c th c thi ch ng trình.
ơ ắ ầ
ệ
ự
ươ