Câu hỏi:

20/04/2023 814

Thiết lập chương trình cho công việc thường làm vào cuối giờ bán hàng: Cho trước số K (một doanh số giả định), cần tìm ra mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất. Bài toán này có thể sử dụng thuật toán tìm kiếm nào để giải?

Quảng cáo

Trả lời:

verified
Giải bởi Vietjack

Chương trình sử dụng thuật toán tìm kiếm nhị phân để tìm mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất trong danh sách mặt hàng đã được sắp xếp theo thứ tự tăng dần của doanh số.

def find_nearest_item(arr, K):

    # Sắp xếp danh sách mặt hàng theo thứ tự tăng dần của doanh số

    arr.sort()

    low, high = 0, len(arr) - 1

    result = None

    while low <= high:

        mid = (low + high) // 2 # Tính giá trị trung bình mid của low và high

        if arr[mid] < K:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid nhỏ hơn K

            # Đặt low = mid + 1 để tìm phần tử lớn hơn K

            low = mid + 1

        elif arr[mid] > K:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid lớn hơn K

            # Đặt high = mid - 1 để tìm phần tử nhỏ hơn K

            high = mid – 1

else:

            # Nếu giá trị doanh số của mặt hàng ở vị trí mid bằng K

            # Trả về mid làm kết quả

            result = mid

            break

        # Cập nhật giá trị gần K nhất

        if result is None or abs(arr[mid] - K) < abs(arr[result] - K):

            result = mid

    return arr[result]

# Example usage

arr = [10, 20, 30, 40, 50, 60, 70, 80, 90]

K = 45

nearest_item = find_nearest_item(arr, K)

print("Mặt hàng có doanh số nhỏ hơn K nhưng gần với K nhất là:", nearest_item)

CÂU HỎI HOT CÙNG CHỦ ĐỀ

Lời giải

Chương trình trên được thiết kế có 3 mô đun

Lời giải

B1. Thiết kế chung

B2. Thiết kê công việc nhập dữ liệu

B3. Thiết kế công việc xử lí dữ liệu

B4. Thiết lập báo cáo, đưa ra dữ liệu

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Lời giải

Bạn cần đăng ký gói VIP ( giá chỉ từ 199K ) để làm bài, xem đáp án và lời giải chi tiết không giới hạn.

Nâng cấp VIP

Vietjack official store
Đăng ký gói thi VIP

VIP +1 - Luyện thi tất cả các đề có trên Website trong 1 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +3 - Luyện thi tất cả các đề có trên Website trong 3 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +6 - Luyện thi tất cả các đề có trên Website trong 6 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay

VIP +12 - Luyện thi tất cả các đề có trên Website trong 12 tháng

  • Hơn 100K đề thi thử, đề minh hoạ, chính thức các năm
  • Với 2tr+ câu hỏi theo các mức độ Nhận biết, Thông hiểu, Vận dụng
  • Tải xuống đề thi [DOCX] với đầy đủ đáp án
  • Xem bài giảng đính kèm củng cố thêm kiến thức
  • Bao gồm tất cả các bậc từ Tiểu học đến Đại học
  • Chặn hiển thị quảng cáo tăng khả năng tập trung ôn luyện

Mua ngay