Hãy nói rằng mảng này là số lượng báo chí tôi đã đạt được mỗi ngày trong 28 ngày qua:
[
20,20,20,30,30,30,30,
35,35,40,40,40,45,45,
50,50,50,50,50,50,50,
60,70,80,90,100,110,120
]
Như bạn có thể thấy, nó đã có xu hướng tăng mạnh trong tuần trước và đó là một phần của dữ liệu này mà tôi quan tâm nhất. Càng xa, tôi càng muốn dữ liệu đó nổi bật ở mức trung bình của tôi 'số lượng báo chí.
Cuối cùng, tôi muốn tính ra một mức 'trung bình' trong đó mỗi tuần có giá trị hơn tuần trước.
Thông tin cơ bản, không phải là một phần của vấn đề này.
Bình thường
Tổng của tất cả các giá trị / số lượng giá trị
Đối với ở trên:
1440/28 = 51.42857142857143
Bình quân gia quyền:
Chia mảng thành 4 nhóm 7 và bắt đầu một mảng mới.
- Thêm nhóm đầu tiên vào mảng.
- Thêm nhóm thứ hai vào mảng hai lần.
- Thêm nhóm thứ ba vào ba lần mảng.
- Thêm nhóm thứ tư vào mảng bốn lần.
Tính tổng tất cả các mảng mới và chia cho chiều dài của mảng mới .
Đối với ở trên:
Chuyển đổi mảng thành này:
[
20,20,20,30,30,30,30, # first week once
35,35,40,40,40,45,45,
35,35,40,40,40,45,45, # second week twice
50,50,50,50,50,50,50,
50,50,50,50,50,50,50,
50,50,50,50,50,50,50, # third week thrice
60,70,80,90,100,110,120,
60,70,80,90,100,110,120,
60,70,80,90,100,110,120,
60,70,80,90,100,110,120 # Fourth week four times
]
Sau đó chạy trung bình bình thường trên mảng đó.
4310/70 = 61.57142857142857
Lưu ý rằng nó cao hơn giá trị trung bình bình thường do xu hướng tăng trong tuần trước.
Các quy tắc:
- Đầu vào là một mảng phẳng gồm 28 số nguyên không âm.
- Bất kỳ ngôn ngữ nào bạn muốn viết.
- Xuất một số.
- Tôi luôn muốn thấy các liên kết TIO .
- Cố gắng giải quyết vấn đề với số byte nhỏ nhất.
- Kết quả phải là một số thập phân chính xác đến ít nhất 4 vị trí thập phân (được cắt bớt hoặc làm tròn từ các giá trị trường hợp kiểm tra là tốt) hoặc một phân số chính xác.
Các trường hợp thử nghiệm:
Trường hợp 1: Xu hướng tăng
[
20,20,20,30,30,30,30,
35,35,40,40,40,45,45,
50,50,50,50,50,50,50,
60,70,80,90,100,110,120
]
Trung bình bình thường: 51.42857142857143 Trung bình có trọng số: 61.57142857142857
Trường hợp 2: Để lại sự chậm trễ
(Tôi đã có một tuần tồi tệ, nhưng đó là một thời gian trước đây)
[
50,50,50,50,50,50,50,
10,10,10,10,10,10,10,
50,50,50,50,50,50,50,
50,50,50,50,50,50,50
]
Trung bình bình thường: 40 Trung bình có trọng số: 42
Trường hợp 3: Từ bỏ
Tôi đã có một tuần tồi tệ, nó kéo trung bình của tôi xuống nhanh chóng.
[
50,50,50,50,50,50,50,
50,50,50,50,50,50,50,
50,50,50,50,50,50,50,
10,10,10,10,10,10,10
]
Trung bình bình thường: 40 Trung bình có trọng số: 34
Trường hợp 4: Tính trung bình
Được rồi, vì vậy tôi chỉ chơi xung quanh đây, tôi nghĩ rằng nó có thể là cùng một giá trị cho mức trung bình bình thường và có trọng số, nhưng, tất nhiên, nó không phải là.
[
60,60,60,60,60,60,60,
30,30,30,30,30,30,30,
20,20,20,20,20,20,20,
15,15,15,15,15,15,15
]
Trung bình bình thường: 31,25 Trung bình có trọng số: 24,0
Vấn đề tiền thưởng:
Sự kết hợp nào của 28 giá trị sẽ có cùng mức trung bình bình thường và trung bình có trọng số?
Chúc bạn chơi golf vui vẻ!
new_avg = α*weekly_sum + (1-α)*old_avg
đối với một số ngườiα∈(0,1)
0
báo chí mỗi ngày, vì vậy trung bình có trọng số của tôi giống như trung bình bình thường của tôi.