Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 61

TRƯỜNG THPT NGUYỄN HỮU HUÂN

TÀI LIỆU DẠY-HỌC CÁ NHÂN

CHUYÊN ĐỀ

BÀI TOÁN – THUẬT TOÁN

GIÁO VIÊN BIÊN SOẠN: NGUYỄN THỊ BÍCH HẢO

NĂM HỌC 2020-2021

1
MÁY TÍNH SUY NGHĨ NHƯ THẾ NÀO?
Ngày nay, với sự phát triển về mọi mặt của đời sống từ văn hóa, giáo dục cho đến công
nghệ và đặc biệt, lĩnh vực công nghệ thông tin sẽ có những bước phát triển chóng mặt. Một
chiếc máy tính hoặc thiết bị điện tử hiện nay có thể làm được rất nhiều việc như phát hiện
những kẻ nói dối tốt hơn con người, dự đoán các cơn đau tim sớm hơn 4 giờ so với bác sĩ,
hay thắng nhà vô địch cờ vây 9 đẳng với tỷ số áp đảo,...

A. KIẾN THỨC
VẬY MÁY TÍNH SUY NGHĨ NHƯ THẾ NÀO?

Chúng ta sẽ bắt đầu quan sát trên những chương trình gần gũi nhất chạy trên máy tính
hoặc một số thiết bị. Ví dụ, game Amusive Chess là một game trí tuệ, mô
phỏng trò chơi cờ vua thú vị. Khi khởi động chương trình ta thấy giao diện chính là bàn cờ
vua gồm 8 dòng, 8 cột, có đầy đủ quân ở 2 bên. Sau mỗi nước đi của người, máy tính suy
nghĩ và không khó để đưa ra 1 nước đi gây khó cho chính người chơi, quá trình chơi tiếp tục
theo cách đó cho đến khi 1 bên bị ăn tướng (thường là con người)

2
Một chương trình khác là Google Map, bản đồ vệ tinh, bản đồ số phổ cập ở các quốc
gia, lãnh thổ theo thổ ngữ riêng biệt, được google phát triển với mục đích thay thế cho các
loại bản đồ giấy thông thường. Google Maps chính là cầu nối giữa cái mà chúng ta nhìn thấy
trong đời thực với thế giới trực tuyến.

Google Maps đang là dịch vụ bản đồ thông dụng nh ất hi ện nay trên máy
tính, điện thoại, xe hơi...

Phiên bản Google Map di động được giới thiệu lần đầu vào năm 2008, hoạt động thông
qua GPS của thiết bị. Với Google Map, bạn có thể xem bản đồ vệ tinh, bản đồ thành phố,
hình ảnh 360 độ Street View, tra cứu tình hình giao thông trong thời gian thực ( Google
Traffic) và xem lộ trình khi di chuyển bằng ô tô, xe đạp, các phương tiện công cộng hay đi
bộ.

3
Chức năng xem lộ trình đường đi (tối ưu) giữa hai vị
trí cho trước của Google Map. Cho trước hai vị trí Đầu
và Cuối, chương trình sẽ phải dựa trên bản đồ giao
thông thành phố để tìm ra được 1 cách đi với khoảng
cách hoặc thời gian tối ưu nhất. Trên màn hình máy tính
sẽ hiện đường đi tối ưu đó với các thông tin có liên
quan.

Qua 2 ví dụ trên ta thấy, dù là bài toán chơi cờ hay tìm


đường đi giữa 2 điểm đều có 1 điểm chung trong cách
máy tính nhận biết và giải quyết vấn đề. Đầu tiên máy
cần được nạp sẵn một số thông tin cơ bản, sau đó, con
nguời đưa tiếp thông tin cần xử lý, máy tính xử lý thông
tin và đưa phương án giải quyết ra màn hình

Sơ đồ sau mô phỏng quá trình máy giải quyết vấn đề

INPUT (ĐẦU VÀO): Bài toán hay vấn đề cần giải quyết. Các thông số, dữ liệu ban đầu của bài
toán.

BỘ XỬ LÝ: Là chương trình máy tính, phần mềm hoặc thiết bị vi xử lý bất kỳ có chức năng
tiếp nhận đầu vào, sau đó tiến hành giải quyết bài toán.

OUTPUT (ĐẦU RA): Kết quả của bài toán, vấn đề được thể hiện ở đầu ra (thường là màn
hình)

Ví dụ bài toán tìm đường đi tối ưu

Quá trình tiếp nhận và giải quyết vấn đề của máy tính nếu phát biểu dưới dạng mênh đề
toán học thì ta được

AB

B là kết luận, mục tiêu


A là giả thiết, điều kiện cần đạt
ban đầu 4
Là suy luận, giải
pháp cần xác định
Do đó, hầu hết các công việc muốn được giải quyết trên máy tinh ta cần phải xác định

a) Ta đang có vấn đề gì, có gì để giải quyết vấn đề đó (A)

b) Ta muốn được cái gì (B)

c) Hướng giải quyết là gì ( )

Nếu con người trả lời được 3 câu hỏi trên một cách rõ ràng, tỉ mỉ, logic, chính xác thì ta có
thể có 1 chương trình chạy được trên máy tính. Khi đó, ta nạp Input=A, máy tính sẽ suy nghĩ
và đưa ra Output=B

Vì vậy, suy nghĩ của máy tính chính là suy nghĩ của con người được thể hiện qua một thứ:
CHƯƠNG TRÌNH

CHƯƠNG TRÌNH LÀ GÌ?

Chương trình tạm hiểu là một danh sách các chỉ dẫn tính toán. Nó được viết bằng 1 ngôn ngữ
hình thức mà máy tính có thể hiểu, mục đích là hướng dẫn cho máy biết cần phải làm gì và làm
như thế nào để giải quyết được vấn đề. Khi chương trình chạy, ta nạp A cho máy, máy sẽ theo
các chỉ dẫn viết sẵn, tính toán và đưa B ra màn hình

B. LUYỆN TẬP
1. Máy tính có biết suy nghĩ không?

.............................................................................................................................................
2. Điều gì làm cho máy tính có vẻ như “biết suy nghĩ”

.............................................................................................................................................

.............................................................................................................................................

3. Bạn hãy cho biết Input, Output của 1 chương trình trên điện thoại hoặc máy tính

.........................................................................................................................................................

4. Khi cần tìm đường trong một chuyến du lịch nào đó,
bạn sẽ dùng cách nào?

.........................................................................................................................................................

.........................................................................................................................................................

5
5. HOẠT ĐỘNG: lập bảng so sánh như hình bên dưới. Hãy tìm 3 lĩnh vực/ công việc/
hoạt động mà máy thắng người, 2 lĩnh vực/công việc người thắng máy

Lĩnh vực/ công việc/hoạt động Kết luận

6. Liệt kê 5 công việc mà bạn thường làm với sự trợ giúp của các chương trình máy
tính. Nêu rõ tên chương trình

7. Cho giao diện chương trình sau. Hãy tìm hiểu về nó (thực hiện
công việc gì, Input, Output)

6
8. CHO GIAO DIỆN MỘT TRANG WEB:

a. Chương trình chạy trên nền web trong hình sau thực hiện công việc gì? Input?
Output

b. Có một số chương trình khác mà Google cung cấp. Hãy kể tên và chức năng nếu
bạn biết

c. Với 1 tài khoản, chúng ta có thể cùng lúc đăng nhập và sử dụng các chương trình
đó không?

7
8
THUẬT TOÁN - CỐT LÕI CỦA MỘT CHƯƠNG TRÌNH

Để viết một chương trình, từ vấn đề ban đầu, con người phát biểu 1 bài toán dưới góc nhìn
của Tin học, phân tích A là gì, B là gì, sau đó tìm ý tưởng và chi tiết hóa ý tưởng thành một
bản hướng dẫn cụ thể để giải quyết bài toán ( tức là THUẬT TOÁN). Công việc tiếp tục là tìm
một ngôn ngữ để mô tả giải pháp này cho máy hiểu và thực hiện.

Việc xây dựng thuật toán rất quan trọng vì nếu hướng dẫn giải sai hoặc không rõ ràng thì
chương trình hoặc không chạy được hoặc có chạy được cũng không đúng yêu cầu

A. KIẾN THỨC
1. ĐỊNH NGHĨA THUẬT TOÁN

Thuật toán là một tập hợp hữu hạn các hướng dẫn được xác định rõ ràng và thứ tự, sao
cho từ Input, theo các hướng dẫn ta tìm ra được Output

Việc nghiên cứu thuật toán rất quan trọng trong ngành khoa học máy tính nói
chung, hay lập trình phần mềm nói riêng.
2. VAI TRÒ CỦA THUẬT TOÁN

Vai trò của thuật toán đối


với thực tiễn là không hề
nhỏ. Thuật toán giúp lập
trình viên đánh giá phần
mềm mới hoạt động có
hiệu quả không. Thuật
toán tốt mang đến hiệu
quả cao, giúp các
chương trình hoạt động
hiệu quả với tốc độ xử lý
nhanh chóng, tiết kiệm tài
nguyên.

Thuật toán giúp lập trình


viên hiểu rõ và sâu hơn
về ứng dụng, chương trình. Bên cạnh đó, để hiểu sâu về thuật toán là gì bạn nên dự đoán
các trường hợp có thể xảy ra. Điều này có tác dụng hạn chế tối đa việc xảy ra lỗi đối với các
chương trình mới.

Thuật toán không chỉ được sử dụng để tìm ra kết quả các các bài toán hay trong lĩnh vực lập
trình. Nó còn được sử dụng để tìm ra phương hướng giải quyết các vấn đề cuộc sống.

9
3. MỘT SỐ VÍ DỤ VỀ BÀI TOÁN

- Hãy tìm kiếm 1 cái máy tính có giá từ X->Y, đáp ứng tối đa các tiêu chí của người
dùng chỉ trong 1 cái click chuột
- Hãy đưa ra các bài viết hoặc sản phẩm mà người dùng quan tâm dựa trên lịch sử
truy cập của họ
- Hãy tính toán và sắp xếp thứ hạng của người dùng dựa trên lịch sử học và làm bài
- Đếm số lượng truy cập của người dùng trong 1 khoảng thời gian để dự đoán tấn
công
- Đưa ra gợi ý các bài tập mà người dùng nên làm dựa vào lịch sử truy cập và thao tác
của họ trên hệ thống

4. MỘT SỐ VÍ DỤ VỀ THUẬT TOÁN & ỨNG DỤNG

A. THUẬT TOÁN TÌM ĐƯỜNG ĐI NGẮN NHẤT.


- Cho một danh
khoảng cách) hoặc chi phí tối thiểu
khi đi từ điểm X đến điểm Y.
- Ứng dụng: trong
thông vận tải (ví dụ google map,
grab, uber, giao hàng nhanh, ….);
ngoài ra, trong các hệ thống mạng,
viễn thông người ta cũng dùng thuật toán này để định hướng đường truyền và tín
hiệu. Cuộc điện thoại từ 1 người ở thành phố Hà Nội gọi cho 1 người ở thành phố Hồ
Chí Minh đi qua các cột thu phát sóng, dữ liệu internet từ máy tính của bạn đi tới máy
chủ của nhà cung cấp mạng cũng phải sử dụng thuật toán này để đạt được tốc độ tối
đa.

