
Anonymous
0
0
Bài toán tìm tổng con lớn nhất. Giả sử một công ty du lịch đã thiết kế một chương trình du lịch cố định
- asked 4 months agoVotes
0Answers
0Views
Giải SBT Tin học 10 Kết nối tri thứcBài 31: Thực hành: Viết chương trình đơn giản
Câu 31.10 trang 65 SBT Tin học 10
Công ty muốn sắp sắp cho khách hàng An đi một phần của chương trình du lịch bằng cách đi theo một dãy con liên tục các địa điểm, ví dụ:
Mục đích của việc chọn chương trình cho khách hàng An là làm sao cho tổng giá trị:
Cho trước dãy các đánh giá n địa điểm của chương trình du lịch, hãy thiết kế một chương trình du lịch con cho khách hàng sao cho tổng (1) là lớn nhất.
Ví dụ nêu dãy các đánh giá là: 1, 7, -5, -9, 3, -1,10, -6, 5
thì chương trình du lịch con đi qua các địa điểm với đánh giá 3, -1, 10 có tổng lớn nhất tức là làm khách hàng hài lòng nhất.
Trả lời:
Hướng dẫn:
Khi đó bài toán đặt ra là cần tìm i, j sao cho giá trị S(i, j) lớn nhất. Từ đó suy ra lời giải đơn giản sau:
A = [1,7,-5,-9,3,-1,10,-6, 5]
n = len(A)
imax = 0
jmax = 0
Smax = A[0]
for i in range(n):
S = 0
for j in range(i,n):
S = S + A[j]
if S > Smax:
imax = i
jmax = j
Smax = S
print("Chương trình du lịch tối ưu là:")
print(imax, jmax)
for i in range(imax, jmax+1):
print (A[i], end = " ")
Xem thêm lời giải sách bài tập Tin học lớp 10 bộ sách Kết nối tri thức hay, chi tiết nhất:
Xem thêm lời giải sách bài tập Tin học lớp 10 bộ sách Kết nối tri thức hay, chi tiết nhất:
Bài 29: Nhận biết lỗi chương trình
Bài 30: Kiểm thử và gỡ lỗi chương trình
Bài 32: Ôn tập lập trình Python