wayground logo

Free Printable Worksheets

Font size

S
M
L
XL
Worksheets

Tuần 1: bài kiểm tra 15 phút

Total questions: 89

Worksheet time: 48mins

Name
Class
Date
1.

Với thuật toán tính tổng của các số chẵn trong dãy n số nguyên (n nguyên dương), cần:

a)

Kiểm tra tính chất chia hết cho 2 của từng phần tử trong dãy

b)

Lặp lại qua từng phần tử

c)

Khởi tạo tổng bằng -1

d)

Tăng tổng khi gặp số lẻ

2.

Biểu diễn thuật toán bằng ngôn ngữ tự nhiên có thể áp dụng tốt khi:

a)

Sử dụng cấu trúc vòng lặp phức tạp

b)

Giao tiếp với người chưa học lập trình

c)

Giới thiệu khái niệm thuật toán

d)

Viết phần mềm lớn

3.

Câu 3: Biểu diễn thuật toán giải phương trình bậc nhất ax + b = 0 (a,b là số thực) bằng sơ đồ khối, các bước nào là phù hợp?

a)

A. Sử dụng hình tròn/elip để biểu thị vòng lặp

b)

B. Dùng hình thoi để kiểm tra điều kiện a = 0

c)

C. Gán giá trị cho x sau khi kiểm tra điều kiện

d)

D. Tính nghiệm x = b/a mà không kiểm tra điều kiện

4.

Trong lưu đồ khối biểu diễn thuật toán:

a)

Hình bình hành dùng để biểu diễn thao tác nhập/xuất

b)

Hình tròn để biểu diễn thao tác kết thúc của thuật toán

c)

mũi tên biểu diễn hướng thực hiện thuật toán

d)

không có ký hiệu điều kiện

5.

Trong lưu đồ khối biểu diễn thuật toán tìm giá trị lớn nhất trong dãy n số nguyên (n nguyên dương), bằng mã giả cần:

a)

Gán max = 0 là cách làm đúng cho mọi trường hợp

b)

So sánh từng phần tử trong dãy với max

c)

Lưu đồ khối không dùng được cho thuật toán này

d)

Gán giá trị ban đầu cho biến tìm max

6.

Khi biểu diễn thuật toán tính tổng các số từ 1 đến n (n là số nguyên dương) bằng giả mã, cần:

a)

Kiểm tra n chẵn/lẻ trước khi tính tổng

b)

Khởi tạo biến tính tổng bằng 0

c)

Dùng vòng lặp for từ 1 đến n

d)

Tăng biến tổng sau khi vòng lặp kết thúc

7.

Đoạn chương trình viết bằng giả mã sau thực hiện công việc gì?:

(chọn 2 phương án đúng)

1. scanf(&a, &b);

2. while (b != 0){

3.           r = a % b;

4.           a = b;

5.           b = r;

}

6. us = a;

a)

Tìm ước chung lớn nhất của hai số a và b (thuật toán Euclid)

b)

Tính tổng hai số a và b

c)

Áp dụng thuật toán euclid để tính ước số chung lớn nhất

d)

tìm bội chung nhỏ nhất của hai số a, b

8.

Trong lưu đồ khối biểu diễn thuật toán tìm USCLN của 2 số nguyên a, b bằng phương pháp Euclid, cần:

a)

Luôn dùng vòng lặp for

b)

Chỉ xét số nguyên dương < 5

c)

Sử dụng phép chia có dư

d)

Dừng khi phần dư bằng 0

9.

Ngôn ngữ tự nhiên có thể gây mơ hồ trong bước xử lý

a)

Đúng

b)

Sai

10.

Giả mã yêu cầu nhiều ký hiệu đặc biệt

a)

Đúng

b)

Sai

11.

Mỗi cách biểu diễn thuật toán đều phù hợp với các tình huống khác nhau

a)

Đúng

b)

Sai

12.

Khối hình chữ nhật trong sơ đồ khối biểu diễn thao tác xử lý

a)

Đúng

b)

Sai

13.

Sơ đồ khối giúp lập trình viên dễ gỡ rối hơn

a)

Đúng

b)

Sai

14.

Trong sơ đồ khối, không cần có điểm bắt đầu/kết thúc

a)

Đúng

b)

Sai

15.

Ngôn ngữ tự nhiên là cách biểu diễn tối ưu nhất

a)

Đúng

b)

Sai

16.

1) Việc dùng giả mã để biểu diễn thuật toán làm khó khăn cho người học lập trình

