หากเรามีรายการพูดรายการ[9, 2, 4, 4, 5, 5, 7]
เราสามารถทำค่าเฉลี่ยเคลื่อนที่ได้
การพูดของหน้าต่าง 3 องค์ประกอบแต่ละส่วนจะถูกแทนที่ด้วยหน้าต่างเหมือนเช่น: และแล้วนำค่าเฉลี่ยที่เราได้รับ[[9], [9, 2], [9, 2, 4], [2, 4, 4], [4, 4, 5], [4, 5, 5], [5, 5, 7]]
[9.0, 5.5, 5.0, 3.3333333333333335, 4.333333333333333, 4.666666666666667, 5.666666666666667]
ค่อนข้างเรียบง่ายจนถึงตอนนี้ แต่สิ่งหนึ่งที่คุณสามารถสังเกตเห็นเกี่ยวกับเรื่องนี้คือการจดค่าเฉลี่ยเคลื่อนที่ "ทำให้เรียบ" รายการ ดังนั้นนี่จึงเป็นคำถาม: มีกี่ครั้งที่ต้องใช้ค่าเฉลี่ยเคลื่อนที่เพื่อทำให้รายการ "ราบรื่นเพียงพอ"?
งานของคุณ
เมื่อระบุรายการของขนาดลอยตัวขนาดหน้าต่างจำนวนเต็มและทศนิยมส่งออกจำนวนครั้งที่หนึ่งต้องใช้ค่าเฉลี่ยเคลื่อนที่เพื่อให้ได้ค่าเบี่ยงเบนมาตรฐานน้อยกว่าค่าลอยนั้น สำหรับส่วนที่ไม่ทราบค่าเบี่ยงเบนมาตรฐานจะวัดว่าชุดข้อมูลเป็นอย่างไรและสามารถคำนวณได้โดยสูตรต่อไปนี้:
ตัวอย่างเช่นเมื่อใช้รายการก่อนหน้าและสูงสุดของ.5
เราเราจะได้รับ8
การทำซ้ำที่มีลักษณะเช่นนี้:
[9.0, 5.5, 5.0, 3.3333333333333335, 4.333333333333333, 4.666666666666667, 5.666666666666667]
[9.0, 7.25, 6.5, 4.6111111111111116, 4.2222222222222223, 4.1111111111111107, 4.8888888888888893]
[9.0, 8.125, 7.583333333333333, 6.1203703703703702, 5.1111111111111107, 4.3148148148148149, 4.4074074074074074]
[9.0, 8.5625, 8.2361111111111107, 7.2762345679012341, 6.2716049382716044, 5.1820987654320989, 4.6111111111111107]
[9.0, 8.78125, 8.5995370370370363, 8.024948559670781, 7.2613168724279831, 6.2433127572016458, 5.3549382716049374]
[9.0, 8.890625, 8.7935956790123466, 8.4685785322359397, 7.9619341563786001, 7.1765260631001366, 6.2865226337448554]
[9.0, 8.9453125, 8.8947402263374489, 8.7175997370827627, 8.4080361225422955, 7.8690129172382264, 7.141660951074531]
[9.0, 8.97265625, 8.9466842421124824, 8.8525508211400705, 8.6734586953208357, 8.3315495922877609, 7.8062366636183507]
0.40872556490459366
และจบด้วยส่วนเบี่ยงเบนมาตรฐานของ 8
คุณเพียงแค่เอาท์พุท
แต่มีการจับ:
คำตอบนั้นไม่จำเป็นต้องเป็นค่าลบ! หากรายการเริ่มต้นตรงตาม stddev สูงสุดแล้วคุณต้องดูว่าคุณสามารถ "วนไปข้างหลังซ้ำ" ซ้ำและยกเลิกค่าเฉลี่ยเคลื่อนที่และยังมีรายการที่ตรงกับ stddev สูงสุด เนื่องจากเรากำลังตัดทอนหน้าต่างสำหรับn
จุดข้อมูลเริ่มต้นและไม่ปล่อยหน้าต่างเหล่านั้นจึงมีข้อมูลเพียงพอที่จะย้อนกลับค่าเฉลี่ยเคลื่อนที่
ตัวอย่างเช่นถ้าเราเริ่มต้นด้วยรายการ[9.0, 8.99658203125, 8.9932148677634256, 8.9802599114806494, 8.9515728374598496, 8.8857883675880771, 8.7558358356689627]
(นำมาจากตัวอย่างก่อนหน้าของเราโดยมีค่าเฉลี่ยเคลื่อนที่เพิ่มขึ้นอีก 3 รายการ) และขนาดหน้าต่างเดียวกันและ max stddev คุณจะได้ผลลัพธ์-3
เนื่องจากคุณสามารถย้อนกลับค่าเฉลี่ยเคลื่อนที่ได้เกือบทุก3
ครั้ง
รูปแบบ I / O ที่สมเหตุสมผลนั้นใช้ได้
นี่คือโค้ดกอล์ฟที่สั้นที่สุดในหน่วยไบต์ !
กรณีทดสอบ
[9, 2, 4, 4, 5, 5, 7], 3, .5 -> 8
[9, 2, 4, 4, 5, 5, 7], 3, .25 -> 9
[9.0, 8.99658203125, 8.9932148677634256, 8.9802599114806494, 8.9515728374598496, 8.8857883675880771, 8.7558358356689627], 3, .5 -> -3
[1000, 2, 4, 4, 5, 5, 7], 7, .25 -> 13
[1000.0, 999.98477172851563, 999.96956668760447, 999.95438464397, 999.90890377378616, 999.83353739825293, 999.69923168916694], 4, 7 -> -6