Font size
S
M
L
XL
Worksheetsđoán xem
Total questions: 204
Worksheet time: 2hrs 42mins
Name
Class
Date
1.
Ngôn ngữ lập trình chính được sử dụng trong thư viện Robot Maze là gì?
a)
Java
b)
Python
c)
C++
d)
JavaScript
2.
Lệnh `robot.go()` trong Robot Maze có chức năng gì?
a)
Robot quay trái
b)
Robot quay phải
c)
Robot tiến lên một ô
d)
Robot lùi lại một ô
3.
Lệnh `robot.turn("LEFT")` sẽ khiến robot thực hiện hành động gì?
a)
Tiến lên
b)
Lùi xuống
c)
Rẽ trái
d)
Rẽ phải
4.
Lệnh `robot.look("AHEAD")` trả về giá trị gì nếu có tường phía trước?
a)
0
b)
FALSE
c)
True
d)
"AHEAD"
5.
Hàm `robot.checkFirstGoal()` trả về `True` khi nào?
a)
Khi robot bắt đầu chạy
b)
Khi robot chạm vào tường
c)
Khi robot đến đích ở trung tâm
d)
Khi robot hoàn thành cả 2 vòng
6.
Chức năng chính của công cụ Robot Maze là gì?
a)
Vẽ đồ thị
b)
Soạn thảo văn bản
c)
Mô phỏng thuật toán giải mê cung
d)
Tạo trò chơi điện tử
7.
Tập tin nào trong thư viện Robot Maze chứa chương trình điều khiển chính?
a)
main.py
b)
robot_maze.py
c)
controller.py
d)
maze_simulator.py
8.
Giá trị trả về của `robot.look("RIGHT")` khi không có tường bên phải là gì?
a)
1
b)
True
c)
"RIGHT"
9.
Hàm `robot.checkFinish()` trả về `True` khi nào?
a)
Robot bắt đầu
b)
Robot đến đích trung tâm
c)
Robot hoàn thành cả 2 vòng chạy
d)
Robot gặp lỗi
10.
Bước đầu tiên để bắt đầu lập trình với Robot Maze là gì?
a)
Tải file thư viện
b)
Cài đặt một IDE Python
c)
Chạy file controller.py
d)
Tạo mê cung
11.
Khi thực hiện lệnh `robot.turn("BEHIND")`, robot sẽ quay về hướng nào?
a)
Trái
b)
Phải
c)
Trước mặt
d)
Đằng sau
12.
Giả sử robot đang quay mặt về hướng Bắc. Sau lệnh `robot.turn("LEFT")`, hướng của robot sẽ là?
a)
Đông
b)
Tây
c)
Nam
d)
Bắc
13.
Điều gì xảy ra nếu robot thực hiện `robot.go()` khi có tường chắn trước mặt?
a)
Robot đi xuyên tường
b)
Robot dừng chương trình
c)
Robot báo lỗi
d)
Robot không di chuyển và có thể gặp lỗi
14.
Thuật toán "Hand on Wall" còn được gọi là gì?
a)
Thuật toán Dijkstra
b)
Left-hand rule
c)
Thuật toán A*
d)
Thuật toán BFS
15.
Điều kiện để cơ chế "Hand on Wall" hoạt động hiệu quả là gì?
a)
Mê cung có nhiều ngõ cụt
b)
Mê cung là ma trận được kết nối hoàn chỉnh
c)
Mê cung có nhiều đích đến
d)
Robot có bộ nhớ lớn
16.
Khi sử dụng quy tắc tay trái (Left-hand rule), robot sẽ luôn cố gắng làm gì?
a)
Đi thẳng
b)
Rẽ phải
c)
Giữ tay trái chạm tường
d)
Giữ tay phải chạm tường
17.
Trong cơ chế "Hand on Wall", nếu robot gặp ngõ cụt, nó sẽ xử lý thế nào?
a)
Dừng lại
b)
Quay đầu
c)
Đi xuyên tường
d)
Nhảy sang ô bên cạnh
18.
Giá trị trả về của `robot.look("LEFT")` và `robot.look("RIGHT")` đều là `False`. Điều này cho thấy điều gì?
a)
Robot đang trong ngõ cụt
b)
Có hai lối đi ở hai bên
c)
Phía trước là tường
d)
Robot đã đến đích
19.
Lệnh `robot.turn("RIGHT")` tương đương với việc thực hiện lệnh `robot.turn("LEFT")` mấy lần?
a)
1
b)
2
c)
3
d)
4
20.
Hàm `control(robot)` trong `controller.py` có vai trò gì?
a)
Khởi tạo mê cung
b)
Là hàm chính để lập trình điều khiển robot
c)
Vẽ giao diện người dùng
d)
Kết nối cơ sở dữ liệu
21.
Dummy Robot 01 có đặc điểm gì?
a)
Sử dụng trí thông minh nhân tạo
b)
Đi theo hướng ngẫu nhiên tại mỗi ô
c)
Luôn đi thẳng
d)
Bám tường trái
22.
Dummy Robot 02 cải tiến Dummy Robot 01 bằng cách nào?
a)
Sử dụng camera
b)
"Nhìn" ra xa trước khi đi
c)
Lưu lại lộ trình
d)
Di chuyển nhanh hơn
23.
Dummy Robot 03 giới thiệu khái niệm mới nào?
a)
Lưu trữ các lựa chọn đã thực hiện
b)
Điều khiển bằng giọng nói
c)
Kết nối Internet
d)
Tự sạc pin
24.
Sự khác biệt chính giữa Dummy Robot 04 và 03 là gì?
a)
Tốc độ
b)
Kiểm tra điều kiện dừng khi đến đích trung tâm
c)
Màu sắc robot
d)
Kích thước robot
25.
Dummy Robot 05 yêu cầu robot phải làm gì sau khi đến đích trung tâm?
a)
Dừng hẳn
b)
Tiếp tục chạy cho đến khi về lại đích
c)
Tự hủy
d)
Phát nhạc
26.
Khi robot thực hiện chiến lược "Hand on Wall" (tay phải) và thấy tường bên phải, không có tường phía trước, hành động của robot sẽ là?
a)
Quay đầu
b)
Rẽ trái
c)
Đi thẳng
d)
Rẽ phải
27.
Trong "Hand on Wall", nếu robot có tường bên phải và tường phía trước, nhưng không có tường bên trái, nó sẽ làm gì?
a)
Đi thẳng
b)
Rẽ phải
c)
Rẽ trái
d)
Quay đầu
28.
Giả sử robot đang dùng Left-hand rule. Ở một ngã tư, không có tường bên trái, không có tường phía trước, nhưng có tường bên phải. Robot sẽ chọn hướng nào?
a)
Đi thẳng
b)
Rẽ phải
c)
Rẽ trái
d)
Quay đầu
29.
Đoạn code nào mô tả đúng việc robot tiến lên nếu không có tường phía trước?
a)
`if robot.look("AHEAD"): robot.go()`
b)
`if not robot.look("AHEAD"): robot.go()`
c)
`if robot.look("LEFT"): robot.go()`
d)
`robot.go()`
30.
Làm thế nào để robot quay đầu 180 độ?
a)
`robot.turn("LEFT")`
b)
`robot.turn("RIGHT")`
c)
`robot.turn("LEFT"); robot.turn("LEFT")`
d)
`robot.go()`
31.
Để kiểm tra robot đã hoàn thành nhiệm vụ chưa, ta nên sử dụng vòng lặp while với điều kiện gì?
a)
`while robot.checkFirstGoal():`
b)
`while True:`
c)
`while not robot.checkFinish():`
d)
`while robot.go():`
32.
Ý tưởng của Bài tập B01 (từ Dummy Robot) là gì?
a)
Tăng tốc độ robot
b)
Lưu danh sách các lệnh đã thực hiện (ví dụ: ["GO", "LEFT", ...])
c)
Xóa bộ nhớ
d)
Tắt robot
33.
Bài tập B02 yêu cầu kết hợp hai kỹ thuật nào?
a)
"Hand on wall" lượt đi và quay lui lượt về
b)
Đi thẳng cả đi và về
c)
Nhảy cóc
d)
Lặp ngẫu nhiên
34.
Hệ tam phân được đề cập trong Bài tập B03 là gì?
a)
Hệ đếm cơ số 2
b)
Hệ đếm cơ số 3
c)
Hệ đếm cơ số 10
d)
Hệ đếm cơ số 16
35.
Mục đích của việc mã hóa lộ trình bằng hệ tam phân trong B03 là gì?
a)
Làm code khó đọc hơn
b)
Nén thông tin, lưu trữ nhiều trạng thái hơn trong một dãy số ngắn
c)
Tăng tốc độ xử lý
d)
Giảm tiêu thụ điện năng
36.
Giả sử một robot sử dụng Right-hand rule. Tại một điểm, nó phát hiện thấy tường ở cả 3 hướng: TRƯỚC, TRÁI, PHẢI. Hướng duy nhất còn lại là gì?
a)
Trên
b)
Dưới
c)
Bắc
d)
Đằng sau
37.
Làm thế nào để một robot "Hand on Wall" có thể thoát khỏi một mê cung có nhiều vòng tròn lồng vào nhau (concentric circles) một cách hiệu quả?
a)
Nó không thể thoát
b)
Nó luôn tìm được đường ra nếu mê cung liên thông
c)
Nó cần một bộ nhớ vô hạn
d)
Nó cần may mắn
38.
Một robot được lập trình với thuật toán Flood Fill. Lợi thế chính của Flood Fill so với "Hand on Wall" trong việc tìm đường ngắn nhất là gì?
a)
Tốn ít bộ nhớ hơn
b)
Không cần cảm biến
c)
Luôn tìm được đường đi ngắn nhất
d)
Dễ lập trình hơn
39.
Khi triển khai Bài tập B02, làm thế nào để robot phân biệt được giữa lượt đi và lượt về?
a)
Dựa vào thời gian
b)
Dựa vào việc kiểm tra `robot.checkFirstGoal()`
c)
Dựa vào số bước đã đi
d)
Dựa vào hướng của robot
40.
Trong một mê cung phức tạp, việc lưu trữ toàn bộ lộ trình bằng danh sách các lệnh (B01) có thể dẫn đến vấn đề gì?
a)
Robot chạy nhanh hơn
b)
Tiêu thụ nhiều bộ nhớ (Memory) nếu lộ trình dài
c)
Tự động tắt
d)
Không ảnh hưởng gì
41.
Ý tưởng đằng sau việc sử dụng hệ tam phân (B03) để mã hóa lộ trình thay vì một danh sách các chuỗi là gì?
a)
Làm cho code dễ đọc hơn
b)
Tiết kiệm bộ nhớ bằng cách sử dụng biểu diễn số học hiệu quả
c)
Làm cho robot chạy chậm lại
d)
Không có lợi ích gì
42.
Làm thế nào để giải mã một số hệ tam phân (ví dụ: 1201₃) thành một chuỗi hành động cho robot?
a)
Chia số cho 10
b)
Đọc từng chữ số và ánh xạ thành lệnh (0: LEFT, 1: GO, 2: RIGHT)
c)
Cộng thêm 1
d)
Nhân đôi số đó
43.
Khi robot thực hiện quay lui trong lượt về (B02), làm thế nào để nó "đảo ngược" một lệnh từ danh sách? Ví dụ, lệnh "GO" khi đi thì lệnh đảo ngược khi về là gì?
a)
Vẫn là "GO"
b)
"TURN LEFT"
c)
"TURN RIGHT"
d)
Không làm gì
44.
Đối với lệnh rẽ, ví dụ lệnh "TURN LEFT" khi đi, thì lệnh đảo ngược khi về là gì?
a)
"TURN LEFT"
b)
"TURN RIGHT"
c)
"GO"
d)
Không làm gì
45.
Làm thế nào để đảm bảo robot không rơi vào trạng thái lặp vô hạn trong một mê cung không có lối ra?
a)
Luôn có lối ra
b)
Sử dụng bộ đếm số bước và dừng lại khi vượt quá một ngưỡng
c)
Không thể
d)
Tắt nguồn bằng tay
46.
Giả sử bạn muốn robot của mình có thể học và cải thiện hiệu suất qua nhiều lần chạy trong cùng một mê cung. Hướng tiếp cận nào khả thi nhất?
a)
Chỉ sử dụng "Hand on Wall"
b)
Lưu lại bản đồ mê cung đã khám phá vào file và đọc lại ở lần chạy sau
c)
Tăng tốc độ robot
d)
Giảm kích thước robot
47.
Trong thư viện Robot Maze, hàm `robot.look("BEHIND")` dùng để làm gì?
a)
Kiểm tra tường phía trước
b)
Kiểm tra tường bên trái
c)
Kiểm tra tường bên phải
d)
Kiểm tra tường phía sau
48.
Khi nào thì hàm `robot.checkFinish()` trả về True?
a)
Khi robot bắt đầu di chuyển
b)
Khi robot đến đích trung tâm
c)
Khi robot hoàn thành cả lượt đi và lượt về
d)
Khi robot gặp tường
49.
Tập tin `controller.py` nằm trong thư mục nào?
a)
_internal
b)
external
c)
docs
d)
src
50.
Lệnh nào khiến robot di chuyển về phía trước?
a)
robot.turn()
b)
robot.go()
c)
robot.look()
d)
robot.stop()
51.
Giá trị trả về của `robot.look("LEFT")` khi có tường bên trái là gì?
a)
0
b)
"LEFT"
c)
True
52.
Robot Maze hỗ trợ tạo loại mê cung nào?
a)
Mê cung ngẫu nhiên
b)
Mê cung cố định duy nhất
c)
Mê cung hình tròn
d)
Mê cung 3D
53.
IDE nào được gợi ý để lập trình với Robot Maze?
a)
Visual Studio
b)
Eclipse
c)
Thonny
d)
PyCharm
54.
Lệnh `robot.turn("RIGHT")` làm gì?
a)
Robot tiến lên
b)
Robot lùi lại
c)
Robot rẽ phải
d)
Robot rẽ trái
55.
Dummy Robot 01 có hành vi gì?
a)
Đi theo tường trái
b)
Đi theo đường ngắn nhất
c)
Di chuyển ngẫu nhiên
d)
Đứng yên tại chỗ
56.
Trong Dummy Robot 02, robot sử dụng hàm gì để kiểm tra trước khi di chuyển?
a)
robot.go()
b)
robot.turn()
c)
robot.look()
d)
robot.checkFinish()
57.
Khi sử dụng Right-hand rule, robot luôn ưu tiên hướng nào đầu tiên?
a)
Đi thẳng
b)
Rẽ trái
c)
Rẽ phải
d)
Quay đầu
58.
Giả sử robot đang dùng Left-hand rule và gặp ngã tư có 3 lối đi (trái, thẳng, phải). Hướng nào robot sẽ chọn?
a)
Đi thẳng
b)
Rẽ phải
c)
Rẽ trái
d)
Quay đầu
59.
Tại sao cơ chế "Hand on Wall" chỉ hoạt động tốt với mê cung liên thông?
a)
Vì robot cần nhiều năng lượng
b)
Vì nó đảm bảo robot có thể đi qua mọi ô
c)
Vì robot chạy nhanh hơn
d)
Vì code đơn giản hơn
60.
Khi robot dùng Left-hand rule và thấy tường bên trái, tường phía trước, không tường bên phải, nó sẽ làm gì?
a)
Rẽ trái
b)
Đi thẳng
c)
Rẽ phải
d)
Quay đầu
61.
Đoạn code nào sau đây kiểm tra xem có thể đi thẳng không?
a)
`if robot.look("AHEAD"):`
b)
`if not robot.look("LEFT"):`
c)
`if not robot.look("AHEAD"):`
d)
`if robot.look("RIGHT"):`
62.
Làm thế nào để robot quay phải 90 độ?
a)
`robot.turn("LEFT")`
b)
`robot.turn("RIGHT")`
c)
`robot.go()`
d)
`robot.look("RIGHT")`
63.
Sau khi thực hiện `robot.turn("LEFT")` hai lần, hướng của robot thay đổi thế nào?
a)
Quay 90 độ trái
b)
Quay 90 độ phải
c)
Quay 180 độ
d)
Giữ nguyên hướng
64.
Trong Dummy Robot 03, dữ liệu được lưu trữ dưới dạng gì?
a)
Số nguyên
b)
Chuỗi ký tự
c)
Danh sách
d)
Cơ sở dữ liệu
65.
Bài tập B01 yêu cầu điều gì?
a)
Tăng tốc độ
b)
Lưu lịch sử lệnh vào danh sách
c)
Xóa danh sách
d)
Thay đổi màu robot
66.
Hệ tam phân sử dụng các chữ số nào?
a)
0,1
b)
0,1,2
c)
0,1,2,3
d)
0-9
67.
Làm thế nào để robot phát hiện đã đến đích trung tâm?
a)
`robot.checkFirstGoal()`
b)
`robot.look("AHEAD")`
c)
`robot.go()`
d)
`robot.turn()`
68.
Khi robot thực hiện `robot.look("AHEAD")` và nhận được False, điều đó có nghĩa là gì?
a)
Có tường phía trước
b)
Không có tường phía trước
c)
Robot đã đến đích
d)
Có lỗi xảy ra
69.
Trong Right-hand rule, nếu không có tường bên phải, robot sẽ làm gì?
a)
Đi thẳng
b)
Rẽ phải
c)
Quay đầu
d)
Rẽ trái
70.
Dummy Robot 04 dừng lại khi nào?
a)
Khi gặp tường
b)
Khi hết pin
c)
Khi đến đích trung tâm
d)
Khi hoàn thành 2 vòng
71.
Sự khác biệt giữa Dummy Robot 05 và 04 là gì?
a)
05 dừng ở đích, 04 không dừng
b)
04 dừng ở đích, 05 tiếp tục chạy
c)
05 chạy nhanh hơn
d)
04 có màu đỏ
72.
Khi triển khai "Hand on Wall", nếu robot gặp điểm giao nhau có 4 hướng đi, nó sẽ xử lý thế nào?
a)
Dừng lại
b)
Chọn hướng ngẫu nhiên
c)
Tuân theo thứ tự ưu tiên của quy tắc tay trái/phải
d)
Luôn đi thẳng
73.
Làm thế nào để viết code cho robot di chuyển theo Right-hand rule?
a)
Luôn rẽ trái
b)
Ưu tiên rẽ phải, rồi thẳng, rồi trái, rồi quay đầu
c)
Luôn đi thẳng
d)
Chỉ rẽ khi gặp tường
74.
Đoạn code nào mô tả đúng logic ưu tiên của Left-hand rule?
a)
`if not robot.look("LEFT"): robot.turn("LEFT")`
b)
`if not robot.look("RIGHT"): robot.turn("RIGHT")`
c)
`if not robot.look("AHEAD"): robot.go()`
d)
`if robot.look("BEHIND"): robot.turn("LEFT")`
75.
Làm thế nào để kết hợp kiểm tra nhiều hướng trong một câu lệnh điều kiện?
a)
Sử dụng vòng lặp for
b)
Sử dụng câu lệnh if lồng nhau
c)
Sử dụng hàm print
d)
Sử dụng biến global
76.
Giả sử robot đang dùng Left-hand rule. Code nào sau đây thực hiện kiểm tra ưu tiên rẽ trái?
a)
`if not robot.look("RIGHT"): ...`
b)
`if not robot.look("LEFT"): ...`
c)
`if robot.look("AHEAD"): ...`
d)
`if not robot.look("AHEAD"): ...`
77.
Làm thế nào để đảm bảo robot "Hand on Wall" không bỏ sót ô nào trong mê cung?
a)
Tăng tốc độ
b)
Sử dụng bộ nhớ để đánh dấu các ô đã thăm
c)
Giảm kích thước robot
d)
Chạy ngẫu nhiên
78.
Khi gặp ngõ cụt, robot "Hand on Wall" sẽ xử lý thế nào?
a)
Dừng mãi mãi
b)
Nhảy qua tường
c)
Quay đầu lại và tiếp tục theo quy tắc
d)
Đi lùi
79.
Làm thế nào để robot quay đầu lại?
a)
`robot.turn("LEFT")` một lần
b)
`robot.turn("RIGHT")` một lần
c)
`robot.turn("LEFT")` hai lần
d)
`robot.go()` hai lần
80.
Bài tập B02 yêu cầu robot sử dụng kỹ thuật gì trong lượt về?
a)
"Hand on Wall"
b)
Quay lui (backtracking)
c)
Chạy ngẫu nhiên
d)
Bay qua mê cung
81.
Trong Bài tập B03, việc mã hóa tam phân giúp gì?
a)
Tăng tốc độ xử lý
b)
Giảm dung lượng lưu trữ
c)
Tăng độ chính xác
d)
Giảm tiêu thụ điện
82.
Làm thế nào để chuyển đổi một danh sách lệnh ["LEFT", "GO", "RIGHT"] sang mã tam phân?
a)
Gán số cho mỗi lệnh (ví dụ: LEFT=0, GO=1, RIGHT=2) và ghép lại
b)
Viết lại danh sách
c)
Xóa danh sách
d)
Đảo ngược danh sách
83.
Khi giải mã số tam phân 102₁₃, với quy ước 0=LEFT, 1=GO, 2=RIGHT, ta được chuỗi lệnh gì?
a)
[GO, LEFT, RIGHT]
b)
[LEFT, GO, RIGHT]
c)
[GO, LEFT, GO]
d)
[GO, RIGHT, LEFT]
84.
Làm thế nào để robot thực hiện quay lui chính xác trong lượt về?
a)
Thực hiện ngược lại từng lệnh từ cuối danh sách
b)
Chạy ngẫu nhiên
c)
Lặp lại lượt đi
d)
Sử dụng "Hand on Wall" ngược
85.
Lệnh đảo ngược của "TURN RIGHT" trong quay lui là gì?
a)
"TURN RIGHT"
b)
"TURN LEFT"
c)
"GO"
d)
"STOP"
86.
Lệnh đảo ngược của "GO" trong quay lui là gì?
a)
"GO"
b)
"TURN LEFT"
c)
"TURN RIGHT"
d)
"STOP"
87.
Làm thế nào để tránh lỗi vòng lặp vô hạn trong "Hand on Wall"?
a)
Không thể tránh
b)
Đặt giới hạn số bước tối đa
c)
Tắt robot sau 1 phút
d)
Luôn chọn hướng ngẫu nhiên
88.
Khi nào thì nên sử dụng "Hand on Wall" thay vì các thuật toán phức tạp khác?
a)
Khi mê cung rất nhỏ
b)
Khi yêu cầu đường đi ngắn nhất
c)
Khi cần code đơn giản, dễ hiểu
d)
Khi robot có bộ nhớ hạn chế
89.
Làm thế nào để debug chương trình điều khiển robot?
a)
Sử dụng hàm print() để in trạng thái
b)
Không cần debug
c)
Tắt máy tính
d)
Chạy lại chương trình
90.
Giả sử robot của bạn bị kẹt trong một vòng lặp nhỏ. Cách khắc phục nào hiệu quả?
a)
Tăng tốc độ
b)
Thêm bộ nhớ để ghi nhận các ô đã thăm
c)
Giảm kích thước robot
d)
Đổi màu robot
91.
Làm thế nào để cài đặt một thuật toán tìm đường ngắn nhất (như BFS) cho robot?
a)
Sử dụng "Hand on Wall"
b)
Xây dựng bản đồ mê cung và áp dụng BFS trên bản đồ đó
c)
Chạy ngẫu nhiên nhiều lần
d)
Dùng thư viện có sẵn
92.
Làm thế nào để robot có thể xử lý mê cung thay đổi động?
a)
Chỉ chạy trên mê cung cố định
b)
Liên tục cập nhật bản đồ và replan đường đi
c)
Dừng lại khi mê cung thay đổi
d)
Yêu cầu trợ giúp
93.
Khi triển khai BFS cho robot, cấu trúc dữ liệu nào phù hợp để lưu các ô cần duyệt?
a)
Stack
b)
Queue
c)
List
d)
Dictionary
94.
Làm thế nào để giảm thiểu thời gian chạy của robot trong mê cung lớn?
a)
Tăng tốc độ phần cứng
b)
Sử dụng thuật toán hiệu quả hơn "Hand on Wall"
c)
Giảm kích thước mê cung
d)
Tắt các cảm biến
95.
Làm thế nào để robot phân biệt giữa hai ngã rẽ giống hệt nhau?
a)
Dựa vào vị trí tuyệt đối
b)
Dựa vào lịch sử các lệnh đã thực hiện
c)
Không thể phân biệt
d)
Dựa vào màu sắc
96.
Trong mã hóa tam phân, làm thế nào để biểu diễn một chuỗi lệnh dài hơn?
a)
Sử dụng nhiều số tam phân
b)
Chỉ dùng một số
c)
Bỏ qua các lệnh
d)
Rút gọn chuỗi
97.
Làm thế nào để giải quyết vấn đề tràn số khi mã hóa tam phân cho chuỗi lệnh rất dài?
a)
Sử dụng thư viện số lớn (Big Integer)
b)
Chuyển sang hệ nhị phân
c)
Ngừng mã hóa
d)
Bỏ qua lỗi
98.
Khi kết hợp "Hand on Wall" và quay lui, làm thế nào để xác định thời điểm chuyển từ lượt đi sang lượt về?
a)
Dựa vào thời gian
b)
Dựa vào `robot.checkFirstGoal()`
c)
Dựa vào số bước
d)
Dựa vào hướng gió
99.
Làm thế nào để tối ưu hóa việc sử dụng bộ nhớ khi lưu trữ lộ trình?
a)
Lưu toàn bộ chuỗi lệnh
b)
Chỉ lưu các quyết định quan trọng tại ngã rẽ
c)
Không lưu gì cả
d)
Lưu thành file ảnh
100.
Làm thế nào để robot tự động học từ các lần chạy trước?
a)
Lưu bản đồ mê cung hoàn chỉnh
b)
Chạy lại y hệt
c)
Xóa bộ nhớ sau mỗi lần chạy
d)
Không thể học
101.
Khi robot gặp một cấu trúc mê cung lặp lại, làm thế nào để phát hiện và thoát khỏi vòng lặp?
a)
Tăng tốc độ
b)
So sánh trạng thái hiện tại với lịch sử các trạng thái trước đó
c)
Đổi màu
d)
Dừng lại
102.
Làm thế nào để đánh giá hiệu suất của một thuật toán điều khiển robot?
a)
Dựa vào màu sắc robot
b)
Dựa vào tổng số bước di chuyển và thời gian thực hiện
c)
Dựa vào kích thước robot
d)
Dựa vào tuổi thọ pin
103.
Trong một mê cung có nhiều đích đến, làm thế nào để robot tìm đường đến tất cả các đích?
a)
Chạy "Hand on Wall" nhiều lần
b)
Sử dụng thuật toán tham lam
c)
Sử dụng thuật toán tìm đường cho bài toán người du lịch (TSP)
d)
Bỏ qua các đích phụ
104.
Làm thế nào để robot xử lý khi cảm biến bị lỗi?
a)
Dừng hoàn toàn
b)
Sử dụng dữ liệu cảm biến trung bình
c)
Tiếp tục di chuyển với giả định an toàn
d)
Không xử lý
105.
Khi phát triển robot thật ngoài đời, yếu tố nào cần quan tâm ngoài thuật toán?
a)
Màu sắc vỏ robot
b)
Tiêu thụ năng lượng, độ chính xác cảm biến, va chạm vật lý
c)
Tên của robot
d)
Hệ điều hành
106.
Lệnh `robot.look("AHEAD")` trong Robot Maze trả về giá trị gì khi không có tường?
a)
True
b)
False
c)
"AHEAD"
107.
Hàm `robot.checkFirstGoal()` được sử dụng để làm gì?
a)
Kiểm tra robot có bắt đầu không
b)
Kiểm tra robot đã đến đích trung tâm chưa
c)
Kiểm tra robot đã hoàn thành cả 2 vòng chưa
d)
Kiểm tra pin
108.
Trong Robot Maze, tập tin nào chứa code điều khiển chính?
a)
main.py
b)
robot.py
c)
controller.py
d)
maze.py
109.
Lệnh `robot.turn("LEFT")` có tác dụng gì?
a)
Robot tiến lên 1 ô
b)
Robot lùi 1 ô
c)
Robot rẽ trái 90 độ
d)
Robot rẽ phải 90 độ
110.
Giá trị trả về của `robot.look("RIGHT")` khi có tường bên phải là gì?
a)
1
b)
True
c)
False
d)
"RIGHT"
111.
Công cụ Robot Maze hỗ trợ tính năng gì?
a)
Vẽ đồ thị hàm số
b)
Tạo mê cung ngẫu nhiên
c)
Soạn thảo văn bản
d)
Kết nối cơ sở dữ liệu
112.
IDE nào được gợi ý để lập trình với Robot Maze?
a)
Visual Studio Code
b)
Eclipse
c)
Thonny
d)
IntelliJ
113.
Lệnh `robot.go()` có chức năng gì?
a)
Robot rẽ trái
b)
Robot rẽ phải
c)
Robot tiến lên 1 ô
d)
Robot dừng lại
114.
Dummy Robot 01 có đặc điểm gì?
a)
Đi theo tường trái
b)
Di chuyển ngẫu nhiên
c)
Luôn đi thẳng
d)
Sử dụng thuật toán A*
115.
Dummy Robot 02 cải tiến từ Dummy Robot 01 bằng cách nào?
a)
Thêm tốc độ
b)
Sử dụng hàm `robot.look()` để kiểm tra trước khi đi
c)
Lưu trữ lịch sử
d)
Đổi màu robot
116.
Khi sử dụng Left-hand rule, robot luôn ưu tiên hướng nào đầu tiên?
a)
Rẽ phải
b)
Đi thẳng
c)
Rẽ trái
d)
Quay đầu
117.
Giả sử robot đang dùng Right-hand rule và gặp ngã tư có 3 lối đi. Hướng nào robot sẽ chọn?
a)
Rẽ trái
b)
Đi thẳng
c)
Rẽ phải
d)
Quay đầu
118.
Tại sao cơ chế "Hand on Wall" yêu cầu mê cung liên thông?
a)
Để robot chạy nhanh hơn
b)
Để đảm bảo robot có thể đi qua mọi ô
c)
Để code đơn giản hơn
d)
Để tiết kiệm pin
119.
Khi robot dùng Right-hand rule và thấy tường bên phải, tường phía trước, không tường bên trái, nó sẽ làm gì?
a)
Rẽ phải
b)
Đi thẳng
c)
Rẽ trái
d)
Quay đầu
120.
Đoạn code nào kiểm tra robot có thể đi thẳng không?
a)
`if robot.look("AHEAD"):`
b)
`if not robot.look("LEFT"):`
c)
`if not robot.look("AHEAD"):`
d)
`if robot.look("RIGHT"):`
121.
Làm thế nào để robot quay phải 90 độ?
a)
`robot.turn("LEFT")`
b)
`robot.turn("RIGHT")`
c)
`robot.go()`
d)
`robot.look("RIGHT")`
122.
Sau khi thực hiện `robot.turn("LEFT")` ba lần, hướng của robot thay đổi thế nào?
a)
Quay 90 độ trái
b)
Quay 90 độ phải
c)
Quay 270 độ trái
d)
Giữ nguyên hướng
123.
Trong Dummy Robot 03, dữ liệu được lưu trữ ở đâu?
a)
Biến số
b)
Chuỗi ký tự
c)
Danh sách
d)
File text
124.
Bài tập B01 yêu cầu gì?
a)
Tăng tốc độ robot
b)
Lưu lịch sử lệnh vào danh sách
c)
Xóa bộ nhớ
d)
Thay đổi kích thước mê cung
125.
Hệ tam phân sử dụng cơ số nào?
a)
2
b)
3
c)
10
d)
16
126.
Làm thế nào để robot phát hiện đã hoàn thành nhiệm vụ?
a)
`robot.checkFirstGoal()`
b)
`robot.checkFinish()`
c)
`robot.look("AHEAD")`
d)
`robot.go()`
127.
Khi `robot.look("LEFT")` trả về False, điều đó có nghĩa là gì?
a)
Có tường bên trái
b)
Không có tường bên trái
c)
Robot đã đến đích
d)
Có lỗi xảy ra
128.
Trong Left-hand rule, nếu không có tường bên trái, robot sẽ làm gì?
a)
Đi thẳng
b)
Rẽ phải
c)
Rẽ trái
d)
Quay đầu
129.
Dummy Robot 04 dừng lại khi nào?
a)
Khi gặp tường
b)
Khi hết pin
c)
Khi đến đích trung tâm
d)
Khi hoàn thành 2 vòng
130.
Sự khác biệt chính giữa Dummy Robot 05 và 04 là gì?
a)
05 dừng ở đích, 04 không dừng
b)
04 dừng ở đích, 05 tiếp tục chạy
c)
05 chạy nhanh hơn
d)
04 có màu đỏ
131.
Khi triển khai "Hand on Wall", nếu robot gặp điểm giao nhau có 4 hướng đi, nó sẽ xử lý thế nào?
a)
Dừng lại
b)
Chọn hướng ngẫu nhiên
c)
Tuân theo thứ tự ưu tiên của quy tắc
d)
Luôn đi thẳng
132.
Làm thế nào để viết code cho robot di chuyển theo Left-hand rule?
a)
Luôn rẽ phải
b)
Ưu tiên rẽ trái, rồi thẳng, rồi phải, rồi quay đầu
c)
Luôn đi thẳng
d)
Chỉ rẽ khi gặp tường
133.
Đoạn code nào mô tả đúng logic ưu tiên của Right-hand rule?
a)
`if not robot.look("LEFT"): robot.turn("LEFT")`
b)
`if not robot.look("RIGHT"): robot.turn("RIGHT")`
c)
`if not robot.look("AHEAD"): robot.go()`
d)
`if robot.look("BEHIND"): robot.turn("RIGHT")`
134.
Làm thế nào để kết hợp kiểm tra nhiều hướng trong code?
a)
Sử dụng vòng lặp for
b)
Sử dụng câu lệnh if lồng nhau
c)
Sử dụng hàm print
d)
Sử dụng biến global
135.
Giả sử robot đang dùng Right-hand rule. Code nào thực hiện kiểm tra ưu tiên rẽ phải?
a)
`if not robot.look("RIGHT"): ...`
b)
`if not robot.look("LEFT"): ...`
c)
`if robot.look("AHEAD"): ...`
d)
`if not robot.look("AHEAD"): ...`
136.
Làm thế nào để đảm bảo robot "Hand on Wall" thăm hết các ô?
a)
Tăng tốc độ
b)
Sử dụng bộ nhớ đánh dấu ô đã thăm
c)
Giảm kích thước robot
d)
Chạy ngẫu nhiên
137.
Khi gặp ngõ cụt, robot "Hand on Wall" sẽ làm gì?
a)
Dừng mãi mãi
b)
Nhảy qua tường
c)
Quay đầu lại và tiếp tục theo quy tắc
d)
Đi lùi
138.
Làm thế nào để robot quay đầu 180 độ?
a)
`robot.turn("LEFT")` một lần
b)
`robot.turn("RIGHT")` một lần
c)
`robot.turn("LEFT")` hai lần
d)
`robot.go()` hai lần
139.
Bài tập B02 yêu cầu robot sử dụng kỹ thuật gì trong lượt về?
a)
"Hand on Wall"
b)
Quay lui (backtracking)
c)
Chạy ngẫu nhiên
d)
Bay qua mê cung
140.
Trong Bài tập B03, việc mã hóa tam phân giúp gì?
a)
Tăng tốc độ xử lý
b)
Giảm dung lượng lưu trữ
c)
Tăng độ chính xác
d)
Giảm tiêu thụ điện
141.
Làm thế nào để chuyển đổi danh sách lệnh sang mã tam phân?
a)
Gán số cho mỗi lệnh và ghép lại
b)
Viết lại danh sách
c)
Xóa danh sách
d)
Đảo ngược danh sách
142.
Khi giải mã số tam phân 210₃, với quy ước 0=LEFT, 1=GO, 2=RIGHT, ta được chuỗi lệnh gì?
a)
[RIGHT, GO, LEFT]
b)
[GO, LEFT, RIGHT]
c)
[LEFT, GO, RIGHT]
d)
[RIGHT, LEFT, GO]
143.
Làm thế nào để robot thực hiện quay lui chính xác?
a)
Thực hiện ngược lại từng lệnh từ cuối danh sách
b)
Chạy ngẫu nhiên
c)
Lặp lại lượt đi
d)
Sử dụng "Hand on Wall" ngược
144.
Lệnh đảo ngược của "TURN LEFT" trong quay lui là gì?
a)
"TURN LEFT"
b)
"TURN RIGHT"
c)
"GO"
d)
"STOP"
145.
Lệnh đảo ngược của "GO" trong quay lui là gì?
a)
"GO"
b)
"TURN LEFT"
c)
"TURN RIGHT"
d)
"STOP"
146.
Làm thế nào để tránh lỗi vòng lặp vô hạn?
a)
Không thể tránh
b)
Đặt giới hạn số bước tối đa
c)
Tắt robot sau 1 phút
d)
Luôn chọn hướng ngẫu nhiên
147.
Khi nào nên sử dụng "Hand on Wall"?
a)
Khi mê cung rất nhỏ
b)
Khi yêu cầu đường đi ngắn nhất
c)
Khi cần code đơn giản, dễ hiểu
d)
Khi robot có bộ nhớ hạn chế
148.
Làm thế nào để debug chương trình robot?
a)
Sử dụng hàm print() để in trạng thái
b)
Không cần debug
c)
Tắt máy tính
d)
Chạy lại chương trình
149.
Giả sử robot bị kẹt trong vòng lặp nhỏ. Cách khắc phục?
a)
Tăng tốc độ
b)
Thêm bộ nhớ để ghi nhận các ô đã thăm
c)
Giảm kích thước robot
d)
Đổi màu robot
150.
Làm thế nào để cài đặt thuật toán BFS cho robot?
a)
Sử dụng "Hand on Wall"
b)
Xây dựng bản đồ và áp dụng BFS
c)
Chạy ngẫu nhiên nhiều lần
d)
Dùng thư viện có sẵn
151.
Làm thế nào để robot xử lý mê cung thay đổi?
a)
Chỉ chạy trên mê cung cố định
b)
Liên tục cập nhật bản đồ và replan
c)
Dừng lại khi mê cung thay đổi
d)
Yêu cầu trợ giúp
152.
Khi triển khai BFS, cấu trúc dữ liệu nào phù hợp?
a)
Stack
b)
Queue
c)
List
d)
Dictionary
153.
Làm thế nào để giảm thời gian chạy trong mê cung lớn?
a)
Tăng tốc độ phần cứng
b)
Sử dụng thuật toán hiệu quả hơn
c)
Giảm kích thước mê cung
d)
Tắt các cảm biến
154.
Làm thế nào để robot phân biệt hai ngã rẽ giống nhau?
a)
Dựa vào vị trí tuyệt đối
b)
Dựa vào lịch sử các lệnh đã thực hiện
c)
Không thể phân biệt
d)
Dựa vào màu sắc
155.
Trong mã hóa tam phân, làm thế nào biểu diễn chuỗi lệnh dài?
a)
Sử dụng nhiều số tam phân
b)
Chỉ dùng một số
c)
Bỏ qua các lệnh
d)
Rút gọn chuỗi
156.
Trong Flood Fill, nếu hàng đợi ban đầu chứa các ô (4,5), (4,6), (5,5), (5,6) - điều này thường cho thấy điều gì?
a)
Ô đích nằm ở trung tâm mê cung
b)
Các ô này là tường
c)
Robot bắt đầu từ nhiều điểm
d)
Đích được đặt tại một trong các ô này
157.
Khi Flood Fill gặp tường mới, nó phải làm gì để đảm bảo tìm đường chính xác?
a)
Dừng thuật toán
b)
Tính lại toàn bộ khoảng cách Manhattan từ vị trí hiện tại
c)
Tiếp tục đi mà không quan tâm
d)
Chọn hướng ngẫu nhiên
158.
Nếu robot đang ở ô có giá trị Manhattan = 5, nhưng xung quanh toàn các ô có giá trị ≥5. Điều này chỉ ra vấn đề gì?
a)
Robot đang ở sát đích
b)
Có lỗi trong thuật toán
c)
Robot cần kích hoạt tính lại Flood Fill
d)
Đường đi đã bị chặn hoàn toàn bởi tường
159.
Trong thuật toán Trémaux, khi robot đi qua một lối đi lần thứ hai, nó phải đánh dấu như thế nào?
a)
Xóa dấu cũ
b)
Đánh dấu = 2 (không đi lại nữa)
c)
Đánh dấu = 0
d)
Không đánh dấu gì thêm
160.
Ưu điểm chính của Flood Fill so với các thuật toán di chuyển ngẫu nhiên là gì?
a)
Tốc độ xử lý nhanh hơn
b)
Luôn tìm được đường đi ngắn nhất (nếu dùng BFS)
c)
Không cần cảm biến
d)
Code đơn giản hơn
161.
Trong Trémaux, nếu tại ngã ba, các lối đều có số lần đánh dấu ≥1, robot sẽ chọn lối nào?
a)
Lối có đánh dấu = 1
b)
Lối có đánh dấu = 2
c)
Lối có số đánh dấu nhỏ nhất
d)
Quay đầu lại
162.
Khi robot Flood Fill phát hiện một bức tường mới ở ô (3,4), những ô nào cần được tính lại giá trị Manhattan?
a)
Chỉ ô (3,4)
b)
Các ô kề cận (3,4)
c)
Toàn bộ mê cung
d)
Các ô bị ảnh hưởng bởi tường này (có đường đi qua ô này)
163.
Trong Trémaux, nếu robot đi vào ngõ cụt, hành động đúng là gì?
a)
Dừng lại tại đó
b)
Đánh dấu lối vào là 2 và quay lại
c)
Thử đi tiếp cho đến khi hết pin
d)
Chọn một hướng ngẫu nhiên
164.
Giá trị khoảng cách Manhattan từ ô (2,3) đến ô (5,7) là bao nhiêu?
a)
7
b)
5
c)
6
d)
4
165.
Trong Flood Fill, nếu robot đang ở ô có giá trị 3 và thấy ô kề cận có giá trị 2, nó sẽ làm gì?
a)
Đi sang ô đó
b)
Bỏ qua vì không phải bé nhất
c)
Tính lại giá trị của ô hiện tại
d)
Dừng lại
166.
Khi sử dụng Trémaux, robot có đảm bảo tìm thấy đích trong mọi trường hợp không?
a)
Không bao giờ
b)
Có, trong mê cung liên thông
c)
Chỉ trong mê cung nhỏ hơn 10x10
d)
Chỉ khi không có vòng lặp
167.
Nếu Flood Fill không tìm thấy đường đi đến đích, nguyên nhân chắc chắn là gì?
a)
Mê cung không liên thông
b)
Robot chạy quá chậm
c)
Hàng đợi bị rỗng giữa chừng
d)
Cả A và C
168.
Trong Trémaux, việc sử dụng biến toàn cục để lưu hướng robot so với mê cung (N,S,E,W) chủ yếu để làm gì?
a)
Tính toán vị trí mới (x,y) khi di chuyển
b)
Xác định vị trí tường chính xác hơn
c)
In ra hướng đẹp cho log
d)
Kiểm tra pin robot
169.
Khi robot đang hướng Bắc và thực hiện rẽ trái, hướng mới của nó so với mê cung là gì?
a)
Đông
b)
Nam
c)
Tây
d)
Vẫn là Bắc
170.
Trong Flood Fill, nếu ô (x,y) có giá trị -1, điều này có nghĩa là gì?
a)
Ô là tường
b)
Ô chưa được gán giá trị (chưa được duyệt)
c)
Ô là đích
d)
Ô đã được duyệt rồi
171.
Trong Trémaux, nếu tại ngã tư, cả 4 hướng đều có đánh dấu ≥1, robot sẽ ưu tiên?
a)
Chọn hướng đánh dấu = 1
b)
Chọn hướng có số đánh dấu nhỏ nhất
c)
Quay đầu lại (BEHIND)
d)
Dừng và kết thúc
172.
Khi Flood Fill cập nhật lại giá trị Manhattan do phát hiện tường, nó sử dụng cấu trúc dữ liệu nào?
a)
Stack (Ngăn xếp)
b)
Hàng đợi (Queue)
c)
Dictionary (Từ điển)
d)
Tree (Cây)
173.
Trong Trémaux, nếu robot gặp một lối đi hoàn toàn mới (chưa đánh dấu), nó sẽ xử lý thế nào?
a)
Bỏ qua vì nguy hiểm
b)
Đánh dấu = 1 và đi vào
c)
Đánh dấu = 2 ngay lập tức
d)
Quay đầu lại
174.
Ưu điểm nổi bật của Trémaux so với Flood Fill là gì?
a)
Luôn tìm đường ngắn nhất
b)
Tiết kiệm bộ nhớ (không cần lưu toàn bộ mê cung)
c)
Tốc độ xử lý nhanh hơn nhiều
d)
Code dễ viết hơn
175.
Trong Flood Fill, giả sử robot đang ở ô (3,3). Giá trị Manhattan của các ô AHEAD, LEFT, RIGHT lần lượt là 4, 5, 3. Hướng robot nên chọn là?
a)
AHEAD (4)
b)
LEFT (5)
c)
RIGHT (3)
d)
BEHIND (giá trị cũ)
176.
Khi Trémaux đánh dấu một lối đi là 2, ý nghĩa thực tế của nó là gì?
a)
Lối đi an toàn
b)
Lối đi dẫn thẳng đến đích
c)
Lối đi đã thử 2 lần và không hiệu quả
d)
Lối đi chưa được khám phá
177.
Trong Flood Fill, nếu hàng đợi (queue) đã rỗng nhưng robot chưa đến được đích, kết luận nào là đúng?
a)
Thuật toán đã thành công
b)
Mê cung không liên thông, không có đường đến đích
c)
Cần tiếp tục chờ thêm
d)
Lỗi phần cứng của robot
178.
Trong Trémaux, làm thế nào để robot biết nó đã đến đích?
a)
Kiểm tra tọa độ (x,y) hiện tại
b)
Kiểm tra xem các đánh dấu xung quanh
c)
Dùng cảm biến đặc biệt
d)
Kiểm tra giá trị Manhattan
179.
Khi Flood Fill gặp một ô là tường, giá trị Manhattan của ô đó thường được gán là bao nhiêu?
a)
0
b)
-1
c)
999
d)
Giữ nguyên giá trị cũ
180.
Trong Trémaux, khi robot thực hiện quay đầu (180 độ), nó phải đánh dấu lối đi hiện tại thế nào?
a)
Xóa hết dấu cũ
b)
Giữ nguyên trạng thái đánh dấu
c)
Tăng số đánh dấu lên 1
d)
Đánh dấu lại từ 0
181.
Giả sử đích ở (5,5). Ô (3,5) có giá trị Manhattan là 2. Ô (4,5) đột nhiên là tường. Ô (3,5) cần được cập nhật giá trị mới là bao nhiêu?
a)
Vẫn là 2
b)
3
c)
4
d)
-1
182.
Trong Trémaux, nếu robot gặp một ngã ba với các lối có đánh dấu [1, 0, 2], nó sẽ chọn lối có đánh dấu nào?
a)
1
b)
0
c)
2
d)
Cả 3 đều được
183.
Flood Fill 'truyền thống' (không cập nhật) sẽ thất bại trong loại mê cung nào?
a)
Mê cung có nhiều ngõ cụt
b)
Mê cung thay đổi cấu trúc (có tường mới)
c)
Mê cung kích thước lớn
d)
Mê cung hình xoắn ốc
184.
Khi kết hợp Flood Fill và Trémaux, ý tưởng chính là gì?
a)
Dùng Trémaux để tìm đường ngắn nhất
b)
Dùng Trémaux khám phá, Flood Fill tối ưu đường đi
c)
Dùng Flood Fill để đánh dấu
d)
Dùng cả hai song song
185.
Trong Trémaux, biến `backtracking` dùng để làm gì?
a)
Đánh dấu robot đang quay lui
b)
Tăng tốc độ robot
c)
Giảm bộ nhớ sử dụng
d)
Tính toán hướng đi
186.
Nếu robot Trémaux quay lại đúng vị trí xuất phát và tất cả lối đi từ đó đều được đánh dấu ≥1, điều này có nghĩa là gì?
a)
Robot đã hoàn thành nhiệm vụ
b)
Mê cung không có đích
c)
Robot cần khởi động lại
d)
Cả A và B
187.
Khi Flood Fill tính toán lại, nó có cần xóa toàn bộ giá trị cũ không?
a)
Luôn luôn
b)
Không bao giờ
c)
Chỉ xóa các ô bị ảnh hưởng bởi tường mới
d)
Chỉ xóa các ô có giá trị lớn hơn 10
188.
Làm thế nào để Trémaux tránh việc robot đi vòng quanh giữa hai điểm?
a)
Không thể tránh
b)
Nhờ cơ chế đánh dấu, khi một lối bị đánh dấu 2, nó sẽ bị bỏ qua
c)
Tăng tốc độ di chuyển
d)
Dùng cảm biến khoảng cách
189.
Giá trị Manhattan từ ô (1,1) đến ô (4,5) là bao nhiêu?
a)
7
b)
8
c)
9
d)
6
190.
Trong Flood Fill, nếu robot phát hiện ra nó đang ở trong một 'hố' (xung quanh toàn giá trị lớn hơn), nó nên làm gì?
a)
Tiếp tục đi theo hướng ít tệ nhất
b)
Gọi cứu hộ
c)
Kích hoạt tính lại Flood Fill toàn cục
d)
Đợi tại chỗ
191.
Sự khác biệt cơ bản giữa Flood Fill và Trémaux là gì?
a)
Flood Fill dùng đánh dấu, Trémaux dùng khoảng cách
b)
Flood Fill cần biết trước toàn bộ bản đồ, Trémaux thì không
c)
Trémaux nhanh hơn Flood Fill
d)
Flood Fill chỉ dùng cho mê cung nhỏ
192.
Khi Trémaux đánh dấu một ô là 2, robot có thể đi qua ô đó lần nữa không?
a)
Có, bất cứ lúc nào
b)
Không, tuyệt đối tránh
c)
Có, nhưng chỉ trong trường hợp khẩn cấp
d)
Có, nếu không còn lối nào khác
193.
Trong Flood Fill, nếu một ô có giá trị 0, nó thường đại diện cho điều gì?
a)
Tường
b)
Ô chưa duyệt
c)
Đích
d)
Vị trí bắt đầu
194.
Làm thế nào để robot Trémaux xác định hướng 'BEHIND' một cách đáng tin cậy?
a)
Dùng la bàn
b)
Lưu hướng di chuyển ở bước trước
c)
Tính toán dựa trên hướng hiện tại và lệnh rẽ
d)
Cả B và C
195.
Khi Flood Fill được kích hoạt lại, nó có cần một hàng đợi mới không?
a)
Luôn luôn
b)
Không bao giờ
c)
Có, để bắt đầu quá trình duyệt mới
d)
Chỉ cần xóa hàng đợi cũ là đủ
196.
Trong Trémaux, nếu robot đi theo một hướng và liên tục gặp đánh dấu 1, điều này cho thấy điều gì?
a)
Nó đang đi vòng tròn
b)
Nó đang đến gần đích
c)
Nó cần quay đầu ngay lập tức
d)
Cảm biến bị hỏng
197.
Giá trị Manhattan từ ô (0,0) đến ô (7,7) trong mê cung 16x16 là bao nhiêu?
a)
14
b)
10
c)
12
d)
16
198.
Flood Fill có thể được cài đặt với DFS thay vì BFS không?
a)
Không thể
b)
Có, nhưng không đảm bảo đường ngắn nhất
c)
Có, và sẽ nhanh hơn
d)
Có, nhưng chỉ cho mê cung nhỏ
199.
Lợi ích của việc kết hợp cả Flood Fill và Trémaux trong một robot là gì?
a)
Code phức tạp hơn
b)
Tận dụng ưu điểm của cả hai: khám phá (Trémaux) và tối ưu (Flood Fill)
c)
Giảm tiêu thụ năng lượng
d)
Dễ debug hơn
200.
Khi Trémaux hoàn thành (tìm thấy đích), làm thế nào để robot biết đường quay lại?
a)
Nó không thể biết
b)
Sử dụng lại các đánh dấu, ưu tiên lối có đánh dấu 1 để quay về
c)
Sử dụng GPS
d)
Chạy Flood Fill ngay lúc đó
201.
Trong Flood Fill, nếu một ô có nhiều ô kề cận có cùng giá trị Manhattan nhỏ nhất, robot nên chọn thế nào?
a)
Chọn ngẫu nhiên
b)
Luôn chọn AHEAD
c)
Chọn theo hướng cũ
d)
Hỏi người dùng
202.
Điểm yếu chính của Trémaux so với Flood Fill là gì?
a)
Tốn nhiều bộ nhớ hơn
b)
Không đảm bảo tìm được đường ngắn nhất
c)
Tốc độ chậm hơn
d)
Khó cài đặt hơn
203.
Khi robot Trémaux quay lui, nó có cần đánh dấu lối đi không?
a)
Không, vì đã đánh dấu khi đi tới rồi
b)
Có, mỗi lần đi qua đều phải tăng đánh dấu
c)
Chỉ đánh dấu nếu gặp ngã rẽ
d)
Không cần thiết
204.
Giả sử đích ở (8,8). Ô (6,8) có giá trị Manhattan ban đầu là 2. Nếu ô (7,8) trở thành tường, giá trị mới của ô (6,8) có thể là bao nhiêu?
a)
2
b)
3
c)
4
d)
5
Reset