a)

Đúng

b)

Sai

17.

: Mọi biểu diễn thuật toán bằng giả mã có thể dịch sang một ngôn ngữ lập trình.

a)

Đúng

b)

Sai

18.

Trong biểu diễn thật toán bằng giả mã cấu trúc lặp được dùng là “for”

a)

Đúng

b)

Sai

19.

Biểu diễn thật toán bằng giả mã không hỗ trợ điều kiện rẽ nhánh

a)

Đúng

b)

Sai

20.

1) Ngôn ngữ tự nhiên là cách biểu diễn tối ưu nhất

a)

Đúng

b)

Sai

21.

2) Sơ đồ khối giúp lập trình viên dễ gỡ rối hơn

a)

Đúng

b)

Sai

22.

3) Trong sơ đồ khối không cần có điểm bắt đầu/kết thúc

a)

Đúng

b)

Sai

23.

4) Khối hình chữ nhật trong sơ đồ khối biểu diễn thao tác xử lý

a)

Đúng

b)

Sai

24.

1) Trong sơ đồ khối, thao tác xử lý đều dùng hình chữ nhật

a)

Đúng

b)

Sai

25.

2) Trong sơ đồ khối, hình tròn/elip dùng để biểu diễn thao tác kiểm tra điều kiện

a)

Đúng

b)

Sai

26.

3) Trong sơ đồ khối có thể có nhiều điểm bắt đầu

a)

Đúng

b)

Sai

27.

4) Sơ đồ khối không thể hiện được vòng lặp

a)

Đúng

b)

Sai

28.

Việc dùng giả mã để biểu diễn thuật toán làm khó khăn cho người học lập trình

a)

Đúng

b)

Sai

29.

Mọi biểu diễn thuật toán bằng giả mã đều có thể dịch sang một ngôn ngữ lập trình

a)

Đúng

b)

Sai

30.

Biểu diễn thuật toán bằng giả mã không hỗ trợ điều kiện rẽ nhánh

a)

Đúng

b)

Sai

31.

Các thuật toán tính tổng không dùng sơ đồ khối

a)

Đúng

b)

Sai

32.

Khối hình thoi trong sơ đồ khối có 3 nhánh đi ra

a)

Đúng

b)

Sai

33.

Sơ đồ khối yêu cầu tuân thủ quy ước về các hình khối sử dụng

a)

Đúng

b)

Sai

34.

Sơ đồ khối giúp trực quan hóa thuật toán

a)

Đúng

b)

Sai

35.

Sơ đồ khối không áp dụng được cho thuật toán đệ quy

a)

Đúng

b)

Sai

36.

Sơ đồ khối giúp giảm mã lỗi khi lập trình

a)

Đúng

b)

Sai

37.

Biểu diễn thuật toán bằng giả mã có thể viết bằng bất kỳ cú pháp nào không cần theo quy tắc

a)

Đúng

b)

Sai

38.

Biểu diễn thuật toán bằng giả mã dùng cú pháp của C hoặc Pascal

a)

Đúng

b)

Sai

39.

Câu 1: khi đánh giá độ phức tạp của một chương trình chính có gọi các chương trình con (không đệ quy) ta thực hiện theo thứ tự nào dưới đây ?( chọn 2 phương án đúng)

a)

Ưu tiên phân tích chương trình chính rồi bỏ qua chương trình con

b)

Phân tích độ phức tạp của từng chương trình con

c)

Xác định số lần chương trình chính gọi mỗi chương trình con

d)

Bỏ qua phần thân chương trình con vì không ảnh hưởng đến độ phức tạp

40.

Trong một đoạn chương trình có vòng lặp lồng nhau for (k=1; k<=n; k=k+2) for (j=1;j<=n; j=j+2) nếu mỗi thao tác trong thân vòng lặp có độ phức tạp O(1) thì độ phức tạp thời gian của đoạn chương trình là:(chọn 2 phương án đúng nhất)

a)

O((n2)/4)O((n^2)/4)

b)

O(logn)

c)

O(n)

d)

O(n2)O(n^2)

41.

Cho đoạn mã chương trình sau: scan(&n); while (n > 1) { n=n-2 } Với đầu vào n là số lẻ, phát biểu nào là đúng: (chọn 2 phương án đúng )

a)

A. Độ phức tạp là O(log n)

b)

B. Vòng lặp không bao giờ dừng

c)

C. Vòng lặp chạy nhưng dừng tại n = 1

d)