B. THUẬT TOÁN TÌM KIẾM


- Bạn có thể nhìn thấy nó ở khá nhiều
sản phẩm phần mềm hiện tại, điển
hình như Google. Bạn có thể nghĩ
rằng, tìm kiếm khá là đơn giản, khi
bạn lần lượt soi vào từng ô, từng dòng
dữ liệu xem có thứ mà mình tìm kiếm
hay không? Nhưng hãy đặt địa vị, bạn
có hàng tỷ tỷ món đồ dùng được vứt
lộn xộn trong 1 căn nhà, bạn sẽ mất
bao nhiêu lâu để tìm được món đồ mà bạn mong muốn. Hãy biết chắc chắn rằng,
việc Google trả ra được kết quả mà bạn yêu cầu tìm kiếm trong vòng 1 vài giây là vô

10
cùng khó. Điều ấy yêu cầu 1 thuật toán cực mạnh, và vẫn liên tục cần cải tiến cho
đến ngày hôm nay.
-
C. CÁC THUẬT TOÁN MÃ HOÁ
- Được sử dụng nhiều trong việc
truyền nhận và lưu trữ giữ liệu, giúp
bảo vệ thông tin cá nhân và tổ chức
khỏi các cuộc tấn công hay khai
thác.

B. LUYỆN TẬP

1. Điền các từ sau vào vị trí thích hợp: BÀI TOÁN, NGÔN NGỮ LẬP TRÌNH, THUẬT
TOÁN

........................ LÀ XUẤT PHÁT ĐIỂM CỦA CHƯƠNG TRÌNH


.......................... LÀ CỐT LÕI CỦA MỘT CHƯƠNG TRÌNH
...............................LÀ PHƯƠNG TIỆN ĐỂ MÔ TẢ LẠI THUẬT TOÁN TRONG CHƯƠNG
TRÌNH

2. AI (Artificial Intelligence) có phải là thuật toán không? Sản phẩm công nghệ nào hiện
nay đang sử dụng AI

3. Kể ra một bài toán (công việc) máy tính làm được và tên phần mềm thực hiện công
việc đó

4. Kể tên vài ngôn ngữ lập trình mà em biết

5. Sử dụng Google Search liệt kê vài ứng dụng và thuật toán. Ghi rõ thuật toán nào là
AI

11
CÁC TÍNH CHẤT CỦA THUẬT TOÁN

1. MỘT THUẬT TOÁN CÓ ĐẶC ĐIỂM GÌ?

 ĐẦU VÀO VÀ ĐẦU RA (INPUT/OUTPUT): Mọi thuật toán đều nhận dữ liệu đầu vào,
xử lý nó và cho ra kết quả cuối cùng.

 TÍNH HIỆU QUẢ: Được xét dựa trên khối lượng các phép tính toán, không gian lưu
trữ và thời gian thi hành thuật toán. Đây là yếu tố quyết định để đánh giá và chọn
lựa cách giải quyết bài toán

 TÍNH TỔNG QUÁT: Thuật toán phải áp dụng được cho mọi trường hợp của bài
toán (từ Input phải luôn cho ra được Output). Ví dụ: Thuật toán tìm ước chung lớn
nhất của 2 số nguyên dương M,N, với mọi giá trị M,N đưa vào thuật toán, ta phải
luôn có câu trả lời về ước chung lớn nhất của chúng. Nếu M=5,N=10 thì ước
chung là 5. Nếu M=4, N=10 thì ước chung là 2

2. MỘT THUẬT TOÁN PHẢI ĐÁP ỨNG NHỮNG YÊU CẦU NÀO?

 TÍNH XÁC ĐỊNH: Ở mỗi bước của thuật toán, các thao tác phải đơn nghĩa (tức là
hết sức rõ ràng, không gây nên sự nhập nhằng, lộn xộn, tùy tiện)

 TÍNH DỪNG: Thuật toán không được rơi vào quá trình vô hạn, phải dừng lại và
cho kết quả sau một số hữu hạn bước. Tuy nhiên, thuật toán nên dừng trong
khoảng thời gian cho phép. Ví dụ: chương trình sắp xếp thời khóa biểu cho một
học sinh thì không thể cho máy tính chạy tới học kỳ sau mới có kết quả được

 TÍNH ĐÚNG: Sau khi thực hiện tất cả các bước của thuật toán theo đúng quá
trình đã định, từ A, ta phải được B

3. LÀM SAO ĐỂ DIỄN ĐẠT THUẬT TOÁN

Giống như Toán học, thuật toán cũng là một phương pháp giải toán nên cũng phải tuân
theo một số quy tắc nhất định. Ðể có truyền đạt thuật toán cho người khác hay chuyển
thuật toán thành chương trình máy tính, ta phải có phương pháp biểu diễn thuật toán. Có
3 phương pháp biểu diễn

1. Dùng ngôn ngữ tự nhiên.

2. Dùng lưu đồ-sơ đồ khối (flowchart).

3. Dùng mã giả (pseudocode).

12
NHỮNG NGƯỜI MỚI HỌC NÊN DÙNG LƯU ĐỒ ĐỂ BIỂU DIỄN THUẬT TOÁN

13
4. LƯU ĐỒ LÀ GÌ?

Là một sơ đồ minh họa lại các thao tác cần thực hiện theo thứ tự để giải quyết bài toán
thông qua các hình khối đã được thống nhất chung và được nối với nhau bằng các mũi tên
để chỉ rõ thứ tự thực hiện.

Lưu đồ là một công cụ trực quan để diễn đạt thuật toán. Vì thế, người được hướng dẫn sẽ
dễ thấy dòng chảy của quá trình giải quyết vấn đề, theo dõi được sự phân cấp các trường
hợp và quá trình xử lí của thuật toán

CÁC HÌNH KHỐI DÙNG ĐỂ TRÌNH BÀY TRONG SƠ ĐỒ

Hình khối Ý nghĩa

Begin
Bắt đầu thuật toán

End Kết thúc thuật toán

Nhập / Xuất

Kiểm tra và ra quyết định.

Đúng Đây là thao tác có 2 mũi tên đi ra, một mũi tên thể hiện: khi điều
a>b kiện kiểm tra ĐÚNG thì bước tiếp theo cần làm gì?, mũi tên
còn lại thể hiện: khi điều kiện kiểm traSAI thì bước tiếp theo
Sai cần làm gì?

Trường hợp thực tế, sau khi kiểm tra, điều kiện chỉ có thể là
ĐÚNG hoặc SAI, tức là ta chỉ có 1 hướng đi tiếp. Tuy nhiên, thuật
toán phải đảm bảo có lời giải cho tất cả các trường hợp nên bắt
bưộc phải thiết kế tất cả các hướng đi có thể (tức là lời giải cho
những tình huống khác nhau)

Đây là thao tác đặc biệt trong thiết kế và biểu diễn thuật toán

Lệnh xử lý hoặc tính toán

Ghi chú: mũi tên dùng để kết nối các công việc cũng như thể hiện dòng chảy (thứ tự thực
hiện các thao tác)

14
5. CÁC DẠNG BÀI TOÁN TRONG TIN HỌC

- BÀI TOÁN DẠNG TUẦN TỰ Hiện thực của các bài toán này
- BÀI TOÁN DẠNG RẼ NHÁNH trên máy tính chính là chương
- BÀI TOÁN DẠNG LẶP trình

BÀI TOÁN DẠNG TUẦN TỰ:


BÀI TOÁN DẠNG TUẦN TỰ:
Trong thực tế, khi gặp những hoạt động mang tính quy trình, chúng ta thường thấy những
hướng dẫn như sau:

Hướng dẫn mua hàng online Hướng dẫn tích điểm

Các hướng dẫn này có DẠNG TUẦN TỰ, mỗi bước được thực hiện đúng 1 lần và có thứ
tự, thực hiện bước này xong thì đến bước kia, công việc sẽ kết thúc sau khi thực hiện xong
bước cuối cùng. Bài toán dạng tuần tự cũng có cách thực hiện giống như vậy . Chúng ta hãy
cùng xem một số ví dụ

15
1. BÀI TOÁN TÌM VẬN TỐC CỦA MỘT NGƯỜI CHUYỂN ĐỘNG ĐỀU

Phát biểu dưới dạng bài toán Toán học:

Bạn An đi xe đạp từ nhà đến trường, với quãng


đường 3 km hết 10 phút, giả sử tốc độ đạp xe
đều. Bạn hãy cho biết tốc độ đạp xe của bạn An

Phát biểu dưới dạng bài toánTin học:

Hãy thiết kế cách tìm vận tốc của 1 người di chuyển với vận tốc đều trên quãng
đường và thời gian cho trước

NHẬN XÉT: bài toán tin học được phát biểu dưới dạng tổng quát. Nếu như được
viết thành chương trình thì mỗi lần chương trình sẽ chạy với 1 số liệu cụ thể và cho
ra kết quả cụ thể

PHÂN TÍCH:

Input: 2 số nguyên dương s (quãng đường, đơn vị tính: km),

t (thời gian, đơn vị tính: phút)

Output: 1 số thực v (vận tốc, đơn vị tinh: km/phút)

THIẾT KẾ:

Begin

Nhập s , t

v=s/t

Xuất v

End

16
2. BÀI TOÁN HOÁN ĐỔI GIÁ TRỊ CỦA 2 BIẾN

Tình huống thực tế:Ta có Ly A chứa rượu vang, Ly B chứa bia. Hỏi làm cách nào để Ly A
chứa bia, Ly B chứa rượu vang

CÁC GIẢI QUYẾT: Dùng thêm


Ly C làm trung gian: Đổ rượu từ
A C, Đổ bia từ BA, Đổ rượu
từ CA

Ly A: Ly B:

Phát biểu dưới dạng bài toán Tin học:Hãy thiết kế cách hoán đổi giá trị của 2 số thựca,b

Ý TƯỞNG: Mượn thêm một biến t để thực hiện hoán đổi

PHÂN TÍCH: - Input :Hai số thực a, b

- Output:Giá trị a và b khi đã được hoán đổi giá trị

THIẾT KẾ:

Nhập a,b

Xuất a,b

NHẬN XÉT CHUNG: với dạng toán này, thuật toán hoặc cách xử lý chỉ là các thao
tác tuần tự, không phải kiểm tra điều kiện gì (tức là TRÊN LƯU ĐỒ KHÔNG CÓ

THAO TÁC )

17
LUYỆN TẬP

1. Đối tượng nào sẽ đọc sơ đồ thiết kế thuật toán


a. Người lập trình
b. Người cần tìm lời giải
c. Máy tính
d. Cả a,c đều đúng
2. Cho biết trình tự các bước giải 1 bài toán trong tin học
a. Nhập Input, xuất Output
b. Xử lý, xuất Output
c. Nhập Input, xử lý, xuất Output

