Phân vị độ trễ theo hạng gần nhất
Khi đánh giá chất lượng phục vụ mô hình, độ trễ trung bình che mất các request chậm. Kỹ
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, sorting.
Nội dung đề bài
Mô tả bài toán
Khi đánh giá chất lượng phục vụ mô hình, độ trễ trung bình che mất các request chậm. Kỹ sư vận hành theo dõi phân vị: p50 là mức mà một nửa request nhanh hơn, p95 cho thấy đuôi chậm. Với danh sách nhỏ, cách tính hạng gần nhất (nearest-rank) là đủ và dễ đối chiếu thủ công.
Yêu cầu
Viết hàm latency_percentile(values, percentile) trả về độ trễ tại phân vị yêu cầu theo phương pháp hạng gần nhất: sắp xếp tăng dần, hạng là ceil(percentile/100 * n) (kẹp trong [1, n]), rồi trả về phần tử ở hạng đó dưới dạng số thực.
Quy ước nộp bài
Nộp hàm latency_percentile trong solution.py. Hệ thống gọi hàm trực tiếp và so giá trị với sai số 1e-6; không đọc stdin và không in ra stdout.
Input
- values: danh sách độ trễ (số nguyên hoặc số thực), độ dài từ 0 tới 20.
- percentile: phân vị cần tính, số thực trong khoảng (0, 100].
Output
Một số thực là giá trị độ trễ tại phân vị đó.
Ràng buộc
- Danh sách rỗng thì ném ValueError.
- percentile ngoài khoảng (0, 100] thì ném ValueError.
- Dùng phương pháp hạng gần nhất, không nội suy.
Ví dụ 1
Input
latency_percentile(values=[10, 20, 30, 40, 50], percentile=50)
Output
30.0
Ví dụ 2
Input
latency_percentile(values=[10, 20, 30, 40, 50], percentile=95)
Output
50.0
Giải thích
Với values = [10, 20, 30, 40, 50] và percentile = 50, hạng là ceil(2.5) = 3 nên kết quả là 30.0.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