D. Vòng lặp thực hiện (n - 1)/2 lần

42.

Câu 4: Cho thuật toán có một vòng lặp for chạy từ 1 đến n, trong thân vòng mỗi thao tác có độ phức tạp O(log n). Độ phức tạp tổng thể của thuật toán là:

a)

vòng lặp thực hiện n lần, mỗi lần xử lý O( log n)

b)

t tng độ phc tp thi gian laˋ O(nlogn)tổng\ độ\ phức\ tạp\ thời\ gian\ là\ O\left(n\log n\right)

c)

độ phức tạp thời gian là O(log n)

d)

thuật toán có thể được tối ưu xuống O(n)

43.

Trong một đoạn chương trình có vòng lặp lồng nhau for (k=1; k<=n; k=k+2) for (j=1;j<=n; j++) nếu mỗi thao tác trong thân vòng lặp có độ phức tạp O(n) thì tổng độ phức tạp của đoạn chương trình sẽ là:

a)

O(n*n*n)

b)

O(n³)

c)

O(n²)

d)

O(nlogn)

44.

Trong một đoạn chương trình có vòng lặp lồng nhau for (k=1; k<=n; k++) for (j=1;j<=n; j++) mỗi thao tác trong thân vòng lặp có độ phức tạp O(1). Phát biểu nào sau đây là đúng:

a)

A. Độ phức tạp tổng thể là O(n²)

b)

B. Số lần thực hiện thao tác O(1) là n*n

c)

C. Vòng lặp trong thực hiện n lần

d)

D. Độ phức tạp là O(n)

45.

Câu 7: Trong đánh giá độ phức tạp của thuật toán, quy tắc nhân thường áp dụng cho:

(Chọn 2 phương án đúng)

a)

vòng lặp lồng nhau.

b)

các thao tác thực hiện nối tiếp

c)

hàm gọi nhiều hàm con với chi phí tương tự

d)

các thao tác chạy đồng thời (song song)

46.

Độ phức tạp thời gian của đoạn chương trình sau là? trong đó a, b là các số nguyên không âm và n = max(a,b);

a)

A. Độ phức tạp phụ thuộc vào số lần chia, tối đa là O(log n)

b)

B. Thuật toán thực hiện trong thời gian hằng số O(1) về số vòng lặp ít

c)

C. Độ phức tạp là O(n) vì dùng phép chia dư trong vòng lặp

d)

D. Độ phức tạp trung bình là O(log n) trong hầu hết các trường hợp

47.

Cho đoạn chương trình có một vòng lặp duy nhất chạy từ 1 đến n, trong thân vòng lặp có thao tác O(1). Phát biểu nào sau đây là đúng:

a)

Độ phức tạp là O(n²)

b)

Tổng số thao tác thực hiện là O(n)

c)

Độ phức tạp là O(1)

d)

Độ phức tạp thời gian là O(n)

48.

Chọn phát biểu đúng về khả năng hỗ trợ của đệ quy trong các ngôn ngữ lập trình?( chọn 2 phương án đúng)

a)

C và Pascal đều hỗ trợ hàm đệ quy

b)

Tất cả các ngôn ngữ lập trình đều hỗ trợ đệ quy

c)

Đệ quy không thể dùng trong bài toán tính tổng

d)

Đệ quy có thể thay thế vòng lặp trong một số trường hợp

49.

Câu 2: Chọn 2 phương án đúng nói về việc lập và sử dụng phương trình đệ quy Sinh viên chọn 2 phương án đúng nhất

a)

A. T(n) = T(n-1) - C là công thức phổ biến

b)

B. T(n) = T(n) + 1 là phương trình đúng

c)

C. T(n)=T(n-1) + C có độ phức tạp O(n)

d)

D. Để tính độ phức tạp thuật toán đệ quy, cần lập phương trình đệ quy

50.

Các phần bắt buộc để xây dựng một chương trình còn đệ quy là gì?

a)

Câu lệnh gọi

b)

Điều kiện dừng

c)

Lời gọi đệ quy

d)

Sử dụng vòng lặp

51.

Ví dụ nào sau đây là đệ quy đúng trong lập trình?

a)

Một hàm gọi chính nó với tham số giảm dần

b)

Một hàm gọi hàm khác

c)

Một hàm dùng vòng lặp for

d)

Một hàm gọi chính nó mà không thay đổi tham số

52.

Phương trình đệ quy nào dưới đây có thể được phân tích bằng định lý Master

a)

T(n)=T(n-1) + n