3. Bạn An có 100,000VND. Bạn ấy muốn biết số tiền này có giá trị bằng bao nhiêu
USD. Giả sử hôm nay, tỉ giá 1USD = 23720 VND.
a. Hãy giúp bạn An tính toán nhé

...................................................................................................................................................

b. Hãy phát biểu bài toán trên dưới dạng bài toán trong tin học

...................................................................................................................................................

...................................................................................................................................................

c. Hãy phân tích (Input,Output) và thiết kế thuật toán

.........................................................................................................................................................
.........................................................................................................................................................

18
d. Bạn biết chương trình nào có thể thực hiện tốt bài toán này

.........................................................................................................................................................
.........................................................................................................................................................

e. Quá trình đưa thuật toán cho máy tính giải là gì? Ta phải học gì để làm được
việc đó

.........................................................................................................................................................
.........................................................................................................................................................

4. Hãy đưa ra một ví dụ về 1 quy trình, thủ tục hay hướng dẫn một công việc nào đó
trong thực tế có dạng tuần tự mà có thể dùng sơ đồ để biểu diễn

19
BÀI TOÁN DẠNG RẼ NHÁNH:
Trong thực tế, khi gặp những hoạt động mang tính quy trình,ngoài những hướng dẫn tuần
tự, ta còn được thấy những hướng dẫn mang tính lựa chọn hoặc phân loại. Chúng ta hãy
xem một số ví dụ sau

Có 2 hình thức nộp, tùy vào


hình thức nộp sẽ có thủ tục
tương ứng

Có 2 mức thu tương


ứng với 2 loại đối tượng

Có 4 lịch hẹn tương ứng


với 4 loại khu vực

Các bài toán dạng rẽ nhánh cũng như vậy, vì có nhiều trường hợp phát sinh trong quá trình
giải và ta phải thiết kế lời giải cho tất cả các trường hợp nên quá trình giải phải có bước
kiểm tra và phân loại

20
1. BÀI TOÁN TÌM NGHIỆM CỦA PHƯƠNG TRÌNH AX+B=0

Phát biểu dưới dạng bài toán Toán học:Tìm nghiệm của phương trình 2x-5=0

Phát biểu dưới dạng bài toán Tin học: Tìm nghiệm của phương trình bậc nhất 1 ẩn ax + b =
0 (với a,b là 2 số thực bất kỳ)

Ý TƯỞNG: Hiển nhiên ta có nghiệm x= -b/a, tuy nhiên nếu a=0 thì phân số -b/a không xác
định. Do đó, ta cần phải chia trường hợp

Nếu a ≠ 0 thì nghiệm của PT là -b/a

Ngược lại (a=0): Nếu b = 0 thì PT vô số nghiệm.

Nếu b ≠ 0 thì PT vô nghiệm

PHÂN TÍCH

- Input : Hai số thực a, b

- Output: Phương trình vô nghiệm, vô số nghiệmhoặc có một nghiệm thực x thỏa mãn
ax + b = 0

THIẾT KẾ

Nhập a,b

Thông báo: PT vô
số nghiệm
Thông báo:
nghiệm x

Thông báo:
PT vô nghiệm

21
2. BÀI TOÁN KIỂM TRA TAM GIÁC

Tình huống thực tế: Nếu bạn có trong tay ba thanh gỗ thẳng, một thanh dài 30
cm và hai thanh kia chỉ đều chỉ dài 3 cm. Bạn có thể nối chúng thành 1 hình tam
giác được không? Tại sao?

Phát biểu dưới dạng bài toán Tin học: Cho trước 3 số nguyên a,b,c là độ dài 3
thanh gỗ khác nhau. Hãy kiểm tra xem ta có thể nối chúng thành 1 hình tam giác
không?

Ý TƯỞNG:Nếu bất kì một độ dài nào lớn hơn tổng hai độ dài còn lại thì bạn không thể tạo
thành tam giác. Ngược lại, bạn có thể.

PHÂN TÍCH

- Input :3 số nguyên a, b,c (độ dài 3 thanh gỗ)

- Output: YES: lập được 1 tam giác NO: không lập được 1 tam giác

THIẾT KẾ

Nhập a,b,c

a< ( b+c ) và b < ( a+ c )


Thông báo: YES
và c< ( b+a )

Thông báo: NO

22
3. KIỂM TRA SỐ CHÍNH PHƯƠNG

Số chính phương (số hình vuông) là số tự


nhiên có căn bậc 2 là một số tự nhiên khác

Hay nói cách khác, số chính phương là bình


phương của một số tự nhiên.

Ý NGHIÃ: Số chính phương N hiển thị diện tích của


một hình vuông có chiều dài cạnh =√ N

BÀI TOÁN TIN HỌC: Cho trước số nguyên dương


N, kiểm tra N có phải là số chính phương không?

PHÂN TÍCH

- Input:Số tự nhiên N

- Output:Kết luận N có phải là số chính phương hay không

THIẾT KẾ

Nhập N

Thông báo: N không là


số chính phương

Thông báo: N là số
chính phương

NHẬN XÉT:với dạng toán này, thuật toán hoặc cách xử lý có thao tác xét điều kiện, sau đó
dựa vào điều kiện để thưc hiện các bước kế tiếp, tuy nhiên việc xét điều kiện này không tạo

thành chu trình(tức là TRÊN LƯU ĐỒ CÓ THAO NHƯNG Ở TRẠNG THÁI HỞ)

23
LUYỆN TẬP
1.

a. Cho biết tên website


.............................................................................................................................................

b. Cho biết những đối tượng sẽ sử dụng website này


.............................................................................................................................................

c. Bạn có nhận ra được sự rẽ nhánh trong lựa chọn ĐĂNG NHẬP trong website
sau không? Giải thích
.............................................................................................................................................

2. Thuật toán cho bài toán trong tin học có những đặc điểm gì?
.............................................................................................................................................

3. Một thuật toán tốt cần đạt những yêu cầu gì?
.............................................................................................................................................

4. Bài toán giả lập phép chia 2 số thực “a/b” là xuất phát điểm của chức năng  trên
máy tính CASIO và một số chương trình tính toán khác
a. Hỏi bài toán này có dạng rẽ nhánh không? Giải thích và ví dụ cụ thể

.........................................................................................................................................................

.........................................................................................................................................................

b. Cho ví dụ một số bài toán khác có dạng rẽ nhánh và ứng dụng tương ứng trên máy
tính CASIO hoặc một số chương trình tính toán khác

.........................................................................................................................................................

.........................................................................................................................................................

24
5. Cho biểu giá điện hiện hành

a. Cách tính hiện tại có đang được Tập đoàn Điện lực Việt Nam (EVN) áp
dụng không?
.............................................................................................................................................

b. Họ tính tiền như thế nào?


.............................................................................................................................................

c. Bài toán tính tiền điện có sự phân nhánh trong lời giải không? Giải thích bằng
ví dụ cụ thể
.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

.............................................................................................................................................

d. Chương trình tính tiền điện chạy trên thiết bị gì?


.............................................................................................................................................

e. Hãy vẽ lưu đồ khối cho thuật toán tính tiền trên

25
6. Trong thực tế, có một hệ thống tính tiền cũng theo dạng chia cấp như tiền điện. Em
hãy cho biết tên
.............................................................................................................................................

7. Hãy đưa ra một ví dụ về 1 quy trình, thủ tục hay hướng dẫn một công việc nào đó
trong thực tế có dạng rẽ nhánh mà có thể dùng sơ đồ để biểu diễn

26
BÀI TOÁN DẠNGLẶP:
Thực tế, trong một số quy trình có thể có chu trình (vòng lặp). Đó là khi một số bước thỏa
hoặc không thỏa một điều kiện nào đó buộc phải lặp lại. Chúng ta hãy xem một số ví dụ sau

Như vậy, giữa bước 1 (yêu cầu kê khai) và bước 2 (kiểm tra thông tin kê khai) có tồn tại 1
chu trình (vòng lặp), người thiết kế bắt buộc phải nhìn thấy nó và đưa vào bản hướng dẫn,
còn thực tế, tùy vào trường hợp cụ thể mà chu trình này được thực hiện 1 lần (cho người
khai đúng yêu cầu ngay từ lần đầu tiên) hoặc nhiều lần (cho người khai không đúng yêu
cầu), anh ta phải khai cho đến khi đúng yêu cầu mới được thực hiện các bước sau đó

27
QUY TRÌNH THIẾT KẾ WEBSITE

Như vậy, giữa bước 4 và bước 5 có tồn tại chu trình, nếu khách hàng còn tiếp tục yêu cầu
chỉnh sửa thì công ty phải tiếp tục chỉnh sửa phần lập trình web và xuất bản có khách hàng
xem thử. Trên bảng hướng dẫn ta thấy giữa 2 bước này có mũi tên quay lại tạo thành 1
vòng khép kín (điều này cũng giống như vòng lặp trong thiết kế thuật toán).

Các bài toán dạng vòng lặp trong Tin học cũng có chu trình. Chúng ta hãy cùng nhận ra nó
trong một số bài toán mẫu dưới đây

28
1. BÀI TOÁN MAX/MIN
Đây là 1 bài toán mang tính thống kê, thường được dùng để xét kết quả cao nhất/ thấp nhất
trong 1 kỳ thi hoặc 1 trò chơi, 1 cuộc bầu cử,…Tức là ta có trong tay rất nhiều số liệu và làm
cách nào để tìm ra số liệu max/min

Ví dụ 1:

Trong kỳ thi THPT Quốc Gia 2017; với điểm


các môn: Toán 9.8; Lý 9.8; Hóa 9.8; bạn
Nguyễn Tiến Hùng (học sinh lớp 12A3 –
THPT Nguyễn Hữu Huân) đã trở thành thủ
khoa khối A của TP.HCM trong kỳ tuyển sinh
năm 2017.

Ví dụ 2:

Tóm tắt kết quả bầu cử tổng thống Pháp ngày 23 tháng 4 và 7 tháng 5 năm 2017

Vòng 1 Vòng 2
Ứng viên Đảng
Số phiếu % Số phiếu %

Emmanuel
Tiến bước! EM 8.656.346 24.01% 20.753.798 66.10%
Macron

Marine Le Pen Mặt trận Quốc gia FN 7.678.491 21.30% 10.644.118 33.90%

François Fillon Người Cộng hoà LR 7.212.995 20.01%

Jean-Luc
La France insoumise FI 7.059.951 19.58%
Mélenchon

Benoît Hamon Đảng Xã hội PS 2.291.288 6.36%

Nicolas
Dupont- Debout la France DLF 1.695.000 4.70%
Aignan

Jean Lassalle Résistons! 435.301 1.21%

Philippe
Đảng Tân Phản Tư bản NPA 394.505 1.09%
Poutou
Kết quả cuối cùng:
François Emmanuel Macron đắc cử
Liên minh Cộng hoà vì Nhân dân UPR 332.547 0.92%
Asselineau Tổng thống Pháp với số
phiếu bầu hợp lệ cao nhất
Nathalie ở cả 2 vòng
Lutte Ouvrière LO 232.384 0.64%
Arthaud

Jacques
Đoàn kết và Tiến bộ S&P 65.586 0.18%
Cheminade

PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ). Hãy tìm giá trị lớn nhất trong dãy và cho
biết vị trí của nó (nếu có nhiều giá trị trùng nhau và cùng là lớn nhất thì lấy giá trị đầu tiên)

29
Ý TƯỞNG:
Ý tưởng 1: Nếu danh sách giá trị được sắp
xếp giảm dần như bảng tóm tắt trên thì quá dễ,
như vậy ta phải làm bài toán sắp xếp, mà bài toán
sắp xếp lại khó hơn rất nhiều so với bài toán tìm
max/min  ý tưởng này không tốt

Ý tưởng 2: Gọi max là giá trị lớn nhất cần


tìm, vt là vị trí của giá trị đó. Vậy trên 1 danh sách các giá trị không được sắp thứ tự, ta xét
lần lượt từng giá trị và tìm max cục bộ.

 xét giá trị a 1tìm max của dãy có 1 phần tử a 1  max=a 1, vt=1;
 xét tiếp a 2 tìm max của dãy có 2 phần tử là a 1 , a2

nếu a 2>max (tức là a 2 lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a 2, vt=2

ngược lại a 2<=max thì không có gì thay đổi

 xét tiếp a 3 tìm max của dãy có 3 phần tử là a 1 , a2 , a3

nếu a 3>max (tức là a 3 lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a 3, vt=3

ngược lại a 3<=max thì không có gì thay đổi

 ………..
 xét tiếp a N tìm max của dãy có N phần tử là a 1 , a2 , a3 , … , a N

nếu a N >max (tức là a N lớn hơn giá trị lớn nhất của dãy
trước đó) thì max=a N , vt=N

ngược lại a N <=max thì không có gì thay đổi

Vậy là từ việc liên tiếp tìm max cục bộ của các dãy con, đến bước cuối cùng ta có
max cục bộ chính là max toàn cục và đó chính là kết quả bài toán  ý tưởng này tốt

30
PHÂN TÍCH

- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000)


6
các giá trị nguyên dương lần lượt là a 1 , a2 , a3 , … , a N với 0< ai ≤ 10 (1 ≤ i≤ N)

- Output: max (giá trị lớn nhất dãy),vt (vị trí của giá trị max)

THIẾT KẾ

Begin

Nhập N và dãy a1,…aN

Max = a1

vt =1

S(i>N)
i <=N

Đ
Xuất ra Max , vt
ai >Max
S(ai >Max)
Đ
Max = ai End

vt = i

i=i+1

31
LUYỆN TẬP

1. Khoanh tròn tên quốc gia có nhiều thí sinh tham gia cuộc thi Bebras nhất

32
2. Nhận diện thuật toán TÌM MAX trong website sau

.........................................................................................................................................................

.........................................................................................................................................................

33
3. Ở trường, những chú hải ly phải giải những bài toán khó bằng sơ đồ khối. Họ bắt đầu
từ Start! Và làm theo chỉ dẫn:

Nếu bắt đầu bằng số 18, đáp án cuối cùng là số bao nhiêu?

A. 1
B. 2
C. 3
D. 4

4. Cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị lần lượt là
6
a 1 , a2 , a3 , … , a N v ớ i0 ≤ ai ≤ 10 ( 1≤ i≤ N ). HÃY TÌM GIÁ TRỊ NHỎ NHẤT TRONG DÃY VÀ
CHO BIẾT VỊ TRÍ CỦA NÓ (nếu có nhiều giá trị trùng nhau và cùng là lớn nhất thì lấy
giá trị đầu tiên)

34
2. BÀI TOÁN SẮP XẾP

Sắp xếp là quá trình bố trí lại các phần tử trong một tập hợp theo một trình tự nào đó nhằm
mục đích giúp quản lý và tìm kiếm các phần tử dễ dàng và nhanh chóng hơn. Điển hình nhất
trong thực tế là các ứng dụng quản lý danh bạ điện thoại thì có sắp xếp theo số, theo tên.
Quản lý học sinh thì có sắp xếp theo điểm, theo lớp, theo trường, ... Như vậy có rất nhiều
mục đích cần phải sắp xếp các phần tử theo trình tự.

Trong khoa học máy tính và trong toán học, bài toán sắp xếp đã được nhiều nhà khoa học
quan tâm, từ đó ta có khá nhiều thuật toán sắp xếp các phần tử của một danh sách (hoặc
một mảng) theo thứ tự (tăng hoặc giảm). Và để dễ dàng cho việc nghiên cứu và học tập thì
người ta thường gán các phần tử được sắp xếp là các giá trị số.

Trong tài liệu này, tác giả giới thiệu thuật toán Sắp xếp chọn. Đây là một thuật toán sắp
xếp đơn giản, dựa trên việc so sánh tại chỗ.

35
PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ). Hãy sắp xếp dãy số theo thứ tự không
giảm của các giá trị

Ý TƯỞNG: Chọn phần tử lớn thứ i(1 ≤i ≤ N ) và đưa về vị trí thứi(1 ≤i ≤ N ) của dãy

DIỄN GIẢI:

 Chọn phần tử nhỏ nhất trong dãy N phần tử ban đầu gồm a 1 , a2 , a3 , … , a N , đưa phần
tử này về vị trí số 1. Sau đó không quan tâm đến vị trí số 1 nữa

 Chọn phần tử nhỏ nhất trong dãy N-1 phần tử gồm a 2 , a3 , … , a N , đưa phần tử này về
vị trí số 2. Sau đó không quan tâm đến vị trí số 2 nữa

 Chọn phần tử nhỏ nhất trong dãy N-2 phần tử gồm a 3 , … , a N , đưa phần tử này về vị
trí số 3. Sau đó không quan tâm đến vị trí số 3 nữa

 ……………….

36
 Chọn phần tử nhỏ nhất trong dãy 2 phần tử gồm a N −1 , a N , đưa phần tử này về vị trí
số N-1. Sau đó không quan tâm đến vị trí số N-1 nữa

 Phần tử ở vị trí thứ N mặc nhiên là phần tử lớn nhất dãy

PHÂN TÍCH

- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000)


6
các giá trị nguyên dương lần lượt là a 1 , a2 , a3 , … , a N với 0< ai ≤ 10 (1 ≤ i≤ N)

- Output: dãy a 1 , a2 , a3 , … , a N đã được sắp xếp theo thứ tự không giảm của các giá trị

THIẾT KẾ

Begin

Nhập N và dãy a1,…aN

i=1

Tìm vtmin là vị trí giá trị nhỏ nhất trong dãy p/tử từ ai …aN

Hoán đổi giá trị của a vtmin và ai

Đ
i=i+1 i <=N-1
S (i>N-1)

Xuất ra dãy a1,…aN

End

XÁC ĐỊNH 2 THUẬT TOÁN ĐÃ HỌC ĐƯỢC SỬ DỤNG TRONG THUẬT TOÁN SẮP XẾP
.........................................................................................................................................................

LUYỆN TẬP
37
1.

a. Cho biết tên website


.............................................................................................................................................

b. Nhận xét về thứ tự sắp xếp các mặt hàng


.............................................................................................................................................

c. Ta chọn ở đâu để được thứ tự sắp xếp như thế


.............................................................................................................................................

d. Có cần thuật toán sắp xếp cho mỗi loại ƯU TIÊN XEM không?
.............................................................................................................................................

e. Mỗi loại lựa chọn trong phần ƯU TIÊN XEM dựa vào điều kiện gì trong quá
trình sắp xếp
.............................................................................................................................................

2. Cho biết tên 5 ứng dụng hoặc tên website có áp dụng thuật toán sắp xếp trong các
chức năng của mình

.........................................................................................................................................................

.........................................................................................................................................................

3. Cho ví dụ về các cách thức sắp xếp file/folder trong hệ điều hành Windows

.........................................................................................................................................................

3. BÀI TOÁN TÌM KIẾM

38
Tìm kiếm là quá trình tìm một phần tử nằm trong một tập hợp nhiều phần tử dựa vào một
miêu tả nào đó.

Ví dụ bạn cần tìm tờ 20,000VNĐ trong một đống tiền từ 500VNĐ đến 500,00VNĐ thì quá
trình đó ta gọi là tìm kiếm.

Nếu một tập hợp đã được sắp xếp thì quá trình tìm kiếm trong tập hợp đó sẽ nhanh hơn.

Nhưng nếu đó là một đống tiền lộn xộn thì bạn sẽ mất nhiều thời gian hơn để tìm kiếm

Vậy thuật toán tìm kiếm là thuật toán dùng để tìm kiếm phần tử trong một danh sách cho
trước theo một tiêu chí nhất định. Chúng ta thường sử dụng hai thuật toán đó là

 Thuật toán tìm kiếm tuần tự cho 1 danh sách chưa có thứ tự
 Thuật toán tìm kiếm nhị phân cho 1 danh sách có thứ tự

39
a. Thuật toán tìm kiếm tuần tự (Sequential Search)

PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (1≤ i≤ N ) và số nguyên dương k. Hãy tìm k trong
danh sách, nếu có cho biết vị trí xuất hiện. Nếu không thì xuất thông báo tương ứng

VD: tìm số 54 trong dãy số sau

DIỄN GIẢI THUẬT TOÁN: Tìm kiếm tuần tự được thực hiện
một cách tự nhiên.

 Bắt đầu từ a , ta so sánh nếu a =k thì dừng và xuất vị trí


1 1

tìm thấy là 1

 Nếu còn tiếp tục thì xét a 2, ta so sánh nếu a 2=k thì dừng
và xuất vị trí tìm thấy là 2
 …..
Tương tự: Ý tưởng tìm cây kim trong
 Nếu còn tiếp tục thì xét a N , ta so sánh nếu a N =k thì đống rơm của Thomas Edison “trong khi
chưa nghĩ ra được một cách thật hay thì
dừng và xuất vị trí tìm thấy là N
cứ việc rút từng cọng rơm cho đến khi rút
Sau khi xét xong a N mà chưa có kết luận gì tức là không được cây kim”.

tìm thấy k. Ta dừng và thông báo “Không tìm thấy giá trị = k trong dãy số”
PHÂN TÍCH

- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000) và số nguyên k;
6
các giá trị nguyên dương lần lượt là a 1 , a2 , a3 , … , a N với 0< ai ≤ 10 (1 ≤ i≤ N)

- Output: Chỉ số i mà a i=k (1 ≤ i≤ N ) hoặc thông báo “không có giá trị nào của dãy A có giá
trị bằng k”

40
THIẾT KẾ

Nhập N; dãy a0,…aN-1 ; k

Đưa ra i

Thông báo không có số nào= k

Ví dụ mô phỏng các bước thực hiện của thuật toán trên.

k = 2 và N = 10 k = 6 và N = 10

A 5 7 1 4 2 9 8 11 25 51 A 5 7 1 4 2 9 8 11 25 51

i 1 2 3 4 5 - - - - - i 1 2 3 4 5 6 7 8 9 10 11

