Thiết kế thuật toán cho nhiệm vụ 1 với ý tưởng khác như sau: Dãy A là một hoán vị của dãy các số từ 1 đến n khi và chỉ khi dãy A có độ dài n và mọi số i từ 1 đến n đều nằm trong A.
Dựa vào hướng dẫn của Nhiệm vụ 1 trang 123, 124 SGK kết hợp kiến thức thực tế của bản thân để trả lời câu hỏi.
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”
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.
- 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).
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ớ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ậpCopyright © 2024 Giai BT SGK