b)

T(n)=4T(n/3)+n2T(n)=4T(n/3) + n^2

c)

T(n)=3T(n/2) + n

d)

T(n)=2T(n-1) + 1

53.

Sinh viên chọn 2 phương án đúng liên quan đến hàm đệ quy uscln(a,b)

a)

Đệ quy không được sử dụng trong các phép chia

b)

Hàm uscln(a, b) sẽ chạy vô hạn nếu b luôn khác 0

c)

Phép gọi uscln(b, a % b) là phần đệ quy

d)

Hàm uscln(a, b) có phần cơ sở là khi b == 0

54.

Chọn 2 phương án đúng liên quan đến ưu, nhược điểm của đệ quy:

a)

Đệ quy chỉ dùng được khi dữ liệu là số nguyên

b)

Một số bài toán đối hỏi bắt buộc phải dùng đệ quy

c)

Đệ quy giúp biểu diễn bài toán ngắn gọn hơn

d)

Đệ quy là cách viết khó hơn và ít ứng dụng hơn vòng lặp

55.

Chọn 2 phương án đúng nói về việc sử dụng đệ quy trong bài toán Fibonacci

a)

A. Hàm tính Fibonacci có hai lời gọi đệ quy

b)

B. Fibonacci không thể tính bằng vòng lặp

c)

C. Dãy Fibonacci là ví dụ kinh điển của thuật toán đệ quy

d)

D. Tính fibo(5) chỉ gọi một lần đệ quy

56.

Những điểm cần chú ý khi biểu diễn thuật toán bằng ngôn ngữ tự nhiên là:

a)

Dùng từ thông dụng, dễ hiểu

b)

Trình bày theo trình tự logic của quá trình xử lý

c)

Nên dùng thuật ngữ lập trình chuyên nghiệp

d)

Không cần viết rõ kết quả đầu ra

57.

  Chọn 2 phương án đúng phát biểu đến khả năng hỗ trợ đệ quy trong các ngôn ngữ lập trình.

Sinh viên chọn 2 phương án đúng nhất

a)

C và Pascal đều hỗ trợ hàm đệ quy

b)

Tất cả các ngôn ngữ lập trình đều hỗ trợ hàm đệ quy

c)

đệ quy không thể dùng trong các bài toán tính tồng

d)

đệ quy có thể thay thế vòng lặp trong một số trường hợp

58.

Chọn 2 phương án đúng liên quan đến phần cơ sở trong đệ quy Sinh viên chọn 2 phương án đúng nhất

a)

Nếu không có phần cơ sở, chương trình sẽ lặp vô hạn

b)

Phần cơ sở có thể bỏ qua nếu bài toán nhỏ

c)

Một chương trình đệ quy phải có phần cơ sở để kết thúc đệ quy

d)

Hàm đệ quy không thể dùng trong pascal

59.

Trong lưu đồ khối biểu diễn thuật toán tìm USCLN của hai số nguyên a, b bằng phương pháp Euclid cần:

a)

Luôn dùng vòng lặp for

b)

Chỉ xét số nguyên dương <5

c)

Dừng khi phần dư bằng 0

d)

Sử dụng phép chia có dư

60.

Thuật toán giải phương trình ax+b=0 (với a,b là số thực) bằng giả mã, cần:

a)

Xuất thông báo nếu b≠0

b)

Kiểm tra hệ số a=0

c)

Duyệt a, b bằng vòng lặp

d)

Tính nghiệm x=-b/a

61.

Câu 6: Cho đoạn mã chương trình sau
Scan(&n);
While(n>1){
n=n-2;
};
Với đầu vào n là số chẵn, phát biểu nào sau đây đúng.

a)

vòng lặp không thực hiện nếu n<1

b)

Độ phức tạp là O(n)

c)

Số lần lặp là n/2

d)

Vòng lặp sẽ kết thúc khi n =2

62.

Sinh viên chọn 2 phương án đúng nhất:

a)

Vòng lặp không thực hiện nếu n<1

b)

Độ phức tạp là O(n)

c)

Số lần lặp là n/2

d)

Vòng lặp kết thúc khi n=2

63.

Chọn 2 phương án đúng liên quan đến hàm đệ quy uscln(a,b): Sinh viên chọn 2 phương án đúng nhất

a)

Đệ quy không được sử dụng trong các phép chia

b)

Hàm uscln(a,b) chạy vô hạn nếu b luôn khác 0

c)

Phép gọi uscln(a, a%b) là phần đệ quy

