COMBINATIONS 1Dec94 dp-j 3PM
The weighing scale problem posed by Graham Gallagher in Issue 38 prompted some
thoughts on the subject of combinations. So for those amongst us with an
interest in things mathematical, here goes, but first I must apologise for the
lack of scientific notation fonts. This makes presentation of even simple
algebra somewhat clumsy so if anyone has a ROM/ROM image which eases the
communication problem please tell us about it. However I do get back to the
weights problem after exploring the logic behind the magic 40 lb. But wait....
there is another fiendish aspect to this devilish escapade dear Watson.
Consider n unlike terms having +ve or -ve values. (I will use +-a,+-b,+-c,+-d
as an example. ie. having n=4, throughout this discourse.)
If we now take all these n terms and write them down n at a time with all
possible combinations of sign we will get a total of 2^n combinations. (In the
example there are 2^4=16 combinations such as a+b+c+d, -a+b-c+d, etc etc)
Suppose we now take any r terms of a set of n terms. The number of
combinations,nCr, of n terms taken r at a time is given by :-
nCr = n!/(r!*(n-r)!) where n! means factorial n
(If n=4 and r=3 then nCr is 4*3*2/(3*2)*(1)=4. viz. a,b,c a,b,d a,c,d & b,c,d.)
Now if each of the terms of these combinations can be +ve or -ve we can see
from the foregoing that there will be :-
(n!/(r!*(n-r)!)) * 2^r combinations in total.
ie. there are 4*2^3=24 combinations of any group of 3 selected from the 4 +ve
or-ve terms. We could similarly find the number of combinations taken 2 at a
time and 1 at a time and arrive at an overall total for all the possible
combinations, nCr=1_n, where nCr=1_n is shorthand for 'the no. of combinations
of n terms taken r at a time for all values of r from 1 to n.'
If we take this last equation and perform the summation from r=1 to r=n then
a little manipulation of the factorials yields:-
nCr=1_n = 2*n + n(n-1)*2^n/2! + n(n-1)(n-2)*2^3/3! +......
(Sorry for the mix of algebraic and BBC notation if one *ts to see *s.)
For the example, n=4, this gives:-
nCr=1_n = 2*4 + 4*3*4/2 + 4*3*2*8/(3*2) + 4*3*2*16/(4*3*2) + ...
= 8 + 24 + 32 + 16 = 80
I hesitate to refer to the above as an 'equation' because although it looks
like a straight forward series, which it is, when substituting a value for n,
only the first n terms of the series are valid and the rest ignored. So in the
case of n=4 above, only the first 4 terms are valid, the last term of course
having the value 2^n (=16 in this case). If I had the facility to write the
original summation of nCr in proper algebraic symbols it would be immediately
clear why we stop at the n th term.
Anyway the equation tells us that we can generate 80 combinations in all from
+-a,+-b,+-c,+-d taking 4 terms at a time down through 1 at a time. If we
assign actual numerical values to a,b,c & d and perform all the 80 sums this
does not necessarily result in 80 different results. Some of them may be
numerically the same, but whatever numbers are chosen it should be obvious that
there will be 40 +ve and 40 -ve answers. Also it is conceivable that there may
be particular values of a,b,c,d such that the 40 combinations which give +ve
results may happen to yield 1,2,3,4,.......38,39,40.
And here we are back to the weighing problem. 4 weights defined as -ve when
placed on the provisions pan and +ve when on the balance pan and having a
combined weight....yes, you've guessed it, 40lb, and provide every increment.
OK, OK... but what are they?. Well, I don't have a formula which tells me how
many possible combinations of 4 weights add up to 40, but the little Basic
program "Combi" shows me what they are, and tells me there are 297 to choose
from. Interesting perhaps but not much use, is it? And has it got 'em all?
Well you can apply various rationale a la Mr. Gallagher (Issue 39) but suppose
you were told there were seven weights totalling 1093 lb?. nCr=1_n says it may
be possible but I suspect Mr. Gallagher can get the answer in say under one
minute, to err on the generous side, as you will see later.
To write a progam to find the solution to this general problem by brute force
more or less, is an interesting, but not difficult challenge. Unfortunately
there's no need to bother. If you just happen to know about a particular
series,eh? Watson, you need neither rationale nor combinations. (My rationale
tells me to hang on to the latter just now. Brrr.)
You know how the binary number system works on the Beeb whereby combining bit
values in an 8_bit byte can produce every integer from 1 to 255 ? Well these
are really the terms of a geometric progression 1,g,g^2,g^3,g^4,......where g=2
and if we select the terms 1 at a time, 2 at a time,... etc we get all the
integers 1 to 255 or whatever by addition of the respective terms.
If we now make g=3, ie the trinary number sequence, and let a=1, b=g, c=g^2,
d=g^3,........etc and this time select the terms +-a,+-b,+-c,...... etc 1 at a
time, 2 at a time,... etc we again find that all the integers from 1 to
whatever are generated when added algebraically.
But whereas the combinations of the first four terms of the binary series yield
1 to 15, those of the trinary sequence yield 1 to 40. So the answer to our
weights problem is:-
1, 3, 3^2, 3^3 or 1,3,9,27 (=40)
Had the original weighing problem asked for say 6 weights to weigh from 1 to 63
lbs one would have immediately connected the answer with the binary series;
1+2+4+8+16+32 then 2 at a time; (1+2),(1+4),...(2+4),...etc. then 3 at a time;
(1+2+4).....etc etc. to give all the increments up to 63.
Mr. Gallaghers version relies on the combinations of the trinary sequence being
less well known. So all you have to do to solve the 7 weight problem I posed
earlier is add the next three terms in the series viz. 3^4,3^5 & 3^6 to give:-
Like the question "How many beans make 5?" you either know the answer or you
don't, and if you don't it could take rather a long time"...Yes, I heard. No, I
have not actually proved that the trinary sequence can be made to generate
every integer, but then nobody actually proved to me that the binary series
In conclusion, armed with the binary and trinary sequences you can pose quite a
number of weighing problems. But take care, posing can seriously damage your