1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo buổi thực hành số 3 bộ môn kỹ thuật lập trình

43 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Một dãy con của là dãy thu được bằnganacách xóa đi một số phần tử của và giữ nguyên thứ tự các phần atử còn lại có thể không xóa phần tử nào.. Bài 3.6_TuanNT_0906Bài tập 7: Liệt kê xâu n

Trang 1

BÁO CÁO BUỔI THỰC HÀNH SỐ 3Bộ Môn Kỹ Thuật Lập Trình

Trang 2

Danh mục hình ảnh 2

Bài thực hành số 3 – Tuần 14 4

Phần 1 Thực hành về đệ quy 4

1.1 Đệ quy - quay lui 4

Bài tập 1: Tính dãy Lucas 4

Bài tập 2: Quân mã đi tuần 4

Bài tập 6: Tìm ước chung lớn nhất 15

Bài tập 7: Liệt kê xâu nhị phân 16

Bài tập 8: Cân đĩa 20

Figure 2 Bài 3.2_TuanNT_0906 5

Figure 3 Bài 3.2_TuanNT_0906 6

Figure 4 Bài 3.2_TuanNT_0906 6

Figure 5 Bài 3.2_TuanNT_0906 7

Figure 6 Bài 3.3_TuanNT_0906 8

Figure 7 Bài 3.3_TuanNT_0906 9

Figure 8 Bài 3.3_TuanNT_0906 9

Figure 9 Bài 3.4_TuanNT_0906 11

Figure 10 Bài 3.4_TuanNT_0906 11

Figure 11 Bài 3.4_TuanNT_0906 12

Figure 12 Bài 3.5_TuanNT_0906 122

Trang 3

Figure 13 Bài 3.5_TuanNT_0906 13

Figure 14 Bài 3.5_TuanNT_0906 14

Figure 15 Bài 3.5_TuanNT_0906 15

Figure 16 Bài 3.6_TuanNT_0906 16

Figure 17 Bài 3.6_TuanNT_0906 16

Figure 18 Bài 3.7_TuanNT_0906 18

Figure 19 Bài 3.7_TuanNT_0906 18

Figure 20 Bài 3.7_TuanNT_0906 19

Figure 21 Bài 3.7_TuanNT_0906 20

Figure 22 Bài 3.8_TuanNT_0906 21

Figure 23 Bài 3.8_TuanNT_0906 22

Figure 24 Bài 3.9_TuanNT_0906 24

Figure 25 Bài 3.9_TuanNT_0906 25

Figure 26 Bài 3.9_TuanNT_0906 - Test1 26

Figure 27 Bài 3.9_TuanNT_0906 - Test2 26

Figure 28 Bài 3.9_TuanNT_0906 - Test3 27

Figure 29 Bài 3.10_TuanNT_0906 28

Figure 30 Bài 3.10_TuanNT_0906 29

Figure 31 Bài 3.10_TuanNT_0906 - Test1 30

Figure 32 Bài 3.11_TuanNT_0906 - Test1 32

Figure 33 Bài 3.11_TuanNT_0906 33

Figure 34 Bài 3.11_TuanNT_0906 34

Figure 35 Bài 3.11_TuanNT_0906 - Test1 35

Figure 36 Bài 3.11_TuanNT_0906 - Test2 36

Figure 37 Bài 3.12_TuanNT_0906 38

Figure 38 Bài 3.12_TuanNT_0906 39

Figure 39 Bài 3.12_TuanNT_0906 - Test1 40

Figure 40 Bài 3.12_TuanNT_0906 - Test2 41

Figure 41 Bài 3.12_TuanNT_0906 - Test3 42

Figure 42 Bài 3.12_TuanNT_0906 - Test4 42

Figure 43 Bài 3.12_TuanNT_0906 - Test5 43

Figure 44 Bài 3.12_TuanNT_0906 - Test6 44

Figure 45 Bài 3.12_TuanNT_0906 - Test7 44

Figure 46 Bài 3.12_TuanNT_0906 - Test8 45

Trang 4

Bài thực hành số 3 – Tuần 14

Phần 1 Thực hành về đệ quy1.1 Đệ quy - quay lui

Bài tập 1: Tính dãy Lucas

Dãy Lucas được định nghĩa bởi Ln=Ln−1+Ln−2 và bắt đầu bởi L0=2 L1=1, Viết hàm tính số Lucas thứ n

Figure 1 Bài 3.1_TuanNT_0906

Bài tập 2: Quân mã đi tuần

Trên bàn cờ vua kích thước n×n có một quân mã đang ở ô (1, 1) Hãy đưa ra một dãy các di chuyển của mã sao cho mỗi ô trên bàncờ đều được đi qua đúng 1 lần (ô (1, 1) được xem là đã đi qua)

4

Trang 5

Figure 2 Bài 3.2_TuanNT_0906

Trang 6

Figure 4 Bài 3.2_TuanNT_0906

6

Trang 7

Figure 5 Bài 3.2_TuanNT_0906

1.2 Kỹ thuật nhánh cận

Bài tập 3: Bài toán người du lịch

