Font size
WorksheetsW4: Algorithm Complexity and Determinism
Total questions: 137
Worksheet time: 1hrs 20mins
Thuật toán A với kích thước dữ liệu đầu vào n có độ phức tạp đa thức nếu
tồn tại đa thức P(n) mà T_A(n) >= C·P(n), ∀ n < = N_0; với C và N_0 là các hằng số
tồn tại đa thức P(n) mà T_A(n) ≤ C·P(n), ∀ n ≥ N_0; với C và N_0 là các hằng số
tồn tại đa thức P(n) mà T_A(n) ≤ P(n), ∀ n < = N_0; với N_0 là hằng số
tồn tại đa thức P(n) mà T_A(n) ≥ C·P(n), ∀ n ≥ N_0; với C và N_0 là các hằng số
Thuật toán được gọi là đa thức nếu
độ phức tạp về thời gian trong trường hợp tốt nhất của nó là đa thức
độ phức tạp về không gian trong trường hợp xấu nhất của nó là đa thức
độ phức tạp về thời gian trong trường hợp xấu nhất của nó là đa thức
độ phức tạp về không gian trong trường hợp trung bình của nó là đa thức
Thuật toán đơn định là
Thuật toán mà tại mỗi bước, chỉ có một lựa chọn duy nhất
Thuật toán mà tại mỗi bước, có nhiều lựa chọn
Thuật toán chạy không xác định thời gian
Thuật toán không cần dữ liệu đầu vào
Thuật toán đơn định đa thức là
thuật toán đơn định có độ phức tạp trong trường hợp tốt nhất là đa thức
thuật toán đơn định có độ phức tạp trong trường hợp trung bình là đa thức
thuật toán đơn định có độ phức tạp là đa thức
thuật toán đơn định có độ phức tạp là trên đa thức (hàm mũ)
Thuật toán không đơn định là
thuật toán mà tại mỗi bước, có một lựa chọn duy nhất
thuật toán mà tại mỗi bước, có nhiều lựa chọn có thể thực hiện thay vì một lựa chọn duy nhất
thuật toán luôn cho kết quả chính xác
thuật toán không có dữ liệu đầu vào
Lớp P bao gồm những bài toán:
Không thể giải quyết được
Có thể giải được bằng thuật toán không đơn định trong thời gian hàm mũ
Có thể giải được bằng thuật toán đơn định trong thời gian hàm mũ
Có thể giải được bằng thuật toán đơn định trong thời gian đa thức
Một bài toán thuộc lớp P nếu:
Nó có thể được giải quyết trong thời gian đa thức bằng một thuật toán không đơn định
Nó có thể được giải quyết trong thời gian đa thức bằng một thuật toán đơn định
Nó không được giải quyết trong thời gian đa thức
Nó không được giải quyết bằng thuật toán nào cả
Lớp NP bao gồm những bài toán:
Chưa tìm được thuật toán với độ phức tạp đa thức nhưng chỉ ra được phương pháp kiểm định nghiệm của nó (nếu có) với thời gian đa thức
Chưa tìm được thuật toán với độ phức tạp đa thức nhưng chỉ ra được phương pháp kiểm định nghiệm của nó (nếu có) với thời gian hàm mũ
Chưa tìm được thuật toán đơn định với độ phức tạp hàm mũ
Chưa tìm được thuật toán không đơn định với độ phức tạp hàm mũ
NP là lớp các bài toán
mà mọi nghiệm giả định đều không được kiểm chứng trong thời gian đa thức
mà mọi nghiệm giả định đều có thể được kiểm chứng trong thời gian hàm mũ
mà mọi nghiệm giả định đều có thể được kiểm chứng trong thời gian hàm mũ
mà mọi nghiệm giả định đều có thể được kiểm chứng trong thời gian đa thức
Thuật toán không đơn định có thể:
Chỉ thử một lựa chọn tại mỗi bước
Thử nhiều lựa chọn tại mỗi bước
Chạy mãi mãi mà không kết thúc
Luôn luôn cho kết quả đúng
Kiểm định nghiệm trong thời gian đa thức có nghĩa là:
A. Giải quyết bài toán trong thời gian đa thức
B. Tìm kiếm nghiệm đúng trong thời gian đa thức
C. Tìm kiếm nghiệm gần đúng trong thời gian đa thức
D. Kiểm tra một nghiệm có đúng hay không trong thời gian đa thức
Một thuật toán tìm số ước của một số nguyên dương N
1.Nhập N
2. dem=0;
3. for (i=1; i =N; ++i)
4. if (N%i = =0)
5. dem=dem+1;
6. Xuất dem
Được đánh giá là:
A. Thuật toán đơn định, đa thức
B. Thuật toán đơn định, hàm mũ
C. Thuật toán không đơn định, đa thức
D. Thuật toán không đơn định, hàm mũ
Một thuật toán tính tổng của các số chẵn từ 1 đến N (N là số nguyên dương)
1.Nhập N
2. S=0;
3. for (i=1; i =N; ++i)
4. if (i%2 = =0)
5. S=S+i;
6. Xuất S
Được đánh giá là :
A. Thuật toán đơn định, đa thức
B. Thuật toán đơn định, hàm mũ
C. Thuật toán không đơn định, đa thức
D. Thuật toán không đơn định, hàm mũ
A. Thuật toán đơn định, đa thức
B. Thuật toán đơn định, hàm mũ
C. Thuật toán không đơn định, đa thức
D. Thuật toán không đơn định, hàm mũ
Thuật toán đơn định, đa thức
Thuật toán đơn định, hàm mũ
Thuật toán không đơn định, đa thức
Thuật toán không đơn định, hàm mũ
Nếu một bài toán thuộc lớp NP nhưng không thuộc lớp P thì:
Lời giải của nó có được kiểm định trong thời gian đa thức nhưng không thể tìm được trong thời gian đa thức
Lời giải của nó có thể tìm thấy trong thời gian đa thức
Lời giải của nó không thể được kiểm định trong thời gian đa thức
Lời giải của nó không tồn tại
Nếu một bài toán có thể được giải quyết trong thời gian đa thức bằng một thuật toán không đơn định, nhưng không thể giải quyết bằng thuật toán đơn định, điều đó có nghĩa là:
Bài toán đó thuộc lớp P
Bài toán đó thuộc lớp NP nhưng không thuộc lớp P
Bài toán đó không thuộc lớp NP
Bài toán đó không thể giải quyết được
Thuật toán nào sau đây có khả năng giải quyết bài toán NP trong thời gian đa thức?
Thuật toán đơn định
Thuật toán không đơn định
Thuật toán heuristic
Không có lựa chọn nào đúng
Bài toán “tìm kiếm tuần tự giá trị k trong một dãy n số nguyên x1, x2, …,xn “, có thuộc lớp P?
Có
Không
Chỉ khi danh sách rất nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Bài toán “sắp xếp dãy n số nguyên x1, x2, …, xn theo chiều tăng dần” bằng thuật toán QuickSort có thuộc lớp P?
Có
Không
Chỉ khi danh sách rất nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Bài toán “xác định số nguyên tố”, có thể được giải quyết trong thời gian đa thức bởi thuật toán đơn định không?
Có
Không
Chỉ khi số nguyên tố rất nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Bài toán “tính một số hạng trong dãy Fibonacci” bằng cách không sử dụng thuật toán đệ quy, có thuộc lớp P?
Có
Không
Chỉ khi số hạng là một số nguyên nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Thuật toán trên máy Turing là đa thức thì:
Thuật toán trên máy xử lý thuật toán bằng ngôn ngữ tựa ALGOL tương ứng không là đa thức
Thuật toán trên máy xử lý thuật toán bằng ngôn ngữ tựa ALGOL tương ứng chưa chắc là đa thức
Thuật toán trên máy xử lý thuật toán bằng ngôn ngữ tựa ALGOL tương ứng chưa chắc là đa thức
Thuật toán trên máy xử lý thuật toán bằng ngôn ngữ tựa ALGOL tương ứng là đa thức
Thuật toán trên máy xử lý thuật toán bằng ngôn ngữ tựa ALGOL là đa thức thì:
Thuật toán tương ứng trên máy Turing là không đơn định
Thuật toán tương ứng trên máy Turing là đơn định
Thuật toán tương ứng trên máy Turing chưa chắc là đa thức
Thuật toán tương ứng trên máy Turing là đa thức
Nếu thuật toán tựa ALGOL là đa thức và trong thuật toán chỉ có các phép toán cơ bản, dữ liệu vào có độ phức tạp đa thức theo quan niệm 2 (độ dài mã) thì thuật toán trên máy Turing tương ứng là:
Hằng số
Đa thức
Hàm mũ
Hàm giai thừa
Bài toán Tìm đường đi ngắn nhất trong đồ thị có trọng số thuộc lớp nào?
P
NP
NP-Hard
Không thuộc P hoặc NP
Bài toán “tìm chu trình Euler trong một đồ thị”, có thuộc lớp P?
Có
Không
Chỉ khi đồ thị có số cạnh nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Bài toán “kiểm tra đồ thị có chứa chu trình Hamilton”, có thuộc lớp P?
Có
Không
Chỉ khi đồ thị có số cạnh rất nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Bài toán xác định cây khung nhỏ nhất trên đồ thị thuộc lớp nào?
P
NP
NP-Hard
Không thuộc P hoặc NP
Bài toán “xác định một số nguyên dương N có phải là số nguyên tố hay không” thuộc lớp P?
Có
Không
Chỉ khi số rất nhỏ
Chỉ khi sử dụng thuật toán không đơn định
Chọn hai phương án đúng liên quan đến lớp bài toán NP.
Tìm phần tử lớn nhất trong mảng là bài toán lớp NP
Bài toán tìm tập con có tổng bằng 0 là bài toán lớp NP
Bài toán phân hoạch cũng thuộc lớp NP
Thuật toán kiểm chứng nghiệm bài toán NP luôn là đệ quy
Chọn hai phương án đúng về quan hệ giữa các bài toán P và NP
Nếu một bài toán có độ phức tạp O(2^n) thì chắc chắn thuộc lớp P
Nếu P = NP thì tất cả các bài toán NP đều giải được bằng thuật toán đơn định trong thời gian đa thức
Một số bài toán có thể kiểm tra nghiệm nhanh nhưng tìm nghiệm thì rất khó
Lớp NP chỉ chứa các bài toán dễ
Bài toán nào sau đây thuộc lớp P?
Sắp xếp dãy số bằng thuật toán QuickSort
Tô màu đồ thị
Tìm chu trình Hamilton
Tìm kiếm tuyến tính
Bài toán nào sau đây có thể kiểm chứng nghiệm trong thời gian đa thức?
Tìm kiếm tuyến tính
Tính tổng dãy số
Xác định số nguyên tố
Tập con có tổng bằng 0 (Subset Sum Problem)
Chọn hai phương án đúng về thuật toán đơn định.
Độ phức tạp đa thức có dạng O( nk ) với k là hằng số
Thuật toán đơn định có thể lựa chọn nhiều hướng đi
Thuật toán đơn định luôn cho kết quả giống nhau với cùng đầu vào
Tất cả các thuật toán đơn định đều có độ phức tạp tuyến tính
Chọn hai phương án đúng về quan hệ giữa các lớp bài toán P và NP
Lớp NP chỉ chứa các bài toán dễ
Nếu P = NP thì tất cả các bài toán NP đều giải được bằng thuật toán đơn định trong thời gian đa thức
Nếu một bài toán có độ phức tạp O(2^n) thì chắc chắn thuộc lớp P
Một số bài toán có thể kiểm tra nghiệm nhanh nhưng tìm nghiệm thì rất khó
Phương pháp nào thường dùng để giải bài toán NP trong thực tế?
Sắp xếp nhanh
Thuật toán xấp xỉ
Tìm kiếm vét cạn
Heuristic
Ví dụ nào sau đây thuộc lớp P với độ phức tạp O(n²)?
Nhân ma trận
Kiểm tra tính liên thông đồ thị
Tìm chu trình Hamilton
Tính lũy thừa nhị phân
Thuật toán không đơn định có đặc điểm nào? (Chọn 2 phương án)
Luôn đi theo một hướng duy nhất tại mỗi bước
Có thể "thử" các khả năng khác nhau cùng lúc
Kết quả luôn giống nhau với cùng đầu vào
Có nhiều hướng đi tiếp tại mỗi bước
Bài toán thuộc lớp P có tính chất nào? (Chọn 2 phương án)
Có thể kiểm chứng nghiệm trong thời gian đa thức
Có thể giải bằng thuật toán vét cạn trong thời gian mũ
Có thể giải bằng thuật toán đơn định trong thời gian đa thức
Chỉ có thể giải bằng thuật toán không đơn định
Phát biểu nào đúng về thuật toán đơn định? (Chọn 2 phương án)
Độ phức tạp đa thức có dạng O(n^k) với k là hằng số
Có thể lựa chọn nhiều hướng đi cùng lúc
Luôn cho kết quả giống nhau với cùng đầu vào
Tất cả đều có độ phức tạp tuyến tính
Trong một thuật toán không đơn định, điều nào đúng? (Chọn 2 phương án)
Không bao giờ đưa ra kết quả sai
Có thể "thử" các khả năng khác nhau cùng lúc
Có nhiều hướng đi tiếp tại mỗi bước
Luôn có lời giải duy nhất
Bài toán lớp P thỏa mãn điều kiện nào? (Chọn 2 phương án)
Là bài toán không thể giải trong thực tế
Có thể giải bằng thuật toán đơn định trong thời gian đa thức
Có thể kiểm chứng nghiệm trong thời gian đa thức
Luôn có độ phức tạp là O(n!)
Chọn hai phương án đúng liên quan đến lớp bài toán P. (Chọn 2 phương án)
Lớp P được coi là lớp bài toán khó
Lớp P gồm các bài toán giải trong thời gian đa thức bằng thuật toán đơn định
Sắp xếp và tìm kiếm tuyến tính là bài toán lớp P
Mọi bài toán lớp P đều không giải được trong thực tế
Bài toán nào sau đây có thể được giải bằng thuật toán không đơn định đa thức? (Chọn 2 phương án)
Xếp ba lô 0-1
Nhân ma trận
Tìm chu trình Euler
Tìm chu trình Hamilton
Cho hai bài toán A và B, A được gọi là “dẫn về được” B một cách đa thức nếu
có một thuật toán đơn định đa thức để giải bài toán B thì cũng có một thuật toán đơn định đa thức khác để giải bài toán A.
có một thuật toán đơn định đa thức để giải bài toán A thì cũng có một thuật toán đơn định đa thức khác để giải bài toán B.
có một thuật toán đơn định để giải bài toán B thì cũng có một thuật toán đơn định khác để giải bài toán A
có một thuật toán không đơn định đa thức để giải bài toán B thì cũng có một thuật toán không đơn định đa thức khác để giải bài toán A.
Nếu bài toán A “dẫn về được” bài toán B sau thời gian đa thức, thì
bài toán A “dễ hơn” bài toán B
bài toán A “khó bằng” bài toán B
bài toán A “khó hơn” bài toán B
bài toán B là trường hợp riêng của bài toán A
Khái niệm phép quy dẫn trong lý thuyết độ phức tạp là:
Quy trình giải một bài toán bằng cách sử dụng bài toán khác
Phương pháp cải thiện tốc độ của thuật toán
Quy trình để giảm kích thước dữ liệu
Phương pháp để tăng cường độ chính xác của thuật toán
Một bài toán A có thể được quy dẫn về bài toán B nếu:
Bài toán B có thể được giải quyết nhanh hơn bài toán A
Bài toán A có thể được giải quyết bằng cách giải bài toán B
Bài toán B là dễ hơn bài toán A
Bài toán A không thể giải quyết được
Lớp NPC bao gồm những bài toán nào:
Những bài toán không thể giải quyết được
Những bài toán có thể kiểm định nghiệm trong thời gian đa thức và mọi bài toán trong NP có thể quy dẫn đến chúng
Những bài toán có thể giải quyết trong thời gian đa thức
Những bài toán có thể giải quyết trong thời gian đa thức bằng thuật toán không đơn định
Bài toán A được gọi là NP-Hard (NP- khó) nếu:
Tồn tại thuật toán đa thức để giải bài toán A thì kéo theo sự tồn tại thuật toán đa thức để giải một bài toán trong NP
Tồn tại thuật toán đa thức để giải bài toán A thì kéo theo sự tồn tại thuật toán đa thức để giải mọi bài toán trong NP
Tồn tại thuật toán để giải bài toán A thì kéo theo sự tồn tại thuật toán để giải một bài toán trong NP
Tồn tại thuật toán để giải bài toán A thì kéo theo sự tồn tại thuật toán để giải mọi bài toán trong NP
Bài toán A được gọi là NPC nếu:
A là bài toán trong NP, mọi bài toán trong NP đều có thể dẫn về được A
A là bài toán trong NP, tồn tại bài toán trong NP dẫn về được A
A là bài toán quyết định và A không là bài toán trong NP, mọi bài toán trong NP đều có thể dẫn về được A
A là bài toán quyết định và A là bài toán trong NP, mọi bài toán trong NP đều có thể dẫn về được A
Lớp NP-Hard bao gồm những bài toán nào:
Những bài toán có thể giải quyết trong thời gian đa thức
Những bài toán có thể kiểm định nghiệm trong thời gian đa thức
Những bài toán mà tất cả các bài toán trong NP có thể quy dẫn đến chúng
Những bài toán không thể giải quyết trong thời gian đa thức
Nếu một bài toán thuộc lớp NPC, thì điều gì đúng?
Nó thuộc lớp NP và mọi bài toán trong NP có thể quy dẫn đến nó
Nó không thuộc lớp NP
Nó không thể giải quyết được
Nó thuộc lớp NP-Hard nhưng không thuộc NP
Bài toán mà đầu ra chỉ có thể là “Yes” hoặc “No” (Đúng/sai, chấp nhận/từ chối) được gọi là:
Bài toán liệt kê
Bài toán đếm
Bài toán tối ưu
Bài toán quyết định
Nếu bài toán A là NP-Hard, điều gì đúng?
A thuộc lớp P
A không thể thuộc NP
Bài toán trong NP có thể quy dẫn đến bài toán A
A có thể giải quyết trong thời gian đa thức
Cho 1 ba lô có trọng lượng là B, n đồ vật có trọng lượng a1,a2,…,an. Bài toán xếp Ba lô 0-1 (KNAPSACK) cần xác định tập chỉ số T ⊂ {1,2,…,n} sao cho:
∑_{i∈T} ai <= B
∑_{i∈T} ai > B
∑_{i∈T} ai < B
∑_{i∈T} ai = B
Cho 1 ba lô có trọng lượng là B, n đồ vật có trọng lượng a1,a2,…,an, giá trị tương ứng của các đồ vật là: p1, p2,…,pn. Bài toán xếp Ba lô mở rộng cần xác định tập chỉ số T ⊂ {1,2,…,n} sao cho:
∑_{i∈T} ai < B và ∑_{i∈T} pi đạt giá trị min
∑_{i∈T} ai = B và ∑_{i∈T} pi đạt giá trị max
∑_{i∈T} ai = B và ∑_{i∈T} pi đạt giá trị min
∑_{i∈T} ai <= B và ∑_{i∈T} pi đạt giá trị max
Cho 1 ba lô có trọng lượng là B, n đồ vật có trọng lượng a1,a2,…,an, giá trị tương ứng của các đồ vật là: p1, p2,…,pn. Số lượng mỗi loại đồ vật là không hạn chế; xi (nguyên dương) là số lượng loại đồ vật thứ i (i=1..n). Bài toán xếp Ba lô giá trị nguyên cần xác định nhóm đồ vật thỏa mãn:
i=1∑naixi < B và i=1∑npixi đạt giá trị max
i=1∑naixi=B và i=1∑npixi đạt giá trị min
i=1∑naixi≤B và i=1∑npixiđạtgiaˊtrịmax
i=1∑naixi=B và i=1∑npixi đạt giá trị max
Bài toán 3-SAT được phát biểu:
Cho một công thức CNF, hỏi rằng có tồn tại một bộ giá trị của các biến sao cho biểu thức nhận giá trị TRUE hay không?
Cho một công thức CNF, hỏi rằng có tồn tại một bộ giá trị của các biến sao cho biểu thức nhận giá trị FALSE hay không?
Cho một công thức 3-CNF, hỏi rằng có tồn tại một bộ giá trị của các biến sao cho biểu thức nhận giá trị TRUE hay không?
Cho một công thức 3-CNF, hỏi rằng có tồn tại một bộ giá trị của các biến sao cho biểu thức nhận giá trị FALSE hay không?
Cho A, B, C là các bài toán. Nếu A dẫn về được B và B dẫn về được C thì
B dẫn về được A
A dẫn về được C
C dẫn về được A
C không dẫn về được B
Khi bài toán A “dẫn về được” bài toán B sau thời gian đa thức, được hiểu là:
Bài toán B “khó bằng” bài toán A
Bài toán B “khó hơn” bài toán A
Bài toán A “khó bằng” bài toán B
Bài toán A “khó hơn” bài toán B
Để chứng minh bài toán B là NPC cần thực hiện:
1.Chứng minh B thuộc NP;
2.Tìm bài toán A thuộc N;
3. Chứng minh bài toán A quy dẫn về bài toán B
1.Chứng minh B thuộc NP;
2.Tìm bài toán A thuộc NP;
3. Chứng minh bài toán A quy dẫn về bài toán B
1.Chứng minh B thuộc NP;
2.Tìm bài toán A thuộc NP-Hard;
3. Chứng minh bài toán B quy dẫn về bài toán A
1.Chứng minh B thuộc NP;
2.Tìm bài toán A thuộc NPC;
3. Chứng minh bài toán A quy dẫn về bài toán B
Bài toán nào sau đây thuộc lớp NP nhưng không phải NPC:
Bài toán TSP
Bài toán tập phủ đỉnh tối ưu
Bài toán Tối ưu hóa tuyến tính
Bài toán xác định chu trình Hamiltonian
Bài toán TSP (người du lịch) thuộc lớp nào:
NPC
NP-Hard
P
NP
Bài toán tìm chu trình Hamilton thuộc lớp nào
P
NP
NP-Hard
NPC
Nếu bài toán A có thể quy dẫn đến bài toán B, và bài toán B thuộc lớp NPC, điều gì đúng:
Bài toán A thuộc lớp NPC
Bài toán A không thuộc lớp NP
Bài toán A thuộc lớp NP-Hard
Bài toán A không thể giải quyết được
Bài toán nào sau đây là NPC và được gọi là “ bài toán khó dễ nhất”:
Bài toán 3- SAT
Bài toán phủ đỉnh
Bài toán xác định chu trình Hamilton
Bài toán phân hoạch
Bài toán Max-Cut thuộc lớp bài toán nào:
NPC
NP-Hard
P
NP
Bài toán phủ đỉnh(Vertex Cover- VC) thuộc lớp bài toán nào:
NPC
NP-Hard
P
NP
Bài toán 3-SAT thuộc lớp bài toán nào:
P
NP
NPC
Bài toán về bè lớn nhất của đồ thị (MaxClique) thuộc lớp bài toán nào:
P
NP
NP-Hard
NPC
Bài toán tô màu đồ thị thuộc lớp bài toán nào:
P
NP
NPC
NP-Hard
Bài toán lập lịch thuộc lớp bài toán nào
NP
P
NPC
NP-Hard
Bài toán Ba lô giá trị nguyên thuộc lớp bài toán nào:
NP
P
NPC
NP-Hard
Đặc điểm của bài toán thuộc lớp NPC là
Không thuộc lớp NP
Là bài toán quyết định
Không thể kiểm định lời giải trong thời gian đa thức
Mọi bài toán trong NP có thể quy dẫn đến nó
Khẳng định nào sau đây là đúng về lớp NP-Hard:
(Chọn 2 phương án đúng)
Là lớp con của NPC
Bao gồm các bài toán mà mọi bài toán NP đều quy dẫn đến
Có thể bao gồm cả bài toán tối ưu
Không chứa các bài toán quyết định
Điều kiện nào cần thỏa mãn để một bài toán được xem là NPC:
Thuộc lớp NP
Có thể kiểm định nghiệm trong thời gian tuyến tính
Không cần là bài toán quyết định
Mọi bài toán NP quy dẫn về nó
Để quy dẫn từ bài toán SAT sang bài toán Max-Cut, cần:
Dùng mô hình Hamilton
Mã hóa ràng buộc logic bằng trọng số cạnh
Biểu diễn biến logic thành đỉnh và cạnh của đồ thị
Tìm đường đi Euler
Trong phép quy dẫn từ KNAPSACK sang PHẠT, điều nào sau đây là đúng khi xét mối liên hệ giữa ba lô và lịch trình?
Mỗi đồ vật được xử lý tại thời điểm cụ thể
Trọng lượng tối đa của balo tương đương với hạn định hoàn thành
Mỗi công việc tương ứng với một điểm phạt ứng với trọng lượng
Trọng lượng balo được ánh xạ thành tổng thời gian xử lý cho phép
Một bài toán được gọi là NP-Hard khi:
Có thuật toán không đơn định giải trong thời gian đa thức
Có thể được giải trong thời gian đa thức
Nếu có thuật toán đa thức giải nó thì mọi bài toán trong NP cũng giải được
Nếu có thuật toán đa thức giải nó thì mọi bài toán trong NP cũng giải được
D. Mọi bài toán trong NP có thể quy dẫn đến nó
Chứng minh bài toán PHẬT là NPC dựa trên bài toán nào:
TSP
KNAPSACK
Max-Cut
CIRCUIT-SAT
Trong các bước sau, bước nào không đúng khi chứng minh bài toán là NPC?
Tìm một bài toán trong lớp P để quy dẫn
Quy dẫn bài toán đang xét về bài toán đã biết
Chứng minh bài toán thuộc NP
Dùng bài toán đã biết là NPC để quy dẫn về bài toán đang xét
Để chứng minh một bài toán là NPC, ta cần:
Chứng minh nó có lời giải duy nhất
Tìm một bài toán NPC có thể quy dẫn về nó
Chứng minh bài toán đó thuộc NP
Chứng minh mọi bài toán P đều quy dẫn về nó
Bài toán nào sau đây thuộc NPC:
Phân hoạch tập (Partition)
Nhân hai số nguyên lớn
3-SAT
Tìm kiếm tuyến tính
Kỹ thuật chia để trị hoạt động bằng cách:
Chia nhỏ một bài toán phức tạp thành các bài toán con nhỏ hơn, sau đó kết hợp các bài toán con để có được lời giải cho bài toán ban đầu.
Chia nhỏ một bài toán phức tạp thành các bài toán con nhỏ hơn, giải quyết từng bài toán con một cách độc lập để có được lời giải cho bài toán ban đầu.
Chia nhỏ một bài toán phức tạp thành các bài toán con độc lập, sau đó kết hợp để có được lời giải cho bài toán ban đầu.
Chia nhỏ một bài toán phức tạp thành các bài toán con nhỏ hơn, giải quyết từng bài toán con một cách độc lập, sau đó tổng hợp các kết quả lại để có được lời giải cho bài toán ban đầu.
Các bước chính trong kỹ thuật "Chia để trị" gồm:
1. Chia nhỏ 2. Giải quyết 3. Tổng hợp
1. Chia đôi; 2. Giải quyết ;3. Tổng hợp
1. Chia đôi; 2. Tổng hợp ;3. Giải quyết
1. Chia nhỏ ;2. Tổng hợp ;3. Giải quyết
Bước chia nhỏ trong kỹ thuật chia để trị có ý nghĩa là:
Bài toán A ban đầu được chia thành nhiều bài toán con, mỗi bài toán con có kích thước bằng kích thước của bài toán A.
Bài toán A ban đầu được chia thành nhiều bài toán con, mỗi bài toán con có kích thước lớn hơn bài toán A
Bài toán A ban đầu được chia thành nhiều bài toán con nhỏ hơn, độc lập với nhau, có cấu trúc tương tự như bài toán ban đầu nhưng với kích thước nhỏ hơn.
Bài toán A ban đầu được chia thành nhiều bài toán con nhỏ hơn, độc lập với nhau, có cấu trúc tương tự như bài toán ban đầu nhưng với kích thước lớn hơn.
Bước giải quyết trong kỹ thuật chia để trị có ý nghĩa là:
Mỗi bài toán con được giải quyết độc lập. Nếu bài toán con đủ nhỏ, nó sẽ được giải trực tiếp; nếu không, lại tiếp tục áp dụng phương pháp chia để trị cho bài toán con này.
Mỗi bài toán con được giải quyết độc lập. Nếu bài toán con đủ lớn nó sẽ được giải bằng phương pháp chia để trị.
Mỗi bài toán con được giải quyết không độc lập, nếu không giải được thì lại tiếp tục dùng phương pháp chia để trị cho bài toán con này.
Mỗi bài toán con được giải quyết độc lập. Nếu bài toán con có kích thước lớn thì lại tiếp tục dùng phương pháp chia để trị cho bài toán con này.
Bước tổng hợp trong kỹ thuật chia để trị có ý nghĩa là:
Tổng hợp các bài toán con để có được bài toán ban đầu
Tổng hợp một lời giải của các bài toán con để có được bài toán ban đầu
Tổng hợp các lời giải của các bài toán con để có được lời giải cho bài toán ban đầu
Tổng hợp các lời giải của các bài toán con để có được mô hình phát biểu của bài toán ban đầu
Kỹ thuật chia để trị được thiết kế theo kiểu:
Từ trên xuống (top – down)
Từ dưới lên (bottom – up)
Từ trái sang phải (left – right)
Từ phải sang trái (right – left)
Ý tưởng “chia bài toán cần giải quyết thành các bài toán con cùng dạng, có kích cỡ nhỏ hơn, cứ như vậy lặp lại nhiều lần cho đến khi bài toán thu được đủ đơn giản để có thể giải quyết được trực tiếp. Sau đó, lời giải của các bài toán nhỏ được tổng hợp lại thành lời giải cho bài toán ban đầu” là của kỹ thuật:
Quay lui
Nhánh cận
Tham lam
Chia để trị
Chia để trị là 1 phương pháp áp dụng cho các bài toán:
Có thể giải quyết bằng cách chia nhỏ bài toán ban đầu ra thành các bài toán con và giải quyết các bài toán con này. Sau đó lời giải của các bài toán con được tổng hợp lại thành lời giải cho bài toán ban đầu.
Có thể giải quyết bằng cách tìm lời giải của các bài toán cùng dạng và tổng hợp lại thành lời giải cho bài toán ban đầu.
Có thể giải quyết bằng cách chia đôi bài toán ban đầu
Có thể giải quyết bằng cách chia ba bài toán ban đầu
Việc tổng hợp lời giải của các bài toán con để nhận được lời giải cho bài toán cần giải quyết trong kỹ thuật “chia để trị” có thể không cần thực hiện, trong trường hợp:
Bài toán ban đầu đã được phân chia hết
Các bài toán con nhận được không cần phân chia nữa
Các bài toán cơ sở đã được giải hết
. Quá trình phân chia bài toán ban đầu thành các bài toán cơ sở đã chứa đựng việc tổng hợp kết quả. Khi giải xong các bài toán cơ sở thì bài toán ban đầu cũng đã được giải quyết.
Với thuật toán Mergesort khi sử dụng kỹ thuật “chia để trị” quá trình phân chia thể hiện:
Chia đôi một danh sách, cho đến khi danh sách chỉ còn một nửa số phần tử
Chia đôi một danh sách, cho đến khi danh sách chỉ còn một phần tư số phần tử
Chia đôi một danh sách, cho đến khi danh sách chỉ còn hai phần tử
Chia đôi một danh sách, cho đến khi danh sách chỉ còn một phần tử
Với thuật toán Mergesort khi sử dụng kỹ thuật “chia để trị” , bài toán cơ sở có dạng:
Sắp xếp một danh sách có độ dài bằng 1
Sắp xếp một danh sách có độ dài bằng 2
Sắp xếp một danh sách có độ dài bằng một nửa danh sách ban đầu
Sắp xếp một danh sách có độ dài bằng một phần tư danh sách ban đầu
Với thuật toán Mergesort khi sử dụng kỹ thuật “chia để trị” , việc tổng hợp kết quả là :
“trộn” 2 danh sách đã có thứ tự để được một danh sách không có thứ tự.
“trộn” 2 danh sách đã có thứ tự để được một danh sách có thứ tự.
“trộn” 2 danh sách chưa có thứ tự để được một danh sách có thứ tự.
“trộn” 2 danh sách chưa có thứ tự để được một danh sách chưa có thứ tự.
Bài toán con trong quá trình phân chia của kỹ thuật “chia để trị” là:
Không cùng dạng với bài toán ban đầu và có kích cỡ là nhỏ hơn
Có cùng dạng với bài toán ban đầu và có kích cỡ là lớn hơn
Không cùng dạng với bài toán ban đầu và có kích cỡ là lớn hơn
Có cùng dạng với bài toán ban đầu và có kích cỡ là nhỏ hơn
Kỹ thuật “chia để trị” thường dẫn đến một thuật toán:
Đệ quy
Quay lui
Liệt kê
Tối ưu
Lược đồ chung của kỹ thuật chia để trị :
void DivideConquer(A,x); {Tìm nghiệm x của bài toán A}{ If A đủ nhỏ then Giải bài toán A;Else { Chia A thành các bài toán con A1, A2,…,Am; for (i=1; i =m; i++) DivideConquer(Ai,xi); Kết hợp các nghiệm xi (i = 1, 2, …, m) của các bài toán con Ai để nhận được nghiệm x của bài toán A; }}
void DivideConquer(A,x); {Tìm nghiệm x của bài toán A}{ If A đủ nhỏ then Giải bài toán A;Else { Chia A thành các bài toán con A1, A2,…,Am; for (i=1; i =m; i++) DivideConquer(Ai,xi); Kết hợp các bài toán con Ai để nhận được bài toán A; }}
void DivideConquer(A,x); {Tìm nghiệm x của bài toán A} { Chia A thành các bài toán con A1, A2,…,Am; for (i=1; i =m; i++) Kết hợp các bài toán con Ai để nhận được bài toán A; }
void DivideConquer(A,x); {Tìm nghiệm x của bài toán A} { Chia A thành các bài toán con A1, A2,…,Am; for (i=1; i =m; i++) DivideConquer(Ai,xi); Kết hợp các nghiệm xi (i = 1, 2, …, m) của các bài toán con Ai để nhận được nghiệm x của bài toán A;}
Tư tưởng chính của kỹ thuật chia để trị là:
Chia bài toán đã cho thành một số bài toán con có kích thước nhỏ hơn. Giải các bài toán con (kích thước giảm đến trường hợp tầm thường được gọi là bài toán cơ sở). Tổng hợp (kết hợp) các bài toán con để nhận bài toán ban đầu.
Chia bài toán đã cho thành một số bài toán con có kích thước nhỏ hơn. Giải các bài toán con (kích thước giảm đến trường hợp tầm thường được gọi là bài toán cơ sở). Tổng hợp (kết hợp) kết quả của các bài toán con để nhận được lời giải cho bài toán ban đầu.
Chia bài toán đã cho thành một số bài toán cơ sở. Giải các bài toán cơ sở (kích thước giảm đến trường hợp tầm thường). Tổng hợp (kết hợp) các bài toán cơ sở để nhận được bài toán ban đầu.
Chia bài toán đã cho thành một số bài toán cơ sở. Giải các bài toán cơ sở (kích thước giảm đến trường hợp tầm thường). Tổng hợp (kết hợp) kết quả của các bài toán cơ sở để nhận được bài toán ban đầu.
Với thuật toán Quicksort khi sử dụng kỹ thuật “chia để trị” , bài toán cơ sở có dạng:
Sắp xếp một danh sách chỉ gồm một phần tử
Sắp xếp một danh sách gồm nhiều phần tử có khóa bằng nhau
Sắp xếp một danh sách chỉ gồm một phần tử hoặc nhiều phần tử có khóa bằng nhau
Sắp xếp một danh sách chỉ gồm một phần tử hoặc nhiều phần tử có khóa không bằng nhau
Với thuật toán Quicksort khi sử dụng kỹ thuật “chia để trị” , ” quá trình phân chia thể hiện:
Phân chia danh sách thành 2 danh sách con “bên trái” và “bên phải
Sắp xếp hai danh sách “bên trái” và “bên phải” của khóa chốt để được danh sách không có thứ tự
Phân chia danh sách thành 2 danh sách con “bên trái” và “bên phải”, sắp xếp “bên trái” và “bên phải” để được danh sách có thứ tự
Phân chia danh sách thành 2 danh sách con “bên trái” và “bên phải”, trộn “bên trái” và “bên phải” để được danh sách có thứ tự
Với bài toán xếp lịch thi đấu thể thao khi sử dụng kỹ thuật “chia để trị” , bài toán cơ sở có dạng:
Xếp lịch thi đấu cho 1 cầu thủ
Xếp lịch thi đấu cho 2 cầu thủ
Xếp lịch thi đấu cho 3 cầu thủ
Xếp lịch thi đấu cho 4 cầu thủ
Với bài toán xếp lịch thi đấu thể thao khi sử dụng kỹ thuật “chia để trị” , quá trình phân chia thể hiện:
Để xếp lịch cho n cầu thủ, ta xếp lịch cho 2n cầu thủ
Để xếp lịch cho n cầu thủ, ta xếp lịch cho 2n cầu thủ
Để xếp lịch cho n cầu thủ, ta xếp lịch cho n/4 cầu thủ; để xếp lịch cho n/4 cầu thủ, ta xếp lịch cho 4 cầu thủ, …
Để xếp lịch cho n cầu thủ, ta xếp lịch cho n/2 cầu thủ; để xếp lịch cho n/2 cầu thủ, ta xếp lịch cho n/4 cầu thủ, …
Với bài toán xếp lịch thi đấu thể thao khi sử dụng kỹ thuật “chia để trị” , quá trình tổng hợp lời giải thể hiện:
Từ lịch của 2 cầu thủ xếp lịch thi đấu cho 4 cầu thủ; Từ lịch của 4 cầu thủ xếp lịch thi đấu cho 8 cầu thủ, …
Từ lịch của 2 cầu thủ xếp lịch thi đấu cho 3 cầu thủ; Từ lịch của 3 cầu thủ xếp lịch thi đấu cho 4 cầu thủ, …
Từ lịch của 2 cầu thủ xếp lịch thi đấu cho 3 cầu thủ; Từ lịch của 3 cầu thủ xếp lịch thi đấu cho 6 cầu thủ, …
Từ lịch của 2 cầu thủ xếp lịch thi đấu cho 4 cầu thủ; Từ lịch của 4 cầu thủ xếp lịch thi đấu cho 6 cầu thủ,…
Với bài toán tìm kiếm nhị phân giá trị x trên một dãy đã sắp xếp, quá trình chia để trị được thể hiện:
- Tìm phần tử ở giữa dãy- So sánh x với phần tử ở giữa dãy - Nếu bằng nhau thì trả về vị trí giữa - Nếu x nhỏ hơn thì tìm ở nửa bên trái - Nếu x lớn hơn thì tìm ở nửa bên phải- Trả về giá trị 0 (nếu không tìm thấy)
- Tìm phần tử ở giữa dãy- So sánh x với phần tử ở giữa dãy - Nếu bằng nhau thì trả về vị trí giữa - Nếu x nhỏ hơn thì tìm ở nửa bên phải - Nếu x lớn hơn thì tìm ở nửa bên trái- Trả về giá trị 0 (nếu không tìm thấy)
- Tìm phần tử ở vị trí số 2 của dãy (khóa)- So sánh x với phần tử khóa - Nếu bằng nhau thì trả về vị trí số 2 - Nếu x nhỏ hơn thì tìm ở nửa bên trái - Nếu x lớn hơn thì tìm ở nửa bên phải- Trả về giá trị 0 (nếu không tìm thấy)
- Tìm phần tử ở vị trí số n-1 của dãy (khóa)- So sánh x với phần tử khóa - Nếu bằng nhau thì trả về vị trí số n-1 - Nếu x nhỏ hơn thì tìm ở nửa bên phải - Nếu x lớn hơn thì tìm ở nửa bên trái- Trả về giá trị 0 (nếu không tìm thấy)
Với bài toán tìm kiếm nhị phân giá trị x trên một dãy đã sắp xếp, bài toán cơ sở có dạng:
Tìm kiếm trong một dãy chỉ gồm một phần tử
Tìm kiếm trong một dãy chỉ gồm hai phần tử
Tìm kiếm trong một dãy có số phần tử còn một nửa
Tìm kiếm trong một dãy có số phần tử còn một phần tư
. Chia nhỏ số mũ n ra cho đến khi n=2
Chia nhỏ số mũ n ra cho đến khi n=1
Chia nhỏ số mũ n ra cho đến khi n=4
Chia nhỏ số mũ n ra cho đến khi n=8
Xét bài toán nhân 2 số nguyên lớn có n chữ số X và Y, công thức để tổng hợp kết quả của bài toán khi sử dụng kỹ thuật chia để trị là:
Xét bài toán nhân 2 số nguyên lớn có n chữ số X và Y, bài toán cơ sở khi sử dụng kỹ thuật chia để trị là:
Nhân các số nguyên có n/2 chữ số
Nhân các số nguyên có n/4 chữ số
Nhân các số nguyên chỉ gồm một chữ số
Nhân các số nguyên gồm có hai chữ số
Xét bài toán tìm giá trị lớn nhất (max) của dãy a có n phần tử số nguyên (n nguyên dương), theo kỹ thuật chia để trị, tư tưởng chia theo nhị phân được thể hiện:
Chia đôi dãy, tìm max1 của nửa đầu dãy, tìm max2 của nửa cuối dãy, sau đó so sánh max1 và max2 để tìm max của dãy.
Chia đôi dãy, tìm max1 của nửa đầu dãy, tìm max2 của nửa cuối dãy, sau đó kết luận max1 là max của dãy.
Chia đôi dãy, tìm max1 của nửa đầu dãy, tìm max2 của nửa cuối dãy, sau đó kết luận max2 là max của dãy.
Chia đôi dãy, tìm max1 của nửa đầu dãy, tìm max2 của nửa cuối dãy, sau đó kết luận giá trị trung bình của max1 và max2 là max của dãy.
Khi giải quyết bài toán Tháp Hà Nội“Cho 3 cột A, B, C. Trên cột A đặt n cái đĩa với kích cỡ khác nhau, theo thứ tự to dần đến nhỏ dần từ dưới lên. Hãy di chuyển n cái đĩa từ cột A sang cột C, sao cho: Mỗi bước chỉ có thể chuyển 1 cái đĩa từ cột này sang cột khác, cái đĩa được nhấc ra phải là cái đĩa ở trên cùng (không được đi chuyển cái đĩa khi có đĩa khác ở trên nó)Khi chuyển đĩa sang một cột thì phải đặt nó ở trên cùng.Không được đặt một cái đĩa to lên trên cái đĩa nhỏ hơn. Tức là một đĩa chỉ có thể được chuyển vào một cột trống hoặc cột đang có đĩa to hơn nó ở trên cùng.”ý tưởng chia để trị :
1. Chuyển n-1 đĩa từ cột A sang cột B;2. Chuyển một đĩa (thứ n) từ cột A sang cột C;3. Chuyển n-1 đĩa từ cột B sang cột C.
1.Chuyển 1 đĩa từ cột A sang cột B;2.Chuyển n-1 đĩa từ cột A sang cột C;3.Chuyển n-1 đĩa từ cột B sang cột C.
1.Chuyển 2 đĩa từ cột A sang cột B;2.Chuyển n-1 đĩa từ cột A sang cột C;3.Chuyển n-1 đĩa từ cột B sang cột C.
1.Chuyển n-1 đĩa từ cột A sang cột C;2.Chuyển 1 đĩa từ cột A sang cột C;3.Chuyển n-1 đĩa từ cột C sang cột B.
Xét bài toán tìm giá trị lớn nhất (max) của dãy a có n phần tử số nguyên (n nguyên dương), theo kỹ thuật chia để trị, bài toán cơ sở là:
Tìm giá trị lớn nhất (max) của dãy a có một phần tử số nguyên
Tìm giá trị lớn nhất (max) của dãy a có hai phần tử số nguyên
Tìm giá trị lớn nhất (max) của dãy a có n/2 phần tử số nguyên
Tìm giá trị lớn nhất (max) của dãy a có n/4 phần tử số nguyên
Thuật toán đơn định có đặc điểm nào sau đây? (Chọn 2 phương án đúng)
Có thể cho nhiều kết quả với cùng đầu vào
Luôn kết thúc sau số bước xác địn
Có độ phức tạp không xác định
Luôn chọn một hành động duy nhất tại mỗi bước
Trong một thuật toán không đơn định, điều nào đúng? (Chọn 2 phương án đúng)
Có nhiều hướng đi tiếp tại mỗi bước
Luôn có lời giải duy nhất
Có thể "thử" các khả năng khác nhau cùng lúc
Không bao giờ đưa ra kết quả sai
Ví dụ nào thuộc lớp NP nhưng chưa biết có nằm trong P hay không? (Chọn 2 phương án đúng)
Tô màu đồ thị
Tìm phần tử lớn nhất
Phân hoạch tập số
Tìm kiếm nhị phân
Bài toán nào sau đây là ví dụ của bài toán NPC? (Chọn 2 phương án đúng)
Bài toán phủ đỉnh
Tìm đường đi Hamilton
Sắp xếp chèn
Bài toán Nhân ma trận
Một bài toán A thuộc lớp NP và mọi bài toán trong lớp NP đều có thể quy dẫn về A trong thời gian đa thức thì: (Chọn 2 phương án đúng)
Bài toán thuộc lớp NP-Hard
Bài toán có thể giải được trong thời gian tuyến tính
Bài toán thuộc lớp NP
Bài toán không thể là bài toán tối ưu
Chọn 2 phương án đúng nói về việc sử dụng đệ quy trong bài toán Fibonacci
Hàm tính Fibonacci có hai lời gọi đệ quy
Fibonacci không thể tính bằng vòng lặp
Dãy Fibonacci là ví dụ kinh điển của thuật toán đệ quy
Tính fibo(5) chỉ gọi một lần đệ quy
Chọn 2 phương án đúng liên quan đến ưu, nhược điểm của đệ quy:
Đệ quy chỉ dùng được khi dữ liệu là số nguyên
Một số bài toán đòi hỏi bắt buộc phải dùng đệ quy
Đệ quy giúp biểu diễn bài toán ngắn gọn hơn
Đệ quy là cách viết khó hơn và ít ứng dụng hơn vòng lặp
Ví dụ nào sau đây là đệ quy đúng trong lập trình? (Chọn 2 phương án đúng)
Một hàm gọi hàm khác
Một hàm gọi chính nó mà không thay đổi tham số
Một hàm dùng vòng lặp for
Một hàm gọi chính nó với tham số giảm dần
Các phần bắt buộc để xây dựng một chương trình con đệ quy là gì?
(Chọn 2 phương án đúng)
Câu lệnh gán → Không bắt buộc.
Lời gọi đệ quy
Sử dụng vòng lặp
Điều kiện dừng
Trong định lý Cook, Bài toán nào được chứng minh đầu tiên là NPC:
(Chọn 2 phương án đúng)
CIRCUIT-SAT
3-SAT
TSP
Partition
Chọn 2 phương án đúng về việc lặp và sử dụng phương trình đệ quy.
Để tính độ phức tạp thuật toán đệ quy, cần lập phương trình đệ quy.
T(n)=T(n−1)+C có độ phức tạp O(n).
T(n)=T(n)+1 là phương trình đúng (Đây là một phương trình sai về mặt toán học).
T(n)=T(n−1)−C là công thức phổ biến (Phương trình đệ quy thường thể hiện sự tăng trưởng, không phải giảm).
Chọn hai phương án đúng về quan hệ giữa các lớp bài toán P và NP.
Nếu P = NP thì tất cả các bài toán NP đều giải được bằng thuật toán đơn định trong thời gian đa thức.
Một số bài toán có thể kiểm tra nghiệm nhanh nhưng tìm nghiệm thì rất khó.
Nếu một bài toán có độ phức tạp O(2n) thì chắc chắn thuộc lớp P
Lớp NP chỉ chứa các bài toán dễ
Chọn 2 phương án đúng liên quan đến hàm đệ quy uscIn(a, b).
Đệ quy không được sử dụng trong các phép chia
Hàm uscIn(a, b) sẽ chạy vô hạn nếu b luôn khác 0
Phép gọi uscIn(b, a % b) là phần đệ quy
Hàm uscIn(a, b) có phần cơ sở là khi b == 0
Phương trình đệ quy nào có thể được phân tích bằng định lý Master?
T(n) = T(n-1) + n
T(n) = 4T(n/3) + n²
T(n) = 2T(n-1) + 1
T(n) = 3T(n/2) + n
Ví dụ điển hình về quy dẫn từ bài toán SAT là?
Từ HC sang TSP
Từ TSP sang HC
Từ SAT sang 3-SAT
Từ P sang NP
Trong thuật toán Quicksort, phần tử “chốt” (pivot) được dùng để làm gì?
So sánh các phần tử với phần tử “chốt” để phân hoạch mảng
Sử dụng để phân hoạch mảng
Dùng để lưu trữ giá trị lớn nhất
Dùng để kết thúc đệ quy
Trong mô hình nhân số nguyên cải tiến (thuật toán Strassen), mục đích chính là gì?
Giảm số phép nhân từ 4 còn 3
Giảm số phép cộng từ 5 còn 2
Giảm độ phức tạp từ O(n²) xuống O(n^1.59)
Loại bỏ phép chia
Trong bài toán Tháp Hà Nội, để di chuyển n đĩa từ cọc nguồn sang cọc đích, ta cần:
Dùng đệ quy chuyển từng đĩa
Chuyển tất cả đĩa cùng lúc
Dùng thuật toán quay lui
Di chuyển n-1 đĩa sang cọc phụ trước
Trong thuật toán Mergesort, các bước chính là gì?
Gọi đệ quy sắp xếp từng nửa
Chia mảng thành hai nửa
Tìm phần tử chốt để phân hoạch
Trộn hai nửa lại với nhau
Các bước cơ bản của kỹ thuật chia để trị bao gồm:
Chia nhỏ – Giải quyết – Tổng hợp (kết hợp)
Tìm kiếm và duyệt toàn bộ
Phân tích và tổng hợp
Xử lý đồng thời và lưu trữ
Khi nào việc áp dụng kỹ thuật chia để trị hiệu quả nhất?
Khi bài toán có nhiều vòng lặp lồng nhau
Khi các bài toán con có thể giải đồng thời
Khi bài toán có thể phân tách thành các bài toán con độc lập
Khi cần giảm độ phức tạp bằng phương pháp vét cạn
Bài toán Tháp Hà Nội sử dụng chia để trị bằng cách:
(Chọn 2 phương án đúng)
Dùng đệ quy chuyển từng đĩa
Dùng vòng lặp chính xác
Không có bước tổng hợp
Di chuyển n-1 đĩa sang cọc phụ