d)

Hàm uscln(a,b) có phần cơ sở khi b==0

64.

Câu 3: Với bài toán “Tháp Hà Nội”, để chuyển n đĩa từ cọc A sang cọc B (cọc trung gian C)

a)

Lặp lại thao tác 64 lần

b)

Chuyển n-1 đĩa từ C sang B

c)

Chuyển 2 đĩa từ A sang B

d)

Chuyển n-1 đĩa từ A sang C

65.

Khi sử dụng quy tắc tổng quát để phân tích độ phức tạp chương trình, nếu phần thân của chương trình có độ phức tạp O(n) và số vòng lặp là n, thì độ phức tạp toàn vòng lặp là:

a)

O(n2)O(n^2)

b)

O(n)

c)

O(n+n)

d)

n×O(n)

66.

Giả sử chương trình có hai vòng lặp lồng nhau, mỗi vòng lặp chạy từ 1 đến n. Trong thân của vòng lặp, mỗi thao tác có độ phức tạp O(1). Phát biểu nào sau đây đúng.

a)

Độ phức tạm là O(1)

b)

Tổng số thao tác chương trình là O(n^2)

c)

Độ phức tạm thời gian là O(n^2)

d)

Độ phức tạp thời gian là O(n)

67.

Đoạn chương trình viết bằng giả mã sau thực hiện công việc gì?: Sinh viên chọn 2 phương án đúng nhất

1. scan(&a,&b) ;

2. while(b !=0){

3. r = a%b ;

4. a=b ;

5. b=r ;

}

6. us=a ;

a)

Tìm bội chung nhỏ nhất (BCNN) của a và b

b)

Tính tổng hai số nguyên a và b

c)

Áp dụng thuật toán Euclid để tính USCLN

d)

Tính ước số chung lớn nhất (USCLN) của hai số a và b

68.

Chọn hai phương án đúng về thuật toán đơn định (Sinh viên chọn 2 phương án đúng nhất)

a)

Độ phức tạp thuật toán có dạng O(nk)O(n^k) với k là hằng số

b)

Tất cả các thuật toán đơn định đều có độ phức tạp tuyến tính

c)

Thuật toán đơn định luôn cho kết quả giống nhau với cùng đầu vào

d)

Thuật toán đơn định có thể cho phép chọn nhiều hướng đi

69.

Câu 12: Chọn hai phương án đúng liên quan đến lớp bài toán NP.

a)

A. Tìm phần tử lớn nhất trong mảng là bài toán lớp NP

b)

B. Bài toán tìm tập con có tổng bằng 0 là bài toán lớp NP

c)

C. Bài toán phân hoạch cũng thuộc lớp NP

d)

D.Thuật toán kiểm chứng nghiệm bài toán NP luôn là đệ quy

70.

Chọn hai phương án đúng về quan hệ giữa các bài toán P và NP

a)

Nếu một bài toán có độ phức tạp O(2n)O(2^n) thì chắc chắn thuộc lớp P

b)

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

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ó

d)

Lớp NP chỉ chứa các bài toán dễ

71.

Bài toán nào sau đây thuộc lớp P?

a)

Sắp xếp dãy số bằng thuật toán QuickSort

b)

Tô màu đồ thị

c)

Tìm chu trình Hamilton

d)

Tìm kiếm tuyến tính

72.

Bài toán nào sau đây có thể kiểm chứng nghiệm trong thời gian đa thức?

a)

Tìm kiếm tuyến tính

b)

Tính tổng dãy số

c)

Xác định số nguyên tố

d)

Tập con có tổng bằng 0 (Subset Sum Problem)

73.

Thuật toán không đơn định có đặc điểm nào?(chọn 2 phương án đúng nhất)

a)

Luôn đi theo một hướng duy nhất tại mỗi bước

b)

Có thể "thử" các khả năng khác nhau cùng lúc

c)

Kết quả luôn giống nhau với cùng đầu vào

d)

có nhiều hướng đi tiếp tại mỗi bước

74.

Bài toán thuộc lớp P có tính chất nào?

a)

Có thể kiểm chứng nghiệm trong thời gian đa thức

b)

Có thể giải bằng thuật toán vét cạn trong thời gian mũ

c)

Có thể giải bằng thuật toán đơn định trong thời gian đa thức

d)

Chỉ có thể giải bằng thuật toán không đơn định

75.

Bài toán lớp P thỏa mãn điều kiện nào?

a)

Là bài toán không thể giải trong thực tế

