Bài 12: Thực Hành Kĩ Thuật Duyệt Cho Bài Toán Tìm Kiếm | Chuyên đề học tập Tin học 11 (Định hướng khoa học máy tính) | Chuyên Đề 3: Thực Hành Thiết Kế Thuật Toán Theo Kĩ Thuật Duyệt - Lớp 11 - Kết Nối Tri Thức Với Cuộc Sống

Chuyên đề học tập Tin học 11 - Bài 12: Thực Hành Kĩ Thuật Duyệt Cho Bài Toán Tìm Kiếm - Áp dụng kĩ thuật duyệt giải quyết bài toán tìm bạn chung trên Facebook và gợi ý kết bạn.

Nội Dung Chính

  1. NHIỆM VỤ 1
  2. NHIỆM VỤ 2

(Trang 52)

Sau bài này em sẽ:

  • Biết và trình bày được kĩ thuật duyệt để giải quyết một vài bài toán tìm kiếm cụ thể.

hinh-anh-bai-12-thuc-hanh-ki-thuat-duyet-cho-bai-toan-tim-kiem-13828-0

Có lẽ em đã biết đến tính năng liệt kê danh sách bạn chung giữa những người dùng khác nhau để đề xuất kết bạn của Facebook. Nếu cần lập danh sách bạn chung của em và của một bạn khác trên Facebook thì em sẽ làm như thế nào?

hinh-anh-bai-12-thuc-hanh-ki-thuat-duyet-cho-bai-toan-tim-kiem-13828-1

NHIỆM VỤ 1

Cho tệp các tài khoản Facebook và danh sách bạn bè của tài khoản Facebook đó được lưu trong tệp. Mỗi dòng bao gồm tên tài khoản Facebook được ngăn cách với tên bạn bè bằng dấu hai chấm, tên bạn bè được ngăn cách nhau bởi dấu phẩy như sau:

ban_fb.inp

Nam: Sơn, Hương, Quang, Dũng, Tuấn, Tùng

Sơn: Mai, Danh, Quang, Dũng, Văn, Tùng

Hương: Phương, Hường, Hà, Dũng, Huyền, Tùng

Huyền: Ngọc, Hương, Quang, Lâm, Đức, Tùng

Hà: Trung, Hương, Phương, Dũng, Hải, Tùng

Hùng: Thành, Hương, Linh, Dũng, Tuấn, Nam

Viết chương trình đọc dữ liệu danh sách bạn bè từ tệp, sau đó cho phép người dùng nhập tên hai tài khoản Facebook từ bàn phím và in ra số bạn chung của hai tài khoản đó.

Hướng dẫn:

Phân tích: Ở bài toán này để tìm ra số bạn chung của hai tài khoản Facebook, chúng ta cần thực hiện hai bước sau:

Bước 1: Xác định danh sách bạn bè của hai tài khoản Facebook đó. Việc này được thực hiện bằng cách sử dụng thuật toán tìm kiếm để tìm ra số thứ tự của hai tài khoản trong danh sách tên Facebook, từ đó suy ra được danh sách bạn bè của hai tài khoản.

(Trang 53)

Bước 2: Sau khi đã xác định được danh sách bạn bè của hai tài khoản, chúng ta cần xác định số phần tử chung của hai danh sách đó. Việc này có thể thực hiện bằng cách duyệt từng phần tử trong một danh sách xem phần tử này có xuất hiện trong danh sách còn lại hay không? Nếu có xuất hiện, tăng số bạn chung lên một, nếu không xuất hiện, tiếp tục duyệt đến phần tử tiếp theo trong danh sách cho đến hết.

Bài toán tìm số bạn chung có thể được thực hiện như sau:

banchung.py

1    def banchung(A, B):        # tính số phần tử chung có trong 2 danh sách

2          kq = 0

3          for i in range(len(A)):

4                if A[i] in B:

5                    kq = kq + 1

6           return kq

7

8     input_file = open("ban_fb.inp", encoding = "utf-8")

9     ten_fb = []

10   ban_fb = []

11   for line in input_file.readlines():

12    ten, ban = line.split(":")

13    ten_fb.append(ten)

14    ban = ban.strip().split(",")

15    for i in range(len(ban)):

16          ban[i] = ban[i].strip()

17          ban_fb.append(ban)

18          input_string = input("Nhập tên 2 tài khoản Facebook cần kiểm tra:")

19          ten1,ten2 = input_string.split()

20    index1 = index2 = -1

21    for i in range(0,len(ten_fb)):              # tìm vị trí của tài khoản thứ

22    if ten1==ten_fb[i]:                 # nhất trong danh sách

          index1 = i

