벡터의 누적 합계는 단순히 이전의 모든 요소의 합계를 취하여 계산됩니다. 예를 들어 :
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 3 2 1 0 -1 -2 -1 0 1 2 1]
이제 상한과 하한을 적용하면 누적 합계가 상한에 도달하면 증가하지 않고 누적 합계가 하한에 있으면 감소하지 않습니다. 간단한 예 :
upper_lim = 2
lower_lim = -1
vec = [1 1 1 -1 -1 -1 -1 -1 1 1 1 1 -1]
cum_vec = [1 2 2 1 0 -1 -1 -1 0 1 2 2 1]
입력 벡터는 반드시 전용 정수로 구성 1
하고 -1
, 긍정과 부정 모두. 그것을 가정하십시오 upper_lim >= lower_lim
. 벡터의 첫 번째 요소가 경계를 벗어나면 경계로 바로 이동합니다 (마지막 예 참조).
정수 벡터를 입력으로 사용하는 함수와 상한과 하한을 나타내는 두 개의 정수를 작성하십시오. 위에서 정의한대로 경계 누적 벡터를 출력합니다. 입력은 함수 인수 또는 STDIN에서 제공 될 수 있습니다.
표준 코드 골프 규칙이 적용됩니다.
예 :
upper_lim = 6
lower_lim = -2
vec = [1 4 3 -10 3 2 2 5 -4]
cum_vec = [1 5 6 -2 1 3 5 6 2]
upper_lim = 100
lower_lim = -100
vec = [1 1 1 1 1 1]
cum_vec = [1 2 3 4 5 6]
upper_lim = 5
lower_lim = 0
vec = [10 -4 -3 2]
cum_vec = [5 1 0 2]
upper_lim = 0
lower_lim = 0
vec = [3 5 -2 1]
cum_vec = [0 0 0 0]
upper_lim = 10
lower_lim = 5
vec = [1 4 6]
cum_vec = [5 9 10]
|
Note, jumped to 5, because 5 is the lower bound.