b)

Có thể giải bằng thuật toán đơn định trong thời gian đa thức

c)

Có thể kiểm chứng nghiệm trong thời gian đa thức

d)

Luôn có độ phức tạp là O(n!)

76.

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?

a)

Xếp ba lô 0-1

b)

Nhân ma trận

c)

Tìm chu trình Euler

d)

Tìm chu trình Hamilton

77.

Câu 31: Đâu là hai đặc điểm đúng của thuật toán đơn định?

a)

Thuật toán luôn cho kết quả giống nhau với cùng một đầu vào.

b)

Thuật toán có thể cho kết quả khác nhau với cùng một đầu vào.

c)

Độ phức tạp đa thức có dạng O(n^k) với k là hằng số

d)

Tất cả thuật toán đơn định đều có độ phức tạp tuyến tính

78.

Câu 32: Chọn hai phương án đúng liên quan đến lớp bài toán P (Sinh viên chọn 2 phương án đúng nhất)

a)

A. Lớp P được coi là lớp bài toán khó

b)

B. 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

c)

C. Sắp xếp và tìm kiếm tuyến tính là bài toán lớp P

d)

D. Mọi bài toán lớp P đều không giải được trong thực tế

79.

Ví dụ nào thuộc lớp NP nhưng chưa biết có nằm trong P hay không?

a)

Tìm kiếm nhị phân

b)

Tìm phân tử lớn nhất

c)

Phân hoạch tập số

d)

Tô màu đồ thị

80.

Đặc điểm nhận biết bài toán thuộc lớp NP là:

a)

Có thuật toán đơn định giải trong thời gian tuyến tính

b)

Có thể tìm được lời giải bằng thuật toán logarit

c)

Có thể kiểm tra nghiệm trong thời gian đa thức

d)

Được giải quyết bởi các phương pháp xấp xỉ

81.

Ví dụ nào sau đây thuộc lớp P với độ phức tạp O(n^2)?

a)

Tính lũy thừa nhị phân

b)

Nhân ma trận

c)

Kiểm tra tính liên thông đồ thị

d)

Tìm chu trình Hamilton

82.

thuật toán đơn định có đặc điểm nào sau đây: 2 đáp đúng

a)

có thể cho nhiều kết quả với cùng đầu vào

b)

luôn kết thúc sau số bước xác định

c)

có độ phức tạp không xác định

d)

luôn chọn một hành động duy nhất tại mỗi bước

83.

Phương pháp nào thường dùng để giải bài toán NP trong thực tế?
(Chọn 2 phương án đúng)

a)

tìm kiếm vét cạn

b)

sắp xếp nhanh

c)

Heuristic

d)

Thuật toán xấp xỉ

84.

Trong một tình huống không đơn định, điều nào đúng?

a)

Luôn có lời giải duy nhất

b)

Có nhiều hướng đi tiếp tại mỗi bước

c)

Có thể “thử” các khả năng khác nhau cùng lúc

d)

Không bao giờ đưa ra kết quả sai

85.

Bài toán lớp P thỏa mãn điều kiện nào?

a)

Luôn có độ phức tạp là O(n!)

b)

Có thể kiểm chứng nghiệm trong thời gian đa thức

c)

Có thể giải bằng thuật toán đơn định trong thời gian đa thức

d)

Là bài toán không thể giải trong thực tế

86.

Phát biểu nào đúng về thuật toán đơn định?

a)

Độ phức tạp đa thức có dạng O(n^k) với k là hằng số

b)

Có thể lựa chọn nhiều hướng đi cùng lúc

c)

Luôn cho kết quả giống nhau với cùng đầu vào

d)

Tất cả đều có độ phức tạp tuyến tính

87.

Ví dụ điển hình về quy dẫn từ bài toán SAT là:

a)

A. Từ HC sang TSP

b)

B. Từ TSP sang HC

c)

C. Từ P sang NP

d)

D. Từ SAT sang 3-SAT

88.

Chứng minh bài toán PHẠT là NPC dựa trên bài toán nào?

a)

A. CIRCUITSAT

b)

B. Max-Cut

c)

C. KNAPSACK

d)

D. TSP

89.

Để quy dẫn từ bài tán SAT sang bài toán Max-Cut, cần:

a)

Tìm đường đi Euler

b)

Dùng mô hình Hamilton

c)

Mã hóa ràng buộc logic bằng trong số cạnh

d)

Biểu diễn biến logic thành đỉnh và cạnh của đồ thị