cuốn sách gpt4 ai đã làm

Hiệu suất - Thương mại điện tử: Thuật toán tính chiết khấu

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-03 02:16:10 27 4
mua khóa gpt4 Nike

Tôi cần lời khuyên của chuyên gia về một vấn đề khó khăn.

Kịch bản là:

  • trang web thương mại điện tử
  • nhiều sản phẩm
  • Có nhiều ưu đãi giảm giá cho sản phẩm này

Sản phẩm được xác định bởi một ProductID duy nhất và có giá bán. Cốt truyện rất cổ điển. Sản phẩm cũng có thể có một hoặc nhiều đợt giảm giá.

Giảm giá có thể có nhiều loại khác nhau. Ví dụ về giảm giá là:

  • Mua hai sản phẩm trở lên trong một bộ và được giảm giá X% cho mỗi sản phẩm

Một mục hàng chỉ có thể nhận được một khoản giảm giá, do đó, khi một mục hàng được giảm giá, mục hàng đó sẽ không còn đủ điều kiện để nhận các khoản giảm giá khác nữa.

Dữ liệu trường hợp thử nghiệm:

  • Sản phẩm 1:10 USD
  • Sản phẩm 2: $10
  • Sản phẩm 3: $50
  • Sản phẩm 4: 100 USD

Giảm giá-A:Mua 2 sản phẩm trở lên được giảm 20% cho bất kỳ sản phẩm nào sau đây

  • Sản phẩm-1
  • Sản phẩm 2
  • Sản phẩm 3
  • Sản phẩm 4

Giảm giá-B:Mua sản phẩm được giảm 50% cho các sản phẩm sau

  • Sản phẩm 3

Kịch bản thử nghiệm 1:

giỏ mua hàng:Chứa các chi tiết đơn hàng:

  • Sản phẩm-1
  • Sản phẩm 3
  • Sản phẩm 4

Phép tính số 1:

  • Giảm giá A: Sản phẩm 1, Sản phẩm 3, Sản phẩm 4 = $2 + $10 + $20 = $32
    • = Tổng số tiền tiết kiệm được là $32

Phép tính số 2:

  • Giảm giá A: Sản phẩm 2, Sản phẩm 4 = $2 + $20 = $22
  • Giảm giá B: Sản phẩm 3 = $25
    • = $22 + $25 = $47 Tổng số tiền tiết kiệm

这意味着 Giảm giá-AGiảm giá-B Sự kết hợp sẽ mang đến cho khách hàng mức chiết khấu tốt nhất có thể.

Kịch bản thử nghiệm 2:

giỏ mua hàng:Chứa các chi tiết đơn hàng:

  • Sản phẩm 3
  • Sản phẩm 4

Phép tính số 1:

  • Giảm giá A: Sản phẩm 3, Sản phẩm 4 = $10 + $20 = $30
    • = tổng số tiền tiết kiệm được là $30

Phép tính số 2:

  • Giảm giá B: Sản phẩm 3 = $25
    • = tổng số tiền tiết kiệm được là 25 USD

Điều này có nghĩa là áp dụngGiảm giá-A Khách hàng sẽ được hưởng mức chiết khấu tốt nhất có thể.


Để tính mức giảm giá tốt nhất cho một giỏ hàng nhất định, thực sự cần phải đánh giá tất cả các kết hợp sản phẩm và mức giảm giá hiện có cho các sản phẩm này.

Thông thường có 30-40 chi tiết đơn hàng trong giỏ hàng và mỗi chi tiết đơn hàng có 0-3 mức giảm giá.

Về cơ bản, tôi đang tìm kiếm một cách hiệu quả để thực hiện phép tính này.

Bây giờ thuật toán áp dụng giảm giá của tôi là thế này:

  • Giỏ hàng với mức giảm giá đáng kể
  • Nhận tất cả ProductID duy nhất của LineItems trong giỏ hàng
  • Nhận tất cả các khoản giảm giá có sẵn cho các ID sản phẩm này
  • Giảm giá cho mỗi lần (Chưa sắp xếp)
    • Nếu mục hàng được đánh dấu không giảm giá đáp ứng mức giảm giá, hãy áp dụng mức giảm giá
      • Đánh dấu các mục hàng giảm giá là đã giảm giá

Nhưng điều này đơn giản là không đủ vì nó không thử các kết hợp chi tiết đơn hàng/giảm giá khác nhau.

Tôi đã tìm kiếm một thuật toán tiêu chuẩn hóa có thể giải quyết loại vấn đề này nhưng cho đến nay vẫn chưa tìm thấy gì.

Hy vọng được nghe từ bạn :)

câu trả lời hay nhất

Giả định:

  1. Bạn có thể tính toán tất cả các khoản giảm giá có sẵn dựa trên giỏ hàng của bạn
  2. Mỗi sản phẩm chỉ được áp dụng một ưu đãi giảm giá
  3. Mỗi ưu đãi chỉ được sử dụng một lần

Vấn đề sau đó trở thành một câu hỏi được gọi là phân công câu hỏi, bạn có thể sử dụng Thuật toán Hungary Giải quyết tối ưu trong O(n^3).

Bạn cần tính ma trận M[a,b] chứa số tiền tiết kiệm được nếu áp dụng chiết khấu a cho sản phẩm b. (Nếu không áp dụng giảm giá, hãy đặt mức tiết kiệm thành 0.)

Thuật toán Hungary sẽ tính toán cách phân bổ chiết khấu cho những sản phẩm tiết kiệm chi phí nhất.

Nếu bạn không có cùng số lượng giảm giá và sản phẩm, hãy thêm giảm giá giả (không tiết kiệm) hoặc sản phẩm giả (không tiết kiệm nữa) cho đến khi số lượng giảm giá khớp với số lượng sản phẩm.

Về hiệu suất - thương mại điện tử: Thuật toán tính chiết khấu, chúng tôi tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/16605357/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress