Đây là một câu trả lời khác đưa ra bình luận về cách mà câu trả lời của Muis , Abdullah Al-Ageel và Flip đều giống nhau về mặt toán học ngoại trừ cách viết khác nhau.
Chắc chắn, chúng tôi có José Manuel Ramos phân tích của giải thích cách các lỗi làm tròn ảnh hưởng đến mỗi lỗi hơi khác nhau, nhưng điều đó phụ thuộc vào việc triển khai và sẽ thay đổi dựa trên cách mỗi câu trả lời được áp dụng cho mã.
Tuy nhiên, có một sự khác biệt khá lớn
Nó có trong Muis 's N
, Flip ' s k
và Abdullah Al-Ageel 's n
. Abdullah Al-Ageel không hoàn toàn giải thích những gì n
nên có, nhưng N
và k
khác biệt ở chỗ N
là " số lượng mẫu mà bạn muốn lấy trung bình " trong khi k
là số lượng các giá trị được lấy mẫu. (Mặc dù tôi có nghi ngờ về việc gọi N
số lượng mẫu có chính xác không.)
Và đây chúng ta cùng đến với câu trả lời dưới đây. Về cơ bản nó giống như đường trung bình động có trọng số theo cấp số nhân cũ như những đường khác, vì vậy nếu bạn đang tìm kiếm một giải pháp thay thế, hãy dừng lại ngay tại đây.
Đường trung bình động có trọng số theo cấp số nhân
Ban đầu:
average = 0
counter = 0
Đối với mỗi giá trị:
counter += 1
average = average + (value - average) / min(counter, FACTOR)
Sự khác biệt là min(counter, FACTOR)
một phần. Điều này cũng giống như nóimin(Flip's k, Muis's N)
.
FACTOR
là một hằng số ảnh hưởng đến tốc độ trung bình "bắt kịp" xu hướng mới nhất. Số lượng càng nhỏ càng nhanh. ( 1
Nó không còn là giá trị trung bình nữa và chỉ trở thành giá trị mới nhất.)
Câu trả lời này yêu cầu bộ đếm đang chạy counter
. Nếu có vấn đề, min(counter, FACTOR)
có thể được thay thế bằng chỉ FACTOR
, biến nó thành câu trả lời của Muis . Vấn đề khi thực hiện điều này là đường trung bình bị ảnh hưởng bởi bất cứ thứ gì average
được khởi tạo. Nếu nó được khởi tạo thành0
, số 0 đó có thể mất nhiều thời gian để vượt ra khỏi mức trung bình.
Nó kết thúc như thế nào