Giải SGK Tin học 11 KNTT Bài 27. Thực hành thiết kế chương trình theo phương pháp làm mịn dần có đáp án

33 người thi tuần này 4.6 296 lượt thi 5 câu hỏi

🔥 Đề thi HOT:

1404 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)

4.7 K lượt thi 31 câu hỏi
1095 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 26 có đáp án

2.7 K lượt thi 15 câu hỏi
854 người thi tuần này

Bộ 4 đề thi giữa học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 1)

6.4 K lượt thi 31 câu hỏi
783 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 25 có đáp án

2.1 K lượt thi 15 câu hỏi
517 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 2)

3.8 K lượt thi 30 câu hỏi
499 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 27 có đáp án

1.4 K lượt thi 15 câu hỏi
461 người thi tuần này

15 câu Trắc nghiệm Tin học 11 Kết nối tri thức Bài 28 có đáp án

1.3 K lượt thi 15 câu hỏi
376 người thi tuần này

Bộ 4 đề thi cuối học kì 2 Tin 11 Kết nối tri thức có đáp án (Đề 3)

3.6 K lượt thi 31 câu hỏi

Nội dung liên quan:

Danh sách câu hỏi:

Lời giải

Phương pháp làm mịn dần, hay còn gọi là phương pháp giảm dần và chinh phục dần là một trong các cách tiếp cận tổng quát để giải quyết các bài toán cụ thể. Sơ đồ hình cây là một công cụ hữu ích để mô tả phương pháp này.

Sơ đồ hình cây là một biểu đồ hình cây đơn giản, thường được sử dụng để minh họa quá trình giải quyết bài toán bằng phương pháp làm mịn dần. Nó gồm các nút đại diện cho các bài toán con, và các nhánh đại diện cho các bước giải quyết bài toán con đó. Các nhánh này có thể tiếp tục được chia nhỏ cho đến khi không thể chia nhỏ hơn nữa (đạt được điều kiện dừng), sau đó các kết quả của các bài toán con được tổng hợp lại để đưa ra kết quả cuối cùng cho bài toán gốc.

Lời giải

Một ý tưởng khác để kiểm tra xem dãy n số có phải là một hoán vị của dãy số 1, 2, ..., n hay không là sử dụng tính chất đặc biệt của hoán vị. Ta biết rằng một hoán vị của dãy số từ 1 đến n sẽ có các giá trị từ 1 đến n đúng một lần, tức là không có giá trị lặp lại và không có giá trị bỏ sót. Với ý tưởng này, ta có thể thiết kế thuật toán như sau:

-Đọc dãy số vào mảng a gồm n phần tử.

-Kiểm tra độ dài của dãy a có bằng n không. Nếu không bằng n, in ra "KHÔNG" và kết thúc thuật toán.

-Khởi tạo một mảng visited gồm n phần tử, với giá trị ban đầu là False. Mảng visited này sẽ được sử dụng để đánh dấu các số đã xuất hiện trong dãy a.

-Duyệt qua từng phần tử trong dãy a, đồng thời đánh dấu số đó đã xuất hiện trong dãy a bằng cách đặt giá trị True tại vị trí tương ứng trong mảng visited.

-Kiểm tra mảng visited. Nếu một trong các phần tử của visited là False, tức là có giá trị bị bỏ sót trong dãy a, in ra "KHÔNG" và kết thúc thuật toán.

-Sau khi kiểm tra xong mảng visited, in ra "CÓ" nếu không có giá trị nào bị bỏ sót, ngược lại in ra "KHÔNG".

-Thuật toán:

function kiemTraHoanVi(a):

    n = len(a)

    visited = [False] * n

    # Kiểm tra độ dài của dãy a

    if n != len(set(a)):

        return "KHÔNG"

    # Duyệt qua từng phần tử trong dãy a

    for i in a:

        # Nếu số i đã xuất hiện trong dãy a

        if i < 1 or i > n or visited[i-1]:

            return "KHÔNG"

        visited[i-1] = True

    # Kiểm tra mảng visited

    if all(visited):

        return "CÓ"

    else:

        return "KHÔNG"

Lời giải

Nếu dãy A đã được sắp xếp theo thứ tự tăng dần thì có thể cải tiến thuật toán tốt hơn 
4.6

59 Đánh giá

50%

40%

0%

0%

0%