Một người xuất phát tại thành phố 1, muốn đi thăm tất cả các thành phố khác, mỗi thành phố đúng 1 lần và quay về 1 Chi phí để đi từ thành phố sang thành phố là ij ci,j Hãy tìm tổng chi phí nhỏ nhất có thể

Dữ liệu vào:

Dòng 1: Chứa số nguyên (n 1≤n≤16)

n dòng tiếp theo: Chứa ma trận c (0≤ci,j≤1000000)

Trang 8

Dữ liệu mẫu: 40 2 1 34 0 1 22 1 0 33 4 2 0Kết quả mẫu:7

Figure 6 Bài 3.3_TuanNT_0906

8

Trang 9

Figure 7 Bài 3.3_TuanNT_0906

Trang 10

1.3 Đệ quy có nhớBài tập 4: LIS

Cho dãy có phần tử Một dãy con của là dãy thu được bằnganacách xóa đi một số phần tử của và giữ nguyên thứ tự các phần atử còn lại (có thể không xóa phần tử nào) Hãy tìm dãy con tăng dài nhất của a

Dữ liệu vào:

Dòng 1: Chứa số nguyên (n 1≤n≤1000)

Dòng 2: Chứa số nguyên na1 a2 … an |ai|≤ … ( 109)Kết quả:

Dòng đầu tiên chứa độ dài dãy con tăng dài nhất

Dòng thứ 2 chứa chỉ số các phần tử được chọn vào dãy con đóNếu có nhiều dãy con tăng dài nhất, in ra dãy bất kỳ trong số đóVí dụ:

Dữ liệu mẫu:6

2 1 5 4 3 6Kết quả mẫu:3

2 5 6Hướng dẫn:

Bài toán này được giải bằng phương pháp quy hoạch động.Giả sử lis(i) là độ dài dãy con tăng dài nhất kết thúc tại Khi đóaita có công thức truy hồi sau:

10

Trang 11

Figure 9 Bài 3.4_TuanNT_0906

Figure 10 Bài 3.4_TuanNT_0906

Trang 12

Figure 11 Bài 3.4_TuanNT_0906

Trang 13

Figure 15 Bài 3.5_TuanNT_0906

Bài tập 6: Tìm ước chung lớn nhấtTính ước chung lớn nhất của hai số cho trước

Trang 14

Figure 16 Bài 3.6_TuanNT_0906

Figure 17 Bài 3.6_TuanNT_0906

Bài tập 7: Liệt kê xâu nhị phân

Sử dụng phương pháp khử đệ quy bằng stack, hãy liệt kê các xâu nhị phân độ dài không có bit 1 nào liên tiếpnk

Dữ liệu vào:

16

Trang 15

Một dòng duy nhất chứa hai số nguyên n (n k 1≤k≤n≤20)Kết quả:

Với mỗi xâu tìm được, in ra ký tự trên một dòng, các ký tự cáchnnhau bởi dấu cách Các xâu cần được liệt kê theo thứ tự từ điểnVí dụ:

Dữ liệu mẫu:4 2

Kết quả mẫu:0 0 0 00 0 0 10 0 1 00 1 0 00 1 0 11 0 0 01 0 0 11 0 1 0

Trang 16

Figure 18 Bài 3.7_TuanNT_0906

Figure 19 Bài 3.7_TuanNT_0906

18

Trang 17

Figure 20 Bài 3.7_TuanNT_0906

Trang 18

Figure 21 Bài 3.7_TuanNT_0906Bài tập 8: Cân đĩa

Bạn đang muốn kiểm tra xem một vật cho trước có đúng nặng Mnhư người ta nói hay không Có một cân thăng bằng và quả ncân Quả thứ nặng imi Hãy chỉ ra một cách cân thỏa mãn Quy cách in ra đã được tích hợp trong mã nguồn dưới.

Dữ liệu mẫu:6 107 1 2 3 4 5Kết quả mẫu:-1+2+3+4+5=10

20

Trang 19

Figure 22 Bài 3.8_TuanNT_0906

Trang 20

Figure 23 Bài 3.8_TuanNT_0906

Phần 3 Bài tập về nhàSinh viên tự làm các bài tập sau:Bài tập 9: Lập lịch cho y tá

Một y tá cần lập lịch làm việc trong ngày, mỗi ngày chỉ có thể làNlàm việc hay nghỉ ngơi Một lịch làm việc là tốt nếu không có hai ngày nghỉ nào liên tiếp và mọi chuỗi ngày tối đại làm việc liên tiếp đều có số ngày thuộc đoạn [K1,K2] Hãy liệt kê tất cả các cách lập lịch tốt, với mỗi lịch in ra trên một dòng một xâu nhị phân độ dài với bit 0/1 tương ứng là nghỉ/làm việc Các xâu phải được innra theo thứ tự từ điển

Dữ liệu vào:

Ghi 3 số nguyên N,K1,K2 N≤200,K1<K2≤70 ()Kết quả:

22

Trang 21

Ghi danh sách các lịch tìm được theo thứ tự từ điểnVí dụ:

Dữ liệu mẫu:6 2 3Kết quả mẫu:011011110110110111111011

