randRangeNonZero(-8, 8) randFromArray([-1, 1]) * randRange(1, 4) randRange(1, 4) randRange(3, 5) randRange(-N - 1, 0) _.map(_.range(N), function(i) { if (i + OFFSET >= 0) { return reduce(A * pow(RN, i + OFFSET), pow(RD, i + OFFSET)); } else { return reduce(A * pow(RD, -i - OFFSET), pow(RN, -i - OFFSET)); } }) reduce(A * pow(RN, N + OFFSET), pow(RD, N + OFFSET)) fractionReduce(RN, RD) _.map(GIVEN, function(f) { return fractionReduce.apply(KhanUtil, f); })

Primii N termeni ai unei progresii geometrice sunt următorii:

GIVEN_TEX.join(","), \ldots

Care este cel de-al N + 1-lea termen al progresiei?

A * pow(RN / RD, N + OFFSET)

În orice secvenţă geometrică, un termen este egal termenul precedent lui înmulţit cu raţia.

Un exemplu ar fi că al doilea termen este egal cu primul termen înmulţit cu raţia. În acestă progresie, al doilea termen, GIVEN_TEX[1], este R_TEX înmulţit cu primul termen, GIVEN_TEX[0].

Rezultă ca raţia este R_TEX.

Cel de-al N + 1-lea termen al progresiei este egal cu termenul N înmulţit cu raţia, adică GIVEN_TEX[N - 1] \cdot R_TEX = fractionReduce(A * pow(RN, N + OFFSET), pow(RD, N + OFFSET)).