[AccessD] Math Problem

Gustav Brock gustav at cactus.dk
Thu Oct 16 08:52:48 CDT 2003


Hi Marty

Interesting functions. Where have you obtained those?

However, they are not quite valid for the original subject as you
can't count on having a fixed number of selected items; you need
minimum two (if two rows carry the same amount, only positive and
negative, they will sum to zero) but the selection could as well
include all items and anything in between.

A collection of two has four combinations

  0 0
  1 0
  0 1
  1 1

but we rule out the selection of none and one item leaving only one
useful selection (1,1) out of four.

For every item added after the first two you have twice as many
combinations. Thus, the number of different useful combinations is 2^n
minus 3 or 

  2^(n-1)-1

This doesn't help us much, though, as you all know that 2 raised to
something very quickly turns out as astronomical numbers.

At n = 20 we have already passed 0.5 mio. combinations and at n = 30
five hundred mio. At numbers like these applying brute computing power
only makes no sense, you have to be smart too.

Here, for example, one can quickly see that selecting positive or
negative values only would lead to nothing as such a collection would
never sum to zero. You would need to separate the items in two pools,
positives and negatives, and for any valid combination from pool
Positives compare the sum to any valid combination from pool Negatives
and check if the absolute value of the two sums are equal.

The number of tests would be:

  (2^(p-1)-1) * (2^(n-1)-1)

Still comes out as large numbers; matching 10 positives and 10
negatives results in 261121 combinations ...

/gustav


> With six objects A,B,C,D,E,F you would have 20 unique combinations 
> without regard to order.
> Try code below to calculate the number of objects you can reasonably 
> use, the calculation fails on overflow when n > 170
> There are several methods to list out these combinations, in one of 
> Knuth's programming textbooks.
> I believe the third volume. I haven't got a copy handy, it's in another 
> province. TAOCP should be required reading. 
> http://www-cs-staff.stanford.edu/~knuth/taocp.html


> Counting combinations - example


> How many different groups of 3 could be selected from the 5 objects A, 
> B, C, D, E?

> 5 ways to select the first, 4 to then select the second, and 3 ways to 
> select the third, so 5*4*3 ways to choose when order matters

> But, every group of 3 (e.g. A, B, C) is counted 6 (=3!) times: ABC, ACB, 
> BAC, BCA, CAB, CBA

> So, total number of groups when ignore order is 5*4*3/(3*2*1) = 10

> 5! / 3!(5-3)! 120/6*2 =10

> Counting combinations


> In general, the number of different groups of r objects out of n is

> n* (n-1) * ... * (n-r+1)/r! = n!/( r! (n-r)! )

> This number is written ( nr ), and is pronounced ‘n choose r’

> Example: How many 5 card poker hands are possible (out of a deck of 52 
> cards)?

> There are ( 525 ) = 2,598,960 poker hands



More information about the AccessD mailing list