23    for i in range(0,len(ten_fb)):               # tìm vị trí của tài khoản thứ hai trong danh sách

24    if ten2==ten_fb[i]:       

25        index2 = i

26    if (index1==-1) or (index2==-1):

(Trang 53)

27        print("Không tồn tại tài khoản cần tìm trong danh sách")

28   else:

29       print("Số bạn chung của hai tài khoản Facebook là:",banchung(ban_fb[index1],ban_fb[index2])) 

NHIỆM VỤ 2

Cho trước tên các tài khoản Facebook và danh sách nhóm mà tài khoản đó tham gia, được lưu trong tệp. Mỗi dòng bao gồm tên tài khoản Facebook được ngăn cách với tên các nhóm bằng dấu hai chấm, tên các nhóm được ngăn cách nhau bởi dấu phẩy như sau:

group_fb.inp

Nam: học tập, phim ảnh, đá bóng, kpop, cpop, thời trang

Sơn: học tập, chụp ảnh, đá bóng, du lịch, cpop, game

Hương: thể dục, phim ảnh, tiếng Anh, kpop, thư giãn, thời trang

Huyền: học tập, tiếng Trung, cpop, thư giãn, du lịch

Hà: thể dục, game, tiếng Pháp, kpop, piano, trà sữa

Hùng: phượt, phim ảnh, tiếng Anh

Viết chương trình gợi ý kết bạn cho các tài khoản Facebook để gợi ý các bạn có cùng sở thích với tài khoản này. Hai tài khoản được coi là có chung sở thích nếu tham gia ít nhất 3 nhóm chung. In ra màn hình danh sách kết bạn đề xuất cho từng tài khoản.

Hướng dẫn:

Phân tích: Để thực hiện đề xuất kết bạn cho tất cả các tài khoản Facebook chúng ta cần duyệt toàn bộ các tài khoản Facebook, với mỗi tài khoản, kiểm tra sở nhóm chung với tất cả các tài khoản Facebook còn lại, nếu có trên 3 nhóm chung thì đưa vào danh sách đề xuất kết bạn.

Bài toán đề xuất kết bạn có thể được thực hiện như sau:

ketban.py

1   def nhomchung(A, B):                  # tính số phần tử chung có trong danh hai danh sách

2          kq = 0       

3          for i in range(len(A)):

4               if A[i] in B:

5                  kq = kq + 1

6           return kq

7   

8    input_file = open("group_fb.inp", encoding = "utf-8")

9    ten_fb = []

10  group_fb = []

11  for line in input_file.readlines():

12        ten, group = line.split(":")

13        ten_fb.append(ten)

14        group = group.strip().split(",")

15        for i in range(len (group)):

16             group[i] = group[i].strip()

17        group_fb.append (group)

18    print("Danh sách đề xuất kết bạn cho các tài khoản như sau:")

19    for i in range(len(ten_fb)):

20          dexuat = []

21         for j in range(len(ten_fb)):

22              if  i!=j:           # không đề xuất kết bạn với chính mình

23                  if  nhomchung(group_fb[i],group_fb[j]) >= 3:

24                         dexuat.append(ten_fb[j])

25        print("Đề xuất kết bạn cho", ten_fb[i],"là:",dexuat) 

hinh-anh-bai-12-thuc-hanh-ki-thuat-duyet-cho-bai-toan-tim-kiem-13828-2

LUYỆN TẬP

Sửa chương trình trong Nhiệm vụ 1 để in ra được danh sách bạn chung của hai tài khoản.

hinh-anh-bai-12-thuc-hanh-ki-thuat-duyet-cho-bai-toan-tim-kiem-13828-3

VẬN DỤNG

1. Trong bài toán đề xuất danh sách kết bạn, không tìm thấy đối tượng phù hợp cho hai bạn Hà, Hùng. Hãy viết chương trình tìm nhóm gợi ý cho một bạn bất kì (được nhập vào từ bàn phím). Nhóm được gợi ý là nhóm các bạn này chưa tham gia và đang có nhiều thành viên nhất.

2. Viết chương trình để tìm ra hai bạn có nhiều bạn chung nhất, hai bạn có nhiều nhóm chung nhất.

Tin tức mới


Đánh giá

Bài 12: Thực Hành Kĩ Thuật Duyệt Cho Bài Toán Tìm Kiếm | Chuyên đề học tập Tin học 11 (Định hướng khoa học máy tính) | Chuyên Đề 3: Thực Hành Thiết Kế Thuật Toán Theo Kĩ Thuật Duyệt - Lớp 11 - Kết Nối Tri Thức Với Cuộc Sống

