The pairing eliminates the brute force summing of the series. This is
what Gauss found. In the case of only even numbers from 2 to n , this
works. In the case of 42 there are 21 even numbers of which 20 can be
paired off pairs 2+42,4+40 etc, each averaging 22 and there is an
unpaired number which is also 22 so we have 21*22. we could use
sum=: ]1+]
sum 21
462 But 'evensum ' below avoids the onerous task of dividing 42 by 2
before entry
evensum=: 1r4*]*2+]
evensum 42
462
evensum 10 100 1000 10000
30 2550 250500 25005000
If you want numbers >4 to 42 then -/evensum 42 4 does the trick
On 2017-08-30 9:27 PM, Xiao-Yong Jin wrote:
On Aug 30, 2017, at 10:43 PM, Don Kelly <[email protected]> wrote:
I agree with your opinion of what Skip wrote. looking back to Gauss and figuring
out the symmetry works for both odd and even cases (42 &43 for example. However
in his statement the numbers are 1...21 where the numbers are 2 to 42 all even
numbers- the result is still 21*22 . 42%2 is 21 which is odd so that there is 1
number that isn't paired and 20 pairs averaging 22 and the oddball is 1 number =22
Hence 22*21. The same result is for 1 to 43 as the odd numbers are ignored. If one
considers evens between 2 and 44, there are 22 pairs (no oddball) averaging 23- the
same rule works average =1+number of pairs. For summing odd numbers, add 1 to each
number, drop the odds and do the even sum- then subtract the total (21 in this case
to get 462-21=441.
I don't understand why you worry about pairing, but if j code makes it easier
to understand, here is a derivation I learned from my elementary school.
NB. for any evenly spaced sequence X: a, a+b, a+2*b, ... , a+(n-1)*b
X =. a+n*i.b
( +/ -: +/@|. ) X
( +/ -: -:@(+/ + +/@|.) ) X
( +/ -: -:@([:+/ +/@(,:|.)) ) X
( +/ -: -:@([:+/ ##{.+{:) ) X
( +/ -: -:@(#*{.+{:) ) X
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm