Trang chủ Lớp 11 SGK Tin học 11 - Kết nối tri thức Chủ đề 6. Kĩ thuật lập trình Xác định độ phức tạp thời gian tính toán cho chương trình sau: n = 1000 sum = 0 i = 1 while i = n...

Xác định độ phức tạp thời gian tính toán cho chương trình sau: n = 1000 sum = 0 i = 1 while i = n...

Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi Hướng dẫn trả lời Câu hỏi 2 trang 84 Tin học 11 - Kết nối tri thức, Luyện tập 2 - trang 111 Bài 24. Đánh giá độ phức tạp thời gian thuật toán SGK Tin học 11 - Kết nối tri thức.

Xác định độ phức tạp thời gian tính toán cho chương trình sau:

n = 1000

sum = 0

i = 1

while i <n;

  i = i*2

  sum = sum + 1

print (sum)

Hướng dẫn giải :

Vận dụng kiến thức trong bài và kiến thức thực tế của bản thân để trả lời câu hỏi.

Lời giải chi tiết :

Chương trình trên tính số lần lặp cần thiết để i lớn hơn n bằng cách nhân i với 2 trong mỗi lần lặp, sau đó tăng biến sum lên 1. Để xác định độ phức tạp thời gian của chương trình này, ta cần xem xét số lần lặp của vòng while và các phép toán trong vòng lặp.

Vòng while: Vòng lặp này chạy cho đến khi i >= n, và giá trị ban đầu của i là 1. Trong mỗi lần lặp, i được nhân với 2, vậy số lần lặp là log2(n) (vì sau mỗi lần nhân i với 2, giá trị của i sẽ gấp đôi). Ví dụ, nếu n = 1000 thì số lần lặp là log2(1000) ≈ 10.

Các phép toán trong vòng lặp:

Phép gán i = i * 2: Đây là phép nhân, có độ phức tạp là O(1).

Phép gán sum = sum + 1: Đây là phép gán giá trị vào biến sum, có độ phức tạp là O(1).

Vậy tổng độ phức tạp thời gian của chương trình là O(log n), hay O(log2(1000)) ≈ O(10)

Dụng cụ học tập

Học Tin học cần sách giáo khoa, máy tính, vở ghi chép, bút mực và phần mềm học tập liên quan.

Chia sẻ

Chia sẻ qua Facebook Chia sẻ

Sách Giáo Khoa: Kết nối tri thức với cuộc sống

- Bộ sách Kết nối tri thức với cuộc sống được biên soạn cho tất cả học sinh phổ thông trên mọi miền của đất nước, giúp các em hình thành và phát triển những phẩm chất và năng lực cần có đối với người công dân Việt Nam trong thế kỉ XXI. Với thông điệp “Kết nối tri thức với cuộc sống”, bộ SGK này được biên soạn theo mô hình hiện đại, chú trọng vai trò của kiến thức, nhưng kiến thức cần được “kết nối với cuộc sống”, bảo đảm: 1) phù hợp với người học; 2) cập nhật những thành tựu khoa học hiện đại, phù hợp nền tảng văn hóa và thực tiễn Việt Nam; 3) giúp người học vận dụng để giải quyết những vấn đề của đời sống: đời sống cá nhân và xã hội, đời sống tinh thần (đạo đức, giá trị nhân văn) và vật chất (kĩ năng, nghề nghiệp).

Đọc sách

Có thể bạn chưa biêt?

Tin học là môn khoa học nghiên cứu về quá trình tự động hóa thông tin bằng máy tính. Đây là nền tảng của kỷ nguyên số, mở ra những cơ hội mới trong mọi lĩnh vực từ y học đến truyền thông, và đóng vai trò quan trọng trong phát triển kinh tế và xã hội.

Nguồn : Wikipedia - Bách khoa toàn thư

Lời chia sẻ Lớp 11

Lớp 11 - Năm học quan trọng, bắt đầu hướng đến những mục tiêu sau này. Hãy học tập chăm chỉ và tìm ra đam mê của mình để có những lựa chọn đúng đắn cho tương lai!'

- Học nhưng cũng chú ý sức khỏe nhé!. Chúc các bạn học tập tốt.

Nguồn : Sưu tập

Copyright © 2024 Loi Giai SGK