이 배열은 지난 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
가중 평균:
어레이를 7 개의 4 개 그룹으로 나누고 새 어레이를 시작하십시오.
- 첫 번째 그룹을 배열에 추가하십시오.
- 두 번째 그룹을 배열에 두 번 추가하십시오.
- 배열 세 번째에 세 번째 그룹을 추가하십시오.
- 네 번째 그룹을 배열에 네 번 추가하십시오.
의 길이만큼 새로운 배열 모두 나눈 합계 새로운 배열.
위의 경우 :
배열을 다음과 같이 변환하십시오.
[
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
나의 가중 평균 내 정상 평균과 동일하므로, 매일 프레스 업.