สมมติว่าอาร์เรย์นี้มีจำนวนการกดอัพที่ฉันทำได้ในแต่ละวันในช่วง 28 วันที่ผ่านมา:
[
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
]
อย่างที่คุณเห็นมันเป็นแนวโน้มที่สูงชันในสัปดาห์ที่ผ่านมาและนั่นเป็นส่วนหนึ่งของข้อมูลนี้ที่ฉันสนใจมากที่สุดยิ่งในอดีตที่ผ่านมายิ่งฉันต้องการให้ข้อมูลนั้นมีค่าเฉลี่ยน้อยลง จำนวนกด
ด้วยเหตุนี้ฉันต้องการคำนวณ 'ค่าเฉลี่ย' ซึ่งแต่ละสัปดาห์มีค่ามากกว่าสัปดาห์ที่แล้ว
ข้อมูลความเป็นมาไม่ใช่ส่วนหนึ่งของปัญหานี้
ค่าเฉลี่ยปกติ:
ผลรวมของค่าทั้งหมด / จำนวนของค่า
สำหรับด้านบน:
1440/28 = 51.42857142857143
ค่าเฉลี่ยถ่วงน้ำหนัก:
แบ่งอาร์เรย์ออกเป็น 4 กลุ่มจาก 7 และเริ่มอาร์เรย์ใหม่
- เพิ่มกลุ่มแรกลงในอาร์เรย์
- เพิ่มกลุ่มที่สองในอาร์เรย์สองครั้ง
- เพิ่มกลุ่มที่สามลงในอาร์เรย์สามครั้ง
- เพิ่มกลุ่มที่สี่ลงในอาร์เรย์สี่ครั้ง
รวมอาเรย์ใหม่ทั้งหมดแล้วหารด้วยความยาวของอาเรย์ใหม่
สำหรับด้านบน:
แปลงอาเรย์เป็น:
[
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
]
จากนั้นเรียกใช้ค่าเฉลี่ยปกติของอาร์เรย์นั้น
4310/70 = 61.57142857142857
โปรดทราบว่าสูงกว่าค่าเฉลี่ยปกติเนื่องจากมีแนวโน้มสูงขึ้นในสัปดาห์ที่แล้ว
กฎระเบียบ:
- อินพุตเป็นอาร์เรย์แบบแบนของจำนวนเต็ม 28 ตัวที่ไม่ใช่ค่าลบ
- ภาษาใด ๆ ที่คุณต้องการเขียน
- เอาท์พุทตัวเลข
- ฉันชอบดูลิงค์ของTIOเสมอ
- ลองแก้ไขปัญหาด้วยจำนวนไบต์ที่น้อยที่สุด
- ผลลัพธ์ควรเป็นทศนิยมที่ถูกต้องถึงทศนิยมอย่างน้อย 4 ตำแหน่ง (อาจถูกปัดเศษหรือปัดเศษขึ้นจากค่ากรณีทดสอบเป็นค่าปรับ) หรือเศษส่วนที่แน่นอน
กรณีทดสอบ:
กรณีที่ 1: แนวโน้มสูงขึ้น
[
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
]
ค่าเฉลี่ยปกติ: 51.42857142857143 ค่าเฉลี่ยถ่วงน้ำหนัก: 61.57142857142857
กรณีที่ 2: ปล่อยให้กล่อมไว้ข้างหลัง
(ฉันมีสัปดาห์ที่เลวร้าย แต่เมื่อไม่นานมานี้)
[
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
]
ค่าเฉลี่ยปกติ: 40 ค่าเฉลี่ยถ่วงน้ำหนัก: 42
กรณีที่ 3: ยอมแพ้
ฉันมีสัปดาห์ที่ไม่ดีมันดึงค่าเฉลี่ยของฉันลงอย่างรวดเร็ว
[
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
]
ค่าเฉลี่ยปกติ: 40 ค่าเฉลี่ยถ่วงน้ำหนัก: 34
กรณีที่ 4: การหาค่าเฉลี่ย
โอเคดังนั้นฉันแค่เล่นที่นี่ฉันคิดว่ามันอาจจะมีค่าเท่ากันสำหรับค่าเฉลี่ยและถ่วงน้ำหนัก แต่แน่นอนมันไม่ได้
[
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
]
ค่าเฉลี่ยปกติ: 31.25 ค่าเฉลี่ยถ่วงน้ำหนัก: 24.0
ปัญหาโบนัส:
ชุดค่าผสม 28 ค่าใดที่จะมีค่าเฉลี่ยปกติและค่าเฉลี่ยถ่วงน้ำหนักเท่ากัน
มีความสุขในการเล่นกอล์ฟ!
new_avg = α*weekly_sum + (1-α)*old_avg
α∈(0,1)
0
กดอัพทุกวันดังนั้นค่าเฉลี่ยถ่วงน้ำหนักของฉันจึงเท่ากับค่าเฉลี่ยปกติของฉัน