Tổng số sao của bài viết là: 5 trong 1 đánh giá
Xếp hạng: 5 / 5 sao

Bình Luận

Để Lại Bình Luận Của Bạn

Tin tức mới

Môn Học Lớp 11 - Kết Nối Tri Thức Với Cuộc Sống

Chuyên đề học tập Mĩ thuật 11

Chuyên đề học tập Toán 11

Chuyên đề học tập Ngữ văn 11

Chuyên đề học tập Vật lí 11

Chuyên đề học tập Hóa học 11

Chuyên đề học tập Sinh học 11

Chuyên đề học tập Giáo dục Kinh tế và Pháp luật 11

Chuyên đề học tập Lịch Sử 11

Chuyên đề học tập Địa lí 11

Chuyên đề học tập Âm nhạc 11

Toán tập 1

Chuyên đề học tập Công nghệ 11 (Công nghệ Cơ khí)

Chuyên đề học tập Công nghệ 11 (Công nghệ chăn nuôi)

Chuyên đề học tập Tin học 11 (Định hướng tin học ứng dụng)

Chuyên đề học tập Tin học 11 (Định hướng khoa học máy tính)

Toán tập 2

Vật lí

Hoá Học

Sinh Học

Ngữ Văn Tập 1

Ngữ Văn Tập 2

Lịch sử

Địa Lý

Công Nghệ

Công Nghệ Công Nghệ Cơ Khí

Giáo Dục Quốc Phòng Và An Ninh 11

Giáo dục Kinh Tế và Pháp Luật

GDTC_Cầu Lông

Giáo dục Thể Chất Bóng Chuyền

GDTC Bóng Đá

Âm Nhạc

Hoạt động trải nghiệm hướng nghiệp

GDTC_Bóng Rổ

Mỹ Thuật Điêu Khắc

Mỹ Thuật Đồ Hoạ_Tranh in

Mỹ Thuật Hội Hoạ

Mỹ Thuật Kiến Trúc

Mỹ Thuật Thiết Kế Công Nghiệp

Tin Học

Mỹ Thuật Thiết Kế Đa Phương Tiện

Tin học 11 - Định hướng khoa học máy tính

Mỹ Thuật Thiết Kế Đồ Hoạ

Mỹ Thuật Thiết Kế Sân Khấu Điện Ảnh

Mỹ Thuật Thiết Kế Thời Trang

Mỹ Thuật_Lý Luận Và Lịch Sử Mỹ Thuật

Giải bài tập Toán 11 Tập 1

Giải bài tập Toán 11 Tập 2

Giải bài tập Vật lý 11

Giải bài tập Hóa học 11

Giải bài tập Sinh học 11

Bộ Sách Lớp 11

Giáo Dục Việt Nam

Bộ Sách Giáo Khoa của Nhà Xuất Bản Giáo Dục Việt Nam

Tài liệu học tập

Đây là tài liệu tham khảo hỗ trợ trong quá trình học tập

Global Success & Bộ Giáo Dục - Đào Tạo

Bộ sách Global Success & Bộ Giáo Dục - Đào Tạo là sự kết hợp giữa ngôn ngữ Tiếng Anh theo lối giảng dạy truyền thống và cập nhật những phương thức quốc tế

Cánh Diều

Bộ sách giáo khoa của Nhà xuất bản Cánh Diều

Kết Nối Tri Thức Với Cuộc Sống

Sách giáo khoa của nhà xuất bản Kết Nối Tri Thức Với Cuộc Sống

Sách Kết Nối Tri Thức Với Cuộc Sống

Lớp 1

Sách giáo khoa dành cho lớp 1

Lớp 6

Sách giáo khoa dành cho lớp 6

Lớp 5

Sách giáo khoa dành cho lớp 5

Lớp 4

Sách giáo khoa dành cho lớp 4

Lớp 2

Sách giáo khoa dành cho lớp 2

Lớp 3

Sách giáo khoa dành cho lớp 3

Lớp 7

Sách giáo khoa dành cho lớp 7

Lớp 8

Sách giáo khoa dành cho lớp 8

Lớp 9

Sách giáo khoa dành cho lớp 9

Lớp 10

Sách giáo khoa dành cho lớp 10

Lớp 11

Sách giáo khoa dành cho lớp 11

Lớp 12

Sách giáo khoa dành cho lớp 12

Liên Kết Chia Sẻ

** Đây là liên kết chia sẻ bới cộng đồng người dùng, chúng tôi không chịu trách nhiệm gì về nội dung của các thông tin này. Nếu có liên kết nào không phù hợp xin hãy báo cho admin.