Với mọi i từ 1 đến 10 không có ai có


Với i = 5 thì a5 = 2.
giá trị bằng 6.

41
b. Thuật toán tìm kiếm nhị phân (Binary Search)

Thuật toán tìm kiếm nhị phân dùng để tìm kiếm phần tử trong một danh sách đã được sắp
xếp,

Ví dụ: Trong một danh bạ điện thoại sắp xếp theo tên, có thể tìm kiếm số điện thoại của một
người theo tên người đó.

Trong một cuốn từ điển đã được sắp xếp theo từ, ta có thể tìm nhanh 1 từ nào đó

Thuật toán tìm kiếm nhị phân chạy nhanh hơn tìm kiếm tuần tự nhưng cũng có một số
nhược điểm. Nếu nội dung danh sách bị thay đổi thì danh sách phải được sắp xếp lại trước
khi sử dụng tìm kiếm nhị phân. Thao tác này thường tốn nhiều thời gian.

PHÁT BIỂU BÀI TOÁN: cho trước 1 dãy số nguyên có N phần tử (0< N ≤ 10000) với các giá trị
6
lần lượt là a 1 , a2 , a3 , … , a N với 0 ≤ ai ≤ 10 (0 ≤i ≤ N −1) và được sắp xếp tăng dần. Hãy tìm k
trong danh sách, nếu có cho biết vị trí xuất hiện. Nếu không thì xuất thông báo tương ứng

Ý TƯỞNG
Trong mỗi bước, so sánh phần tử cần tìm với phần tử nằm ở chính giữa danh sách.

Nếu hai phần tử bằng nhau thì phép tìm kiếm thành công và thuật toán kết thúc.

Nếu chúng không bằng nhau thì tùy vào phần tử nào lớn hơn, thuật toán lặp lại bước
so sánh trên với nửa đầu hoặc nửa sau của danh sách.

42
DIỄN GIẢI:

 Trường hợp tìm thấy

Giả sử ta có dãy A như sau N=11 các giá trị trong dãy ở các vị trí từ 010

Ta có giá trị cần tìm là key=22

Ta gán left=0 , right=N-1, mid=⌊ (¿¿)/2 ⌋ . Lưu ý: left <=right

Khi so sánh giữa key và A[mid], ta có key> A[mid] thì giá trị cần tìm là dãy con nằm sau vị trí
mid

Do đó, ta chỉ cần tìm tiếp trong dãy con sau mid mà thôi. Ta cập nhật lại left=mid+1, right
không thay đổi, mid=⌊ (¿¿)/2 ⌋

Tiếp tục so sánh giữa key và A[mid], ta có key< A[mid] thì giá trị cần tìm là dãy con nằm
trước vị trí mid

Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở trước vị trí mid. Ta cập nhật lại
left không thay đổi, right=mid-1, mid=⌊ (¿¿)/2 ⌋

43
Tiếp tục so sánh giữa key và A[mid], ta có key> A[mid] thì giá trị cần tìm là dãy con nằm sau
vị trí mid

Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở sau vị trí mid. Ta cập nhật lại
¿
left = mid +1, right không thay đổi,mid=⌊ ¿ ¿ 2 ⌋

Tiếp tục so sánh giữa key và A[mid], ta có key= A[mid] thì giá trị cần tìm là A[mid] và ta xuất
ra vị trí mid

44
 Trường hợp không tìm thấy: dãy số trên nhưng key=21

Thực hiện tương tự các bước như trên đến thời điểm

Tiếp tục so sánh giữa key và A[mid], ta có key< A[mid] thì giá trị cần tìm là dãy con nằm
trước vị trí mid. Do đó, trong dãy con đang xét, ta chia lại chỉ lấy những số ở trước vị trí
mid. Ta cập nhật lại left không thay đổi, right=mid-1, mid=⌊ (¿¿)/2 ⌋

Với trường hợp này, ta thấy right<left là vô lý. Mặt khác, nhìn trên hình vẽ ta thấy right đã
trỏ tới những giá trị không thể xét. Do đó, ta kết luận là “không tìm thấy key trong dãy”

NHẬN XÉT: Sau mỗi bước so sánh giữa key và A[mid], dãy đang xét bị chặt đôi để chuẩn bị
cho lần so sánh tiếp theo. Điều này khiến việc tìm kiếm rất nhanh nhưng chỉ thực hiện được
khi dãy đã cho có thứ tự

PHÂN TÍCH

- Input: số nguyên dương N (số phần tử của dãy 0< N ≤ 10000) và số nguyên key;
6
các giá trị nguyên dương lần lượt là a 0 , a 1 , a2 , a3 , … , a N−1 với 0< ai ≤ 10 (0 ≤ i≤ N−1)

- Output: Chỉ số i mà a i=k (0≤ i ≤ N −1) hoặc thông báo “không có giá trị nào của dãy A có
giá trị bằng k”

45
THIẾT KẾ

Begin

Nhập N ; dãy a0,…aN-1 ; key

left = 1; right = N

mid = [ (left +right)/2 ]

S (a mid < key) S(a mid  key)


a mid > key a mid = key

Đ
Đ

right= mid -1 Xuất ra mid


left = mid
+1

Đ
left <= right

S(left>right)

T/báo ko có key trong dãy

End

46
LUYỆN TẬP

1.

a. Cho biết tên website


.............................................................................................................................................

b. Website trên có chức năng Search không? Hãy chỉ ra vị trí


.............................................................................................................................................

c. Cho biết từ khóa tìm kiếm


.............................................................................................................................................

d. Trong các website hoặc ứng dụng, chức năng tìm kiếm thường được đi kèm
với chức năng gì?
.............................................................................................................................................

2. Cho biết tên 5 ứng dụng hoặc tên website có áp dụng thuật toán tìm kiếm và sắp xếp
trong các chức năng của mình

.........................................................................................................................................................

47
TÀI LIỆU THAM KHẢO
1. Tạ Viết Quý (2016). Tài liệu dạy-học Tin học 8. Nhà Xuất bản Giáo dục

2. Bùi Việt Hà (2016). Tài liệu tự học lập trình Scraft

3. Sách giáo khoa Tin 10

4. Báo PC WORLD

5. Một số bài viết trên Internet

48
NHỮNG CÔNG NGHỆ ĐỘT PHÁ SẼ THAY ĐỔI CÁCH SỐNG
VÀ LÀM VIỆC
Đức Phát (Theo Technologyreview)

21/04/2020 07:00

Đó là những công nghệ vượt bậc hằng năm, do tạp chí MIT Technology
Review bình chọn. Tiêu chí bình chọn của MIT không phải là công nghệ “mì
ăn liền” mà là những đột phá sẽ thực sự thay đổi cách chúng ta sống và làm
việc trong tương lai.

1. Mạng Internet bảo mật tuyệt đối

Một loại mạng Internet dựa


trên vật lý lượng tử sẽ ra
mắt sớm đảm bảo giao tiếp
an toàn. Một nhóm do
Stephanie Wehner, Đại học
Công nghệ Delft đang xây
dựng mạng lưới bằng công
nghệ lượng tử nhằm kết nối
bốn thành phố ở Hà Lan.
Những tin nhắn được gửi
qua mạng này sẽ không thể
bị hack.

Mạng Internet dựa trên vật


lý lượng tử. Ảnh: YOSHI
SODEOKA

Trong vài năm qua, các nhà khoa học đã tìm cách truyền các photon qua cáp quang
theo cách bảo vệ tuyệt đối thông tin mã hóa trong chúng. Một nhóm nghiên cứu ở
Trung Quốc đã sử dụng công nghệ để xây dựng đường trục mạng dài 2.000 km giữa
Bắc Kinh và Thượng Hải, nhưng dự án đó phụ thuộc một phần vào các yếu tố máy
tính cổ điển trước đây, thỉnh thoảng phá vỡ liên kết lượng tử mà chưa thiết lập một
liên kết lượng tử hoàn toàn nên vẫn có nguy cơ bị hack.

49
Ngược lại, mạng Delft sẽ là nơi đầu tiên truyền thông tin giữa các thành phố bằng
cách sử dụng các kỹ thuật lượng tử từ đầu đến cuối. Công nghệ dựa trên một hành vi
lượng tử của các hạt nguyên tử gọi là sự xoắn. Các photon xoắn không thể bị đọc lén
mà không dẫn tới phá vỡ nội dung của chúng.

Nhưng rất khó tạo ra các hạt xoắn, và việc truyền thông tin đi xa vẫn là một thách
thức. Nhóm của Wehner đã chứng minh nó có thể truyền hơn 1,5km (0.93 dặm). Họ
tự tin có thể thiết lập một liên kết lượng tử giữa hai thành phố Deft và Hague vào
cuối năm nay. Đảm bảo kết nối không bị gián đoạn trong những khoảng cách lớn hơn
sẽ phải yêu cầu các bộ lặp lượng tử mở rộng mạng.

“Các bộ lặp như vậy hiện đang được thiết kế tại Delft và các nơi khác”, Wehner nói,
“các bước đầu tiên cần được hoàn thành trong năm đến sáu năm tới, dự kiến là một
mạng lưới lượng tử toàn cầu sẽ được hoàn thiện vào cuối thập kỷ này”.

2. Thuốc siêu cá nhân hóa

Thuốc siêu cá nhân hóa - loại thuốc


mới lạ đang được thiết kế để điều trị
các đột biến di truyền.

Những loại thuốc mới lạ đang


được thiết kế để điều trị các đột
biến di truyền.

Đây là một định nghĩa của một ca


bệnh hoàn toàn hết hi vọng: Một
đứa trẻ mắc một căn bệnh hiểm
nghèo cực kì hiếm gặp mà không
có cách nào điều trị. Thậm chí
không có một nhà khoa học nào
nghiên cứu về chúng. Bởi vì nó “quá hiếm để phải quan tâm”.

Nhưng điều đó sắp thay đổi, nhờ vào các nhóm thuốc mới có thể được điều chỉnh
theo gene của một người. Nếu một căn bệnh cực kỳ hiếm gặp là do một lỗi DNA cụ
thể thì hiện nay ít nhất là họ có một cơ hội chiến đấu để sửa chữa lỗi di truyền.

Một trường hợp bệnh hiếm gặp như vậy là Mila Makovec, một cô bé mắc phải căn
bệnh rất hiếm gặp do đột biến gene, nhưng cô bé cuối cùng cũng đã có thuốc điều trị
cho riêng mình. Trường hợp của cô bé được đăng trên tạp chí dược phẩm Anh

50
(England Journal of Medicine) vào tháng 10, sau khi các bác sĩ đi từ quá trình đọc lỗi
di truyền sang điều trị cho cô bé chỉ trong vòng 1 năm. Họ gọi nó là thuốc Milasen,
dựa theo tên của cô.

Mặc dù việc điều trị đã không chữa khỏi hoàn toàn cho Mila. Nhưng thuốc đã giúp ổn
định tình trạng bệnh của cô bé: làm giảm các cơn co giật và giúp Mila bắt đầu đứng
và đi lại nếu có người hỗ trợ.