Trang 22

Figure 24 Bài 3.9_TuanNT_0906

24

Trang 23

Figure 25 Bài 3.9_TuanNT_0906

Trang 24

Figure 26 Bài 3.9_TuanNT_0906 - Test1

Figure 27 Bài 3.9_TuanNT_0906 - Test2

26

Trang 25

Figure 28 Bài 3.9_TuanNT_0906 - Test3

Bài tập 10: Khoảng cách Hamming

Khoảng cách Hamming giữa hai xâu cùng độ dài là số vị trí mà kýtự tại vị trí đó là khác nhau trên hai xâu Cho là xâu gồm ký tựSn0 Hãy liệt kê tất cả các xâu nhị phân độ dài , có khoảng cách nHamming với bằng Các xâu phải được liệt kê theo thứ tự từ SHđiển

Dữ liệu vào:

Dòng đầu chứa là số testcaseT

T dòng tiếp theo, mỗi dòng mô tả một testcase, ghi và (NH 1≤H≤N≤16)

Kết quả:

Trang 26

24 21 0

Kết quả mẫu:0011010101101001101011000

Figure 29 Bài 3.10_TuanNT_0906

28

Trang 27

Figure 30 Bài 3.10_TuanNT_0906

Trang 28

Figure 31 Bài 3.10_TuanNT_0906 - Test1

Bài tập 11: Lịch trình chụp ảnh

Superior là một hòn đảo tuyệt đẹp với địa điểm chụp ảnh và ncác đường một chiều nối các điểm chụp ảnh với nhau Đoàn khách tham quan có người với sở thích chụp ảnh khác nhau r

30

Trang 29

Theo đó, mỗi người sẽ đưa ra danh sách các địa điểm mà họ muốn chụp Bạn cần giúp mỗi người trong đoàn lập lịch di chuyểnsao cho đi qua các điểm họ yêu cầu đúng một lần, không đi qua điểm nào khác, bắt đầu tại điểm đầu tiên và kết thúc tại điểm cuốicùng trong danh sách mà họ đưa ra, và có tổng khoảng cách đi lại là nhỏ nhất.

Dữ liệu vào:

Dòng đầu chứa và nr

Tiếp theo là ma trận n×n mô tả chi phí đi lại giữa các địa điểm Chi phí bằng 0 có nghĩa là không thể đi lại giữa hai địa điểm đó.r dòng tiếp theo chứa danh sách các địa điểm mà người đưa ra.rLưu ý là hành mỗi hành trình cần phải bắt đầu và kết thúc bởi hai đỉnh đầu và cuối của danh sách, còn các địa điểm còn lại có thể thăm theo bất kỳ thứ tự nào

Kết quả:

Gồm dòng ghi chi phí đi lại ít nhất của người theo thứ tự đầu rrvào

Ví dụ:Dữ liệu mẫu:6 3

0 1 2 0 1 11 0 1 1 1 00 2 0 1 3 0

Trang 30

Kết quả mẫu:5

Figure 32 Bài 3.11_TuanNT_0906 - Test1

32

Trang 31

Figure 33 Bài 3.11_TuanNT_0906

Trang 32

Figure 34 Bài 3.11_TuanNT_0906

34

Trang 33

Figure 35 Bài 3.11_TuanNT_0906 - Test1

Trang 34

Figure 36 Bài 3.11_TuanNT_0906 - Test2Bài tập 12: Đếm đường đi

Cho đồ thị vô hướng , hãy đếm số đường đi đi qua cạnh và Gkkhông đi qua đỉnh nào quá một lần.

Dữ liệu vào:

Dòng 1: Chứa hai số nguyên n và k (nk 1≤n≤30 1≤k≤10, ) với n là số đỉnh của Các đỉnh sẽ được đánh số từ 1 đến GnDòng 2: Chứa số nguyên (m 1≤m≤60) là số cạnh của G

36

Trang 35

mm dòng tiếp theo: Mỗi dòng chưa hai số nguyên là một cạnh của G

Kết quả:

Số lượng đường đi đơn độ dài kVí dụ:

Dữ liệu mẫu:4 3

51 21 31 42 33 4

Kết quả mẫu:6

Trang 36

Figure 37 Bài 3.12_TuanNT_0906

38

Trang 37

Figure 38 Bài 3.12_TuanNT_0906

Trang 38

Figure 39 Bài 3.12_TuanNT_0906 - Test1

40

Trang 39

Figure 40 Bài 3.12_TuanNT_0906 - Test2

Trang 40

Figure 41 Bài 3.12_TuanNT_0906 - Test3

Figure 42 Bài 3.12_TuanNT_0906 - Test4

42

Trang 41

Figure 43 Bài 3.12_TuanNT_0906 - Test5

Trang 42

Figure 44 Bài 3.12_TuanNT_0906 - Test6

Figure 45 Bài 3.12_TuanNT_0906 - Test7

44

Trang 43

Figure 46 Bài 3.12_TuanNT_0906 - Test8

Ngày đăng: 11/06/2024, 17:52

Xem thêm:

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w