Với trường hợp của Mila, các nhà khoa học đã tạo ra một thuốc gene chưa bao giờ
nhanh đến thế và cũng chưa từng có cơ hội làm tốt như vậy. Các loại thuốc mới có
thể là hình thức thay thế gene, sửa chữa gene, hoặc antisense (loại thuốc mà Mila
nhận được), giúp xóa và sửa chữa các thông tin di truyền sai lệch.

Có bao nhiêu câu chuyện như của Mila? Cho đến nay, chỉ có một số rất ít. Nhưng
trong tương lai sẽ phổ biến hơn. Những trường hợp ngày mà trước các nhà khoa học
đành bó tay không thể làm gì thì hiện nay đã tìm ra những giải pháp thông qua quá
trình phân tích DNA.

Tuy nhiên, thách thức thực sự đối với các phương pháp điều trị này là thử nghiệm
lâm sàng trong đó bệnh nhân là toàn bộ thử nghiệm - là họ đang phải vượt qua quan
niệm trước đây về cách phát triển, thử nghiệm và bán dược phẩm. Đó là, ai sẽ trả
tiền cho những loại thuốc này khi họ
chỉ giúp cho một cá nhân nhưng vẫn
chưa có một mô hình nào thiết kế
và sản xuất đại trà?

3. Tiền kỹ thuật số

Sự gia tăng tiền kỹ thuật số tạo ra


sự phân nhánh lớn cho tài chính cá
nhân.

Tháng 6 năm ngoái, Facebook đã


tiết lộ một loại tiền kỹ thuật số toàn
cầu, tên gọi là Libra. Ý tưởng này đã
gây ra sự phản ứng dữ dội và Libra
có thể không bao giờ được khởi động, ít nhất là không theo cách mà nó được hình
dung ban đầu. Nhưng nó vẫn tạo ra sự khác biệt: chỉ vài ngày sau thông báo của
Facebook, một quan chức của Ngân hàng Nhân dân Trung Hoa ngụ ý rằng ngân hàng
này có thể phát triển đồng tiền kỹ thuật số riêng của mình. Bây giờ Trung Quốc đã
51
sẵn sàng để trở thành nền kinh tế lớn đầu tiên phát hành một phiên bản tiền kỹ
thuật số của mình, mà họ dự định thay thế cho tiền mặt.

Các nhà lãnh đạo Trung Quốc dường như nhìn thấy Libra, được hỗ trợ bởi một khoản
dự trữ sẽ chủ yếu là đồng USD, như một mối đe dọa: nó có thể củng cố quyền lực
không cân xứng của Mỹ đối với hệ thống tài chính toàn cầu, xuất phát từ đồng USD
có vai trò là đồng tiền dự trữ thực tế của thế giới.

Bây giờ Libra của Facebook đã trở thành một đồng tiền kỹ thuật số địa chính trị. Vào
tháng 10, CEO Mark Zuckerberg đã hứa với Quốc hội rằng Libra “ sẽ mở rộng khả
năng lãnh đạo tài chính của Mỹ cũng như các giá trị dân chủ và sự giám sát trên
khắp thế giới”. Cuộc chiến tiền kỹ thuật số thực sự đã bắt đầu.

4. Thuốc chống lão hóa

Làn sóng đầu tiên của một


nhóm thuốc chống lão hóa
mới đã bắt đầu được đưa
vào thử nghiệm trên người.
Những loại thuốc này không
có khả năng giúp bạn sống
lâu hơn, nhưng nó nhằm
mục đích điều trị các bệnh
cụ thể bằng cách làm chậm
hoặc đảo ngược quá trình
lão hóa cơ bản.

Các loại thuốc này được gọi


là senolytics, chúng hoạt
động bằng cách loại bỏ một
số tế bào nhất định khi
chúng ta già đi. Được biết
đến như các tế bào lão hóa, chúng có thể tạo ra tình trạng viêm ở mức độ thấp, ngăn
chặn các cơ chế sửa chữa tế bào bình thường và tạo ra một môi trường độc hại cho
các tế bào lân cận.

Vào tháng 6, Unity Biotechnology có trụ sở tại San Francisco, đã báo cáo kết quả ban
đầu ở những bệnh nhân bị thoái hóa khớp từ nhẹ đến nặng ở đầu gối. Kết quả từ một
thử nghiệm lâm sàng lớn hơn dự kiến vào nửa cuối năm 2020. Công ty cũng đang

52
phát triển các loại thuốc tương tự để điều trị các bệnh liên quan đến tuổi của mắt và
phổi, trong số các tình trạng khác.

Senolytics hiện đang trong các thử nghiệm ở người, cùng với một số phương pháp
hứa hẹn khác nhắm vào các quá trình sinh học nằm ở gốc rễ của lão hóa và các bệnh
khác nhau.

Một công ty có tên là Alkahest tiêm cho bệnh nhân những thành phần có trong máu
của người trẻ và nói rằng họ hy vọng sẽ ngăn chặn sự suy giảm nhận thức và chức
năng ở những bệnh nhân mắc bệnh Alzheimer nhẹ đến trung bình. Công ty cũng có
thuốc điều trị bệnh Parkinson và chứng mất trí nhớ trong thử nghiệm ở người.

Và vào tháng 12, các nhà nghiên cứu tại Đại học Y khoa Drexel thậm chí đã thử xem
liệu một loại kem trong đó có thuốc ức chế miễn dịch rapamycin liệu có thể làm
chậm lão hóa ở da người hay không.

Các xét nghiệm phản ánh các nỗ lực phát triển của các nhà nghiên cứu để tìm hiểu
xem có phải nhiều bệnh liên quan đến việc già đi như bệnh tim, viêm khớp, ung thư
và chứng mất trí nhớ có thể bị hack để trì
hoãn sự khởi phát của nó hay không.

5. Sử dụng AI để khám phá phân tử

Các nhà khoa học đã sử dụng AI để khám


phá các hợp chất đầy triển vọng giống như
thuốc.

Vũ trụ của các phân tử có khả năng cứu


sống có kích thướt lớn đến khó tin: các
nhà nghiên cứu ước tính số lượng rơi vào
khoảng 1060, nhiều hơn tất cả các nguyên
tử trong hệ Mặt trời, cung cấp khả năng
hóa học gần như không giới hạn nếu các nhà hóa học tìm ra những đánh giá.

Bây giờ các công cụ học máy có thể khám phá cơ sở dữ liệu lớn của các phân tử hiện
có và các thuộc tính của chúng, sử dụng thông tin để tạo ra các khả năng mới. Điều
này có thể làm cho nó nhanh hơn và rẻ hơn để khám phá các ứng cử viên mới.

Vào tháng 9, một nhóm các nhà nghiên cứu tại Insilico Medicine có trụ sở tại Hồng
Kông và Đại học Toronto đã có một bước tiến đầy thuyết phục để chỉ ra rằng chiến
53
lược này hoạt động bằng cách tổng hợp một số ứng cử viên thuốc được tìm thấy
bằng thuật toán AI.

Sử dụng các kỹ thuật như deep learning (giải quyết các vấn đề liên quan đến mạng
thần kinh nhân tạo nhằm nâng cấp các công nghệ như nhận diện giọng nói ,…) và
mô hình thế hệ tương tự như mô hình cho phép máy tính đánh bại nhà vô địch thế
giới trong trò chơi cổ xưa của Go, các nhà nghiên cứu đã xác định được khoảng
30.000 phân tử mới có đặc tính mong muốn. Họ đã chọn sáu phân tử để tổng hợp và
kiểm tra. Một trong số đặc biệt tích cực và tỏ ra đầy hứa hẹn trong các thử nghiệm
trên động vật.

Các nhà hóa học trong khám phá thuốc thường mơ về các phân tử mới. Đây là một
kỹ năng nghệ thuật được mài giũa bởi nhiều năm kinh nghiệm và, trong số những
người giỏi nhất, bằng một trực giác nhạy bén. Bây giờ các nhà khoa học có một công
cụ mới để mở rộng trí tưởng tượng của họ.

6. Những chùm vệ tinh khổng lồ

Vệ tinh có thể truyền một kết nối


băng thông rộng đến các thiết bị đầu
cuối internet, chúng có thể cung cấp
internet cho bất kì thiết bị nào gần
đó. Chỉ riêng hãng SpaceX đã muốn
gửi số lượng vệ tinh vào quỹ đạo gấp
4.5 lần so với số lượng đã từng
phóng từ thời Sputnik. Những vệ tinh
được chế tạo ngày càng nhỏ gọn
hơn, có giá rẻ hơn và nhiều tới nỗi
được gọi là các “chòm sao vệ tinh”.

Bây giờ chúng ta có thể đủ khả năng xây dựng, phóng và vận hành hàng chục ngàn
vệ tinh trên quỹ đạo cùng một lúc.
Trong kỷ nguyên tàu con thoi, phóng một vệ tinh vào vũ trụ có giá khoảng 24.800
USD mỗi pound. Một vệ tinh liên lạc nhỏ nặng bốn tấn đi vào quỹ đạo có giá gần 200
triệu USD. Ngày nay, một vệ tinh SpaceX Starlink nặng khoảng 500 pounds (227
kg). Một chiếc tên lửa SpaceX Falcon 9 để mang theo vệ tinh vào vũ trụ có giá chỉ
khoảng 1.240 USD mỗi pound, có thể mang theo cả chục vệ tinh mỗi lần phóng.

Chỉ riêng năm ngoái đã có 120 vệ tinh Starlink được phóng vào quỹ đạo vào năm
ngoái, công ty SpaceX đã có kế hoạch ra mắt lô 60 vệ tinh cứ mỗi hai tuần kể từ
tháng 1 năm 2020. OneWeb sẽ ra mắt hơn 30 vệ tinh vào cuối năm nay. Chúng ta có

54
thể sớm thấy được hàng ngàn vệ tinh hoạt động song song để cung cấp truy cập
internet cho cả những người nghèo nhất và xa nhất trên hành tinh này.

Tuy nhiên, một số nhà khoa học đang lo ngại bởi vì những vật thể này sẽ làm ảnh
hưởng tới nghiên cứu thiên văn học. Tồi tệ hơn, viễn cảnh một vụ va chạm có thể tạo
ra hàng triệu mảnh vụn không gian. Starlink suýt mất 1 vệ tinh thời tiết vào tháng 9
là một lời cảnh báo rằng thế giới đang thiếu sự chuẩn bị để quản lý các phương tiện
trên quỹ đạo này. Cách quản lý những chòm sao vệ tinh khổng lồ trong thập kỷ này
sẽ tác động đến tương lai của không gian quỹ đạo.

7. Ưu thế lượng tử

Google đã cung cấp bằng chứng


đầu tiên về một máy tính lượng tử
vượt trội so với máy tính cổ điển.
Máy tính lượng tử lưu trữ và xử lý
dữ liệu theo cách hoàn toàn khác
với máy tính mà chúng ta đều quen
thuộc. Về lý thuyết, chúng có thể
giải quyết một số vấn đề mà ngay
cả siêu máy tính cổ điển mạnh nhất
sẽ phải mất hàng thiên niên kỷ để
giải quyết, như phá những mật mã
hiện đại hoặc mô phỏng hành vi
chính xác của các phân tử để giúp
khám phá các loại thuốc và vật liệu
mới.

Đã có những máy tính lượng tử


hoạt động được vài năm, nhưng chỉ trong một số điều kiện nhất định, chúng mới
vượt trội so với máy tính cổ điển, và vào tháng 10, Google đã tuyên bố lần đầu tiên
chứng minh sức mạnh lượng tử mạnh đến như vậy. Với máy tính có 53 qubit, đơn vị
tính toán lượng tử cơ bản, Google đã thực hiện một phép tính dưới ba phút. Trong
khi theo tính toán của Google, siêu máy tính lớn nhất thế giới sẽ phải mất 10.000
năm, hay 1,5 tỷ lần. IBM không tin tuyên bố này của Google, họ nói rằng việc tăng
tốc tối đa chỉ gấp khoảng ngàn lần; nhưng kể cả như vậy, đây cũng vẫn là một cột
mốc quan trọng và mỗi qubit bổ sung sẽ làm cho máy tính nhanh gấp đôi.

Bản demo của Google hoàn toàn là một ý tưởng thử nghiệm – tính những tổng ngẫu
nhiên trên máy tính và đưa ra các kết quả đúng. Mục tiêu bây giờ là xây dựng các
máy có đủ qubit để giải quyết các vấn đề hữu ích. Đây là một thách thức khó đạt

55
được: càng có nhiều qubit, càng khó duy trì sự tinh tế của trạng thái lượng tử. Các kỹ
sư của Google tin rằng cách tiếp cận họ đang làm có thể đạt được từ 100 đến 1.000
qubit, đủ để làm một việc gì đó hữu ích, nhưng không ai chắc chắn điều gì.

Hơn thế nữa, các máy có thể bẻ khóa mật mã học ngày nay sẽ cần hàng triệu qubit;
có lẽ sẽ mất nhiều thập kỷ đạt được đến đó. Nhưng một trong những ứng dụng tiềm
năng là có thể mô hình hóa các phân tử dễ dàng hơn để xây dựng các mô hình phân
tử thuốc.

8. Trí tuệ nhân tạo (AI) tí hon

Bây giờ chúng ta có thể chạy các


thuật toán AI mạnh ngay cả trên
điện thoại của mình.
Một vấn đề của trí tuệ thông minh
nhân tạo là xây dựng các thuật toán
mạnh hơn, đòi hỏi dữ liệu và sức
mạnh tính toán nhanh hơn, dựa vào
các điện toán đám mây tập trung.
Điều này không chỉ tạo ra lượng khí
thải carbon đáng báo động mà còn
hạn chế tốc độ và quyền riêng tư
của các ứng dụng AI.

Nhưng những AI tí hon đang thay


đổi điều đó. Những hãng công nghệ khổng lồ và các nhà nghiên cứu đang nghiên cứu
các thuật toán mới để thu nhỏ các mô hình học sâu (deep-learning) hiện có mà
không mất khả năng của chúng. Trong lúc đó, một thế hệ chip AI chuyên dụng mới
nổi, hứa hẹn sẽ tích hợp nhiều sức mạnh tính toán hơn vào không gian vật lý nhỏ
hơn, đồng thời đào tạo và chạy AI với năng lượng ít hơn nhiều.

Tháng 5 năm ngoái, Google đã thông báo rằng giờ đây họ có thể chạy Google
Assistant trên điện thoại của người dùng mà không cần gửi yêu cầu đến máy chủ từ
xa. Kể từ iOS 13, Apple chạy các khả năng nhận dạng giọng nói của Siri và bàn phím
QuickType cục bộ của họ trên iPhone. IBM và Amazon hiện cũng cung cấp các nền
tảng dành cho nhà phát triển để tạo và triển khai AI tí hon.

Tất cả điều đó có thể mang lại nhiều lợi ích. Các dịch vụ hiện có như trợ lý giọng nói,
tự động sửa lỗi và máy ảnh kỹ thuật số sẽ trở nên tốt hơn và nhanh hơn mà không
cần phải ping đám mây mỗi khi chúng cần truy cập vào mô hình deep-learning. AI tí
hon cũng sẽ tạo ra các ứng dụng mới, như phân tích hình ảnh y tế dựa trên thiết bị

56
di động hoặc xe tự lái với thời gian phản ứng nhanh hơn. Cuối cùng, AI được nội địa
hóa tốt hơn cho quyền riêng tư, vì dữ liệu của bạn không còn cần phải xuất khỏi thiết
bị của bạn để cải thiện một dịch vụ hoặc tính năng.

Nhưng khi lợi ích của AI bị chi phối, thì đó cũng chính là thách thức của nó. Việc
chống lại các hệ thống giám sát hoặc video deepfake trở nên khó khăn hơn, chẳng
hạn, các thuật toán nhận thức cũng có thể sinh sôi nảy nở. Các nhà nghiên cứu, kỹ
sư và nhà hoạch định chính sách cần phải hợp tác ngay bây giờ để phát triển kiểm
tra kỹ thuật và chính sách về những tác hại tiềm tàng này.

9. Thuật toán Differential privacy

Một kỹ thuật để đo lường bảo mật của một tập


dữ liệu quan trọng.
Năm 2020, Chính phủ Hoa Kỳ có một nhiệm vụ
lớn: thu thập dữ liệu về 330 triệu cư dân của đất
nước trong khi vẫn phải giữ kín danh tính của họ.
Dữ liệu được công bố trong các bảng thống kê
mà các nhà hoạch định chính sách và học giả
phân tích khi làm luật hoặc tiến hành nghiên
cứu. Theo luật, Cục điều tra dân số phải đảm
bảo rằng dữ liệu phải được bảo mật tuyệt đối.

Nhưng vẫn có những mánh khóe để có thể làm lộ những thông tin ẩn danh này, đặc
biệt là nếu dữ liệu điều tra dân số được kết hợp với các số liệu thống kê công khai
khác.

Vì vậy, Cục điều tra dân số đã đưa một thuật toán để tạo ra những thông tin nhiễu
vào dữ liệu. Thông tin nhiễu này có thể là thay đổi độ tuổi của người được điều tra,
hoặc gán cho một số người da trắng thành người da đen và ngược lại, trong khi vẫn
giữ tổng số của từng độ tuổi hoặc nhóm dân tộc như nhau. Thao tác càng gây nhiễu
thì càng khó lộ danh tính.

Thuật toán Differential privacy là một kỹ thuật toán học làm cho quy trình này trở
nên nghiêm ngặt bằng cách khiến mức độ bảo mật tăng lên khi thêm nhiễu. Phương
pháp này đã được Apple và Facebook sử dụng để thu thập dữ liệu tổng hợp mà
không xác định người dùng cụ thể.

Nếu mọi việc suôn sẻ, phương pháp có thể sẽ được các cơ quan điều tra liên bang
khác hoặc các nước khác sử dụng. Các quốc gia khác như Canada và Vương quốc
Anh cũng đang theo dõi để ứng dụng thuật toán này.

57
10. Các thuộc tính của biến đổi khí hậu

Các nhà nghiên cứu hiện có thể khẳng định


chắc chắn về tác động của biến đổi khí hậu.
Mười ngày sau khi cơn bão nhiệt đới Imelda
bắt đầu tràn vào các khu vực quanh Houston,
Hoa Kỳ vào tháng 9 năm 2019, một nhóm
nghiên cứu ứng phó đã nhanh chóng tuyên bố
rằng biến đổi khí hậu chắc chắn đóng một vai
trò nhất định đến cơn bão này.

Nhóm Ghi nhận thời tiết thế giới (World


Weather Attribution), đã so sánh các mô
phỏng máy tính có độ phân giải cao về các
nơi biến đổi khí hậu đã xảy ra và không xảy ra. Hiện nay, các cơn bão nguy hiểm có
khả năng nhiều gấp 2,6 lần và có thể mạnh hơn tới 28%.

Chỉ một thập kỷ trước đây, chúng ta vẫn không thể tìm ra mối quan hệ chính xác
giữa các hiện tượng thời tiết này với biến đổi khí hậu. Nhưng trong vài năm trở lại
đây, các nhà khoa học đã có thể tìm ra mối liên hệ của bất kỳ sự kiện thời tiết cụ thể
nào với biến đổi khí hậu. Nhiều nghiên cứu thuộc tính thời tiết cực đoan hơn đã được
thực hiện trong vài năm qua, các công cụ và kỹ thuật cải tiến nhanh chóng đã khiến
chúng trở nên đáng tin cậy và thuyết phục hơn.

Để làm được điều này, giới khoa học khí hậu và khí tượng đã ứng dụng rất nhiều
công nghệ hiện đại khác nhau. Cụ thể, bản ghi kéo dài của dữ liệu vệ tinh chi tiết
đang giúp chúng ta hiểu các hệ thống tự nhiên. Ngoài ra, sức mạnh tính toán tăng
lên có nghĩa là các nhà khoa học có thể tạo ra các mô phỏng có độ phân giải cao hơn
và thực hiện nhiều thí nghiệm ảo hơn. Những điều này và những cải tiến khác đã cho
phép các nhà khoa học tuyên bố sự chắc chắn về mặt thống kê ngày càng tăng rằng:
sự nóng lên toàn cầu thường thúc đẩy các sự kiện thời tiết nguy hiểm hơn.

Bằng cách giải quyết vai trò của biến đổi khí hậu từ các yếu tố khác, các nghiên cứu
đang cho chúng ta biết những loại rủi ro nào mà chúng ta cần chuẩn bị đối phó, bao
gồm có bao nhiêu trận lũ lụt hay bao nhiêu đợt nắng nóng nghiêm trọng sẽ khiến
tình trạng nóng lên toàn cầu trở nên tồi tệ hơn. Nếu chúng ta biết lắng nghe, chúng
có thể giúp chúng ta hiểu cách xây dựng lại các thành phố và cơ sở hạ tầng cho một
thế giới thay đổi khí hậu

Đức Phát (Theo Technologyreview)

58
TỪ THẦN QUYỀN ĐẾN THUẬT TOÁN: AI ĐANG KIỂM SOÁT
CHÚNG TA?
19:00 23/01/2020

LỊCH SỬ QUYỀN LỰC LOÀI NGƯỜI NHÌN THEO TRỤC DỌC LÀ MỘT QUÁ TRÌNH VẬN ĐỘNG
TỪ THẦN QUYỀN, THẾ QUYỀN ĐẾN DÂN QUYỀN. NHƯNG, NHỮNG NĂM ĐẦU TIÊN CỦA THẾ
KỶ 21 CÓ THỂ SẼ LÀ SỰ KHỞI ĐẦU CHO MỘT MẪU QUYỀN LỰC THỨ 4, KHÁC HẲN VỀ
CHẤT SO VỚI 3 MẪU QUYỀN LỰC ĐẦU TIÊN: QUYỀN LỰC CỦA THUẬT TOÁN.

Thần quyền, loại quyền lực sơ khai nhất xuất hiện từ những thuở bình minh của lịch sử loài
người và vẫn có ít nhiều ảnh hưởng đến một bộ phận nào đó các tín đồ tôn giáo trong đời
sống nhân loại hôm nay. Tin vào sức mạnh huyền bí của một cái cây, một ngọn lửa, một
tiếng sấm, đấy là biểu hiện của thần quyền.

Làm theo những chỉ dẫn của một giáo chủ, một giáo hội, một tăng đoàn, đấy là biểu hiện của
thần quyền. Xã hội trung cổ phương Đông lẫn phương Tây đều đặc biệt tôn thờ loại hình
quyền lực này. Nhưng, bên cạnh thần quyền còn là thế quyền, biểu hiện ở uy lực của lãnh
chúa và sau đó là tầng lớp quý tộc phong kiến.

Trong nhiều trường hợp, thế quyền tựa vào thần quyền, trong những trường hợp đặc biệt
nào đó thì thế quyền vượt mặt thần quyền, chứng tỏ vai trò độc nhất vô nhị của mình trong
xã hội. Khi Napoleon mời đức Giáo hoàng đến sắc phong ngôi vị cho mình thì đấy là khi thế
quyền tựa vào thần quyền. Nhưng, khi Napoleon chủ động giật cái vương miện trên tay đức
Giáo hoàng để tự đội lên đầu mình (chứ không chờ Giáo hoàng đội nó lên đầu một tân
vương như thông lệ) thì đấy là khi “thế quyền” không còn coi “thần quyền” ra gì nữa.

Những vua chúa Trung Hoa thậm


chí có xu thế “thần quyền” hóa cái
“thế quyền” của mình, thông qua
việc tự gọi mình là thiên tử - con trời.
Vì mình là con trời nên mình thiêng
liêng. Vì mình là con trời nên mình
cao quý. Vì mình là con trời nên
mình tự cho mình cái quyền “thế
thiên hành đạo”. Và người dân trong
những xã hội ấy, ở những giai đoạn
ấy cũng luôn có xu thế nhìn vào vua
như nhìn vào một đấng tối cao, bất khả xâm phạm.

Phải đến khi xã hội phong kiến được thay thế bằng xã hội dân chủ thì quyền lực thật sự mới
thuộc về người dân. Các tổ chức nhà nước lúc này (cũng có thể coi là biểu hiện của “thế
quyền” kiểu mới) thực chất là những đối tượng đại diện cho nhân dân trong việc tạo ra các
chính sách mà xét về lý thuyết là để phục vụ một cách tốt nhất đời sống của nhân dân. Nhà
nước nào không làm được điều này sẽ lập tức bị nhân dân thay thế bằng nhà nước khác.

Như vậy, nếu thần quyền thuộc về một cõi siêu nhiên vô hình nào đó thì thế quyền và dân
quyền lại thuộc về con người với những biểu hiện cụ thể nhất quán, ai cũng thấy. Vì vậy, có
thể nói rằng lịch sử quyền lực loài người xét theo trục dọc là một lịch sử đi từ cái vô hình đến
cái hữu hình, từ cái thiêng liêng đến cái gần gũi, từ cái mơ hồ đến cái cụ thể.

Tuy nhiên, loại hình quyền lực thứ 4 đang manh nha xuất hiện trong những thập niên đầu
tiên của thế kỷ 21 - quyền lực thuật toán thì có vẻ lại vừa mơ hồ vừa cụ thể, vừa như “không

59
có gì”, vừa như “có tất cả”. Bây giờ hiếm có thể tìm được những vận động xã hội vượt thoát
khỏi tầm kiểm soát của các thuật toán.

Hằng ngày bạn có vào Internet không? Có! Vậy thì các thuật toán trên Internet sẽ theo dõi
bạn. Bạn có xu hướng xem những trang web nào, thuật toán sẽ theo dõi, lưu trữ và luôn sẵn
sàng đưa ra kết luận. Bạn có xu hướng tra cứu những thông tin nào trên Google, trên
YouTube, thuật toán cũng luôn tất yếu thực hiện những thao tác đó.

Và bạn có xu hướng viết những status như thế nào, với những biểu hiện lý tính và những
trạng thái cảm xúc ra sao, các thuật toán cũng luôn “kèm cặp” bạn từ A đến Z. Thế nên đừng
bất ngờ nếu một ngày nọ, trang Facebook cá nhân của bạn đột nhiên xuất hiện những lời
mời chào phù hợp hoàn toàn với nhu cầu của bạn, trùng khít với những đặc điểm tuổi tác và
tâm lý trong con người bạn. Ví dụ Facebook mời bạn mua những chiếc vòng tay màu xanh,
có khả năng trung hòa sự nóng nảy, dành riêng cho những người tuổi Tý.

Bạn sẽ bất ngờ: trời ơi, tại sao Facebook biết mình đang cần mua 1 chiếc vòng tay, lại biết
mình thích màu xanh, biết luôn cả việc mình là người nóng nảy và biết rõ mình là người tuổi
Tý? Ồ, đừng bất ngờ vì sau khi nghiên cứu những thông tin khai báo và các hành vi của bạn
trong một thời gian đủ dài, các thuật toán đủ thông minh để trả lời cho bạn câu hỏi, rốt cuộc
bạn là ai.

Thế nên, các nhà nghiên cứu công nghệ mới không ngoa khi kết luận, thời buổi hôm nay,
các thuật toán có thể hiểu ta hơn chính ta. Còn một câu đáng chú ý nữa: trước đây chúng ta
sử dụng Google miễn phí, bây giờ Google đang sử dụng chúng ta miễn phí.

Bạn sẽ thét lên: Vậy thì tôi sẽ tách mình khỏi Internet, để nằm ngoài mọi mối quan hệ với
các thuật toán. Khổ nỗi, phần lớn các vận động xã hội bây giờ đều dựa trên nền tảng
Internet. Vào mạng xã hội, tra cứu Google, bạn phải sử dụng Internet đã đành, gọi một chiếc
taxi công nghệ bạn cũng phải sử dụng Internet. Mà xu thế bây giờ, taxi công nghệ sẽ dần
thay thế taxi truyền thống.

Đọc thông tin một cách nhanh nhất, cập nhật nhất, thậm chí thông tin của một sự kiện đang
diễn ra ở một nơi cách xa
mình vạn dặm, bạn cũng
phải vào Internet, vì bạn
không đủ kiên nhẫn chờ
đợi thông tin đó ở những tờ
báo giấy vốn phải trải qua
một quá trình in ấn - phát
hành nhiêu khê. Tóm lại,
tách mình khỏi Internet,
bạn sẽ trở thành Robinson
ngoài đảo hoang, mà đấy
lại là cái đảo hoang nhận
thức ngay trong thành phố
của mình, trớ trêu chưa!

Có một thứ đặc quyền tưởng chừng sẽ thuộc về riêng bạn, cái thứ mà tưởng chừng không
liên quan đến bất cứ thuật toán nào, đó là cảm xúc. “Nhưng cảm xúc là gì?”, nhà nghiên cứu
lịch sử Harrari đặt câu hỏi trong cuốn sách mới nhất của ông 21 bài học cho thế kỷ 21. Và
ông trả lời: Cảm xúc suy cho cùng cũng là một quá trình sinh hóa. Vậy đến một thời điểm

60
nào đó của tương lai, cái tương lai chỉ cách chúng ta vài chục năm nữa thôi, nếu mỗi chúng
ta đều được gắn vào mình một chiếc máy cảm biến thì sao nhỉ?

Chiếc máy cảm biến ấy sẽ chỉ ra quy trình sinh hóa trong cơ thể chúng ta và từ đó có thể
đoán biết chúng ta đang có những trạng thái cảm xúc nào. Vui ư? Buồn ư? Giận dỗi ư? Sợ
hãi ư? Nóng nảy đến mức muốn giết người ư? Thuật toán sẽ giải mã và trí tuệ nhân tạo (AI)
sẽ đưa ra câu trả lời chính xác.

Harari còn đưa những tình huống đáng suy nghĩ hơn nữa: con người hiện nay đôi khi phải
trả giá rất đắt cho những quyết định lầm lỡ của mình, từ việc chọn nghề nghiệp đến chọn vợ
chọn chồng. Bởi ở tuổi 18, chúng ta chưa đủ hiểu mình để chọn ngay một nghề nghiệp phù
hợp với nhất mình. Ở tuổi 25 chúng ta cũng chưa đủ hiểu người mà mình định lấy làm vợ
hoặc chồng để có được những chọn lựa tối ưu.

Nhưng, với những phân tích chính xác về các đặc điểm của chúng ta và các đặc điểm liên
quan đến những đối tượng có khả năng tương tác với chúng ta, thuật toán có thể đưa ra
những câu trả lời chính xác. Khi ấy, muốn chọn lựa nghề nghiệp gì, ta sẽ hỏi thuật toán,
muốn cưới ai, ta sẽ hỏi thuật toán. Thậm chí người đứng đầu một chính phủ sau khi tham
khảo ý kiến của các thành viên trong tổ tư vấn sẽ đưa ra quyết định cuối cùng dựa trên lời
khuyên của thuật toán. Sự chuyển dịch từ thần quyền, thế quyền, dân quyền sang thuật toán
vì thế là một sự chuyển dịch phá toang những kết cấu truyền thống trong xã hội loài người.
Và vì thế con người không thể lấy những kinh nghiệm có được trong mối tương tác với 3 loại
hình quyền lực trước để ứng xử với loại hình quyền lực thứ 4.

Đọc tới đây, bạn sẽ hỏi: suy cho cùng thì ai làm ra thuật toán? Ai đọc các thuật toán? Ai xử
lý cả một núi thông tin mà các thuật toán đưa ra? Câu trả lời chắc chắn là con người.
Nhưng, không phải là tất cả con người như những gì mà chúng ta vẫn hình dung trong cái
mô hình “phổ thông đầu phiếu” mang tính bằng đẳng cao.

Thực chất là chỉ có một nhóm nhỏ những con người tinh hoa, siêu việt nào đó mà thôi. Ở
một góc nào đó của thế giới, nhóm nhỏ tinh hoa siêu việt này sẽ đọc kết quả của các thuật
toán, từ đó sẽ chi phối những vận động mang tính chiến lược của nhân loại.

Theo một thống kê mới nhất thì 8 người giàu nhất thế giới hiện nay đang sở hữu một lượng
tài sản bằng với số tài sản của 3,6 tỷ người nghèo nhất. Tức là sự phân hóa về tài sản đang
tạo nên những bất bình đẳng khủng khiếp trong xã hội loài người. Nhưng, trong tương lai,
với sự lên ngôi của các thuật toán và trí tuệ nhân tạo thì sự phân hóa về thông tin còn khủng
khiếp hơn nữa.

Và Harari bảo: Khi ấy, trong bản thân loài người rất có thể sẽ phân chia thành những giống
loài khác nhau.

Tin hay không, tùy bạn!

Phan Mỹ Chí

http://antgct.cand.com.vn/Khoa-hoc-Van-Minh/

61

You might also like