Search   Memberlist   Usergroups
 Page 1 of 1 [9 Posts]
Author Message
moriman
science forum beginner

Joined: 06 Apr 2006
Posts: 26

Posted: Mon Jul 17, 2006 12:21 am    Post subject: Stumped with figuring a formula...

Hi,

This is something I need to do for a lottery related project I'm working on.
I figured this years ago (changed poot and didn't keep a copy, sheesh) but
here goes..

In a 6 from 49 draw without replacement there are 13983816 combinations.
Imagine we call the first combination
01 02 03 04 05 06 combination number 0
then 01 02 03 04 05 43 would be combination number 37
and the final combination 44 45 46 47 48 49 would be combination number
13983815.

I want to be able to calculate the correct combination given a combination
number and vice versa.
So given combination 02 04 19 30 42 49
I would be able to calculate that it was combination number 1996088
or given combination number 3456789 I would be able to calculate that the
relevant combination was
03 05 11 35 43 44

I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the
combination which left
combination number 0 = 00 00 00 00 00 00
combination number 37 = 00 00 00 00 00 37
combination number 1996088 = 01 02 16 26 37 43
combination number 3456789 = 02 03 08 31 38 38
combination number 13983815 = 43 43 43 43 43 43

but I can't remember how I came up with the formalu for converting
combination number to combination and vice versa.

To help any who want to have a go, here are some important conversions and a
few others at the end for checking...
(best viewed maximized)

number combination combination
(with 01 02 03 04 05 06
subtracted)

0000000000 01 02 03 04 05 06 00 00 00 00 00 00
0000000043 01 02 03 04 05 49 00 00 00 00 00 43
0000000044 01 02 03 04 06 07 00 00 00 00 01 01
0000000989 01 02 03 04 48 49 00 00 00 00 43 43
0000000990 01 02 03 05 06 07 00 00 00 01 01 01
0000015179 01 02 03 47 48 49 00 00 00 43 43 43
0000015180 01 02 04 05 06 07 00 00 01 01 01 01
0000178364 01 02 46 47 48 49 00 00 43 43 43 43
0000178365 01 03 04 05 06 07 00 01 01 01 01 01
0001712303 01 45 46 47 48 49 00 43 43 43 43 43
0001712304 02 03 04 05 06 07 01 01 01 01 01 01
0013983815 44 45 46 47 48 49 43 43 43 43 43 43

and the few testers

0006000000 05 07 11 37 38 44 04 05 08 33 33 38
0007000000 06 07 17 32 39 41 05 05 14 28 34 35
0008000000 07 09 11 15 28 37 06 07 08 11 23 31
0009000000 08 12 15 17 29 45 07 10 12 13 24 39

Thanks for any help anyone can offer,

mori

--
----------------------------------------------------------------------------
-------------------------------------------
There are 10 types of people in the world; those who understand binary and
those who don't
William Elliot
science forum Guru

Joined: 24 Mar 2005
Posts: 1906

Posted: Mon Jul 17, 2006 2:09 am    Post subject: Re: Stumped with figuring a formula...

On Mon, 17 Jul 2006, moriman wrote:

 Quote: This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. I don't give financial advise for free. If you want me to perfect your

system, then you'll have to cut me in for half of your wins. Are you
willing to agree to that?

 Quote: In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the combination which left combination number 0 = 00 00 00 00 00 00 combination number 37 = 00 00 00 00 00 37 combination number 1996088 = 01 02 16 26 37 43 combination number 3456789 = 02 03 08 31 38 38 combination number 13983815 = 43 43 43 43 43 43 but I can't remember how I came up with the formalu for converting combination number to combination and vice versa. To help any who want to have a go, here are some important conversions and a few others at the end for checking... (best viewed maximized) combination normal adjusted number combination combination (with 01 02 03 04 05 06 subtracted) 0000000000 01 02 03 04 05 06 00 00 00 00 00 00 0000000043 01 02 03 04 05 49 00 00 00 00 00 43 0000000044 01 02 03 04 06 07 00 00 00 00 01 01 0000000989 01 02 03 04 48 49 00 00 00 00 43 43 0000000990 01 02 03 05 06 07 00 00 00 01 01 01 0000015179 01 02 03 47 48 49 00 00 00 43 43 43 0000015180 01 02 04 05 06 07 00 00 01 01 01 01 0000178364 01 02 46 47 48 49 00 00 43 43 43 43 0000178365 01 03 04 05 06 07 00 01 01 01 01 01 0001712303 01 45 46 47 48 49 00 43 43 43 43 43 0001712304 02 03 04 05 06 07 01 01 01 01 01 01 0013983815 44 45 46 47 48 49 43 43 43 43 43 43 and the few testers 0006000000 05 07 11 37 38 44 04 05 08 33 33 38 0007000000 06 07 17 32 39 41 05 05 14 28 34 35 0008000000 07 09 11 15 28 37 06 07 08 11 23 31 0009000000 08 12 15 17 29 45 07 10 12 13 24 39 Thanks for any help anyone can offer, mori -- ---------------------------------------------------------------------------- ------------------------------------------- There are 10 types of people in the world; those who understand binary and those who don't :)
mensanator@aol.compost
science forum Guru

Joined: 24 Mar 2005
Posts: 826

Posted: Mon Jul 17, 2006 2:37 am    Post subject: Re: Stumped with figuring a formula...

William Elliot wrote:
 Quote: On Mon, 17 Jul 2006, moriman wrote: This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. I don't give financial advise for free. If you want me to perfect your system, then you'll have to cut me in for half of your wins. Are you willing to agree to that?

What are these "wins" of which you speak?

 Quote: In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the combination which left combination number 0 = 00 00 00 00 00 00 combination number 37 = 00 00 00 00 00 37 combination number 1996088 = 01 02 16 26 37 43 combination number 3456789 = 02 03 08 31 38 38 combination number 13983815 = 43 43 43 43 43 43 but I can't remember how I came up with the formalu for converting combination number to combination and vice versa. To help any who want to have a go, here are some important conversions and a few others at the end for checking... (best viewed maximized) combination normal adjusted number combination combination (with 01 02 03 04 05 06 subtracted) 0000000000 01 02 03 04 05 06 00 00 00 00 00 00 0000000043 01 02 03 04 05 49 00 00 00 00 00 43 0000000044 01 02 03 04 06 07 00 00 00 00 01 01 0000000989 01 02 03 04 48 49 00 00 00 00 43 43 0000000990 01 02 03 05 06 07 00 00 00 01 01 01 0000015179 01 02 03 47 48 49 00 00 00 43 43 43 0000015180 01 02 04 05 06 07 00 00 01 01 01 01 0000178364 01 02 46 47 48 49 00 00 43 43 43 43 0000178365 01 03 04 05 06 07 00 01 01 01 01 01 0001712303 01 45 46 47 48 49 00 43 43 43 43 43 0001712304 02 03 04 05 06 07 01 01 01 01 01 01 0013983815 44 45 46 47 48 49 43 43 43 43 43 43 and the few testers 0006000000 05 07 11 37 38 44 04 05 08 33 33 38 0007000000 06 07 17 32 39 41 05 05 14 28 34 35 0008000000 07 09 11 15 28 37 06 07 08 11 23 31 0009000000 08 12 15 17 29 45 07 10 12 13 24 39 Thanks for any help anyone can offer, mori -- ---------------------------------------------------------------------------- ------------------------------------------- There are 10 types of people in the world; those who understand binary and those who don't :)
William Elliot
science forum Guru

Joined: 24 Mar 2005
Posts: 1906

Posted: Mon Jul 17, 2006 8:28 am    Post subject: Re: Stumped with figuring a formula...

On Sun, 16 Jul 2006, mensanator@aol.com wrote:
 Quote: William Elliot wrote: On Mon, 17 Jul 2006, moriman wrote: This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. I don't give financial advise for free. If you want me to perfect your system, then you'll have to cut me in for half of your wins. Are you willing to agree to that? What are these "wins" of which you speak? -5 + i.10^8
moriman
science forum beginner

Joined: 06 Apr 2006
Posts: 26

Posted: Mon Jul 17, 2006 10:00 am    Post subject: Re: Stumped with figuring a formula...

"moriman" <moriman-spamless@btinternet.com> wrote in message
news:DJGdnT1zdYGbRSfZRVnytQ@bt.com...
 Quote: Hi, This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the combination which left combination number 0 = 00 00 00 00 00 00 combination number 37 = 00 00 00 00 00 37 combination number 1996088 = 01 02 16 26 37 43 combination number 3456789 = 02 03 08 31 38 38 combination number 13983815 = 43 43 43 43 43 43 but I can't remember how I came up with the formalu for converting combination number to combination and vice versa. To help any who want to have a go, here are some important conversions and a few others at the end for checking... (best viewed maximized) combination normal adjusted number combination combination (with 01 02 03 04 05 06 subtracted) 0000000000 01 02 03 04 05 06 00 00 00 00 00 00 0000000043 01 02 03 04 05 49 00 00 00 00 00 43 0000000044 01 02 03 04 06 07 00 00 00 00 01 01 0000000989 01 02 03 04 48 49 00 00 00 00 43 43 0000000990 01 02 03 05 06 07 00 00 00 01 01 01 0000015179 01 02 03 47 48 49 00 00 00 43 43 43 0000015180 01 02 04 05 06 07 00 00 01 01 01 01 0000178364 01 02 46 47 48 49 00 00 43 43 43 43 0000178365 01 03 04 05 06 07 00 01 01 01 01 01 0001712303 01 45 46 47 48 49 00 43 43 43 43 43 0001712304 02 03 04 05 06 07 01 01 01 01 01 01 0013983815 44 45 46 47 48 49 43 43 43 43 43 43 and the few testers 0006000000 05 07 11 37 38 44 04 05 08 33 33 38 0007000000 06 07 17 32 39 41 05 05 14 28 34 35 0008000000 07 09 11 15 28 37 06 07 08 11 23 31 0009000000 08 12 15 17 29 45 07 10 12 13 24 39 Thanks for any help anyone can offer,

ok, here's where I've got so far....

I'll use the adjusted values i.e. The combination minus 01 02 03 04 05 06
and number the individual numbers n0, n1, n2, n3, n4 & n5 where n5 is the
highest number

The first 43 only deal with n5 and are trivial...

00 00 00 00 00 00 -> 0
..
00 00 00 00 00 24 -> 24
..
00 00 00 00 00 43 -> 43

The combinations where n4 > 0 can be calculated as follows

44*45/2 - (44-n4)*(45-n4) + (n5-n4)

so that...

n4 n5
00 00 00 00 03 19 = (44*45)/2 - (41*42)/2 + 16 = combination 145
00 00 00 00 26 38 = (44*45)/2 - (18*19)/2 + 12 = combination 831

when n3 = 1 we have

990*991/2 - (990-n3)*(991-n3)/2 + (44-n3)*(45-n3)/2 - (44-n4)*(45-n4)/2 +
(n5-n4)

so that...
n3 n4 n5
00 00 00 01 07 23 = 990*991/2 - (989*990)/2 + (43*44)/2 - (37*3/2 + 16 =
1249
00 00 00 01 31 43 = 990*991/2 - (989*990)/2 + (43*44)/2 - (13*14)/2 + 12 =
1857

but the above formula falls apart when n3 > 1

00 00 00 02 07 18 = 990*991/2 - (988*989)/2 + (42*43)/2 - (37*3/2 + 11 =
2190
but it should be 2147 (43 too much)

00 00 00 07 23 37 = 990*991/2 - (983*984)/2 + (37*3/2 - (19*20)/2 + 14 =
7436
but it should be 6527 (909 too much)

So obviously there is a mistake in the second formula as it should be
correct for all 0 < n3 < 44

Any ideas?

mori
Dana DeLouis
science forum beginner

Joined: 06 Mar 2006
Posts: 37

Posted: Mon Jul 17, 2006 12:31 pm    Post subject: Re: Stumped with figuring a formula...

 Quote: So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44

Your test data checks with a math program:

RankKSubset[{2, 4, 19, 30, 42, 49}, 49]
1996088

UnrankKSubset[3456789, 6, 49]
{3, 5, 11, 35, 43, 44}

Here's one way. It's done with code, but perhaps the pattern can be seen on
this Excel Spreadsheet for [{2, 4, 19, 30, 42, 49}.

=COMBIN(49,6) -COMBIN(49-2+1,6)
=COMBIN(47,5) - COMBIN(47-2+1,5)
=COMBIN(45,4) - COMBIN(45-15+1,4)
=COMBIN(30,3) - COMBIN(30-11+1,3)
=COMBIN(19,2) - COMBIN(19-12+1,2)
=49-42-1
=SUM(A1:A6)

(Returns 1996088)
Good Luck.
--
HTH. :>)
Dana DeLouis

"moriman" <moriman-spamless@btinternet.com> wrote in message
news:DJGdnT1zdYGbRSfZRVnytQ@bt.com...
 Quote: Hi, This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the combination which left combination number 0 = 00 00 00 00 00 00 combination number 37 = 00 00 00 00 00 37 combination number 1996088 = 01 02 16 26 37 43 combination number 3456789 = 02 03 08 31 38 38 combination number 13983815 = 43 43 43 43 43 43 but I can't remember how I came up with the formalu for converting combination number to combination and vice versa. To help any who want to have a go, here are some important conversions and a few others at the end for checking... (best viewed maximized) combination normal adjusted number combination combination (with 01 02 03 04 05 06 subtracted) 0000000000 01 02 03 04 05 06 00 00 00 00 00 00 0000000043 01 02 03 04 05 49 00 00 00 00 00 43 0000000044 01 02 03 04 06 07 00 00 00 00 01 01 0000000989 01 02 03 04 48 49 00 00 00 00 43 43 0000000990 01 02 03 05 06 07 00 00 00 01 01 01 0000015179 01 02 03 47 48 49 00 00 00 43 43 43 0000015180 01 02 04 05 06 07 00 00 01 01 01 01 0000178364 01 02 46 47 48 49 00 00 43 43 43 43 0000178365 01 03 04 05 06 07 00 01 01 01 01 01 0001712303 01 45 46 47 48 49 00 43 43 43 43 43 0001712304 02 03 04 05 06 07 01 01 01 01 01 01 0013983815 44 45 46 47 48 49 43 43 43 43 43 43 and the few testers 0006000000 05 07 11 37 38 44 04 05 08 33 33 38 0007000000 06 07 17 32 39 41 05 05 14 28 34 35 0008000000 07 09 11 15 28 37 06 07 08 11 23 31 0009000000 08 12 15 17 29 45 07 10 12 13 24 39 Thanks for any help anyone can offer, mori -- ---------------------------------------------------------------------------- ------------------------------------------- There are 10 types of people in the world; those who understand binary and those who don't :)
matt271829-news@yahoo.co.
science forum Guru

Joined: 11 Sep 2005
Posts: 846

Posted: Mon Jul 17, 2006 1:01 pm    Post subject: Re: Stumped with figuring a formula...

moriman wrote:
 Quote: "moriman" wrote in message news:DJGdnT1zdYGbRSfZRVnytQ@bt.com... Hi, This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44

Let a1, a2, a3, a4, a5, a6 be the combination, with a1 < a2 < a3 < a4 <
a5 < a6. Then I think the corresponding sequence number is

C(49, 6) - C(49 - a1, 6) - C(49 - a2, 5) - C(49 - a3, 4) - C(49 - a4,
3) - C(49 - a5, 2) - C(49 - a6, 1) - 1

with the proviso that C(x,y) = 0 when y > x.

To go from sequence number to combination I guess you just find the
largest a1, a2, a3 etc. in order such that the partial sum of the above
expression is less than or equal to the required sequence number.
moriman
science forum beginner

Joined: 06 Apr 2006
Posts: 26

Posted: Tue Jul 18, 2006 5:51 pm    Post subject: Re: Stumped with figuring a formula...

<matt271829-news@yahoo.co.uk> wrote in message
 Quote: moriman wrote: "moriman" wrote in message news:DJGdnT1zdYGbRSfZRVnytQ@bt.com... Hi, This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 Let a1, a2, a3, a4, a5, a6 be the combination, with a1 < a2 < a3 < a4 a5 < a6. Then I think the corresponding sequence number is C(49, 6) - C(49 - a1, 6) - C(49 - a2, 5) - C(49 - a3, 4) - C(49 - a4, 3) - C(49 - a5, 2) - C(49 - a6, 1) - 1

Hi,

Having checked the above (it's not what I came up with before) I found it
does indeed supply the correct answer
Unfortunately (as with Dana's reply) it would be difficult to implement as
the program I'm writing is in assembly language which doesn't have a
factorial function and as I'm using a double-word limit (4294967295) each
calculation would have to check that I haven't exceeded this limit. I'm
doing it this way for speed as scanning through 13983816 combinations is a
sloooooooow process even with an assembly language program on a fast poot :(

Anyway, I managed to re-invent the wheel and rediscover the way I had
implemented it before
Here's the method I'm using (if you don't program yourself, espescially in
assembly, you'll probably find it hard to believe the processor speed issue
between division, multiplication, subtraction and addition, but division is
*incredibly* slow compared to multiplication which is also slow as compared

I will stick with your convention of a1...a6

I have the following 'lookup table'
level1:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2
9,30,31,32,33,34,35,36,37,38,39,40,41,42,43
level2:
44,87,129,170,210,249,287,324,360,395,429,462,494,525,555,584,612,639,665,69
0,714,737,759,780,800,819,837,854,870,885,899,912,924,935,945,954,962,969,97
5,980,984,987,989
level3:
990,1936,2839,3700,4520,5300,6041,6744,7410,8040,8635,9196,9724,10220,10685,
11120,11526,11904,12255,12580,12880,13156,13409,13640,13850,14040,14211,1436
4,14500,14620,14725,14816,14894,14960,15015,15060,15096,15124,15145,15160,15
170,15176,15179
level4:
15180,29370,42614,54955,66435,77095,86975,96114,104550,112320,119460,126005,
131989,137445,142405,146900,150960,154614,157890,160815,163415,165715,167739
,169510,171050,172380,173520,174489,175305,175985,176545,177000,177364,17765
0,177870,178035,178155,178239,178295,178330,178350,178360,178364
level5:
178365,341550,490545,626296,749706,861636,962906,1054296,1136547,1210362,127
6407,1335312,1387672,1434048,1474968,1510928,1542393,1569798,1593549,1614024
,1631574,1646524,1659174,1669800,1678655,1685970,1691955,1696800,1700676,170
3736,1706116,1707936,1709301,1710302,1711017,1711512,1711842,1712052,1712178
,1712248,1712283,1712298,1712303
level6:
1712304,3246243,4616997,5838756,6924764,7887362,8738030,9487428,10145436,107
21193,11223135,11659032,12036024,12360656,12638912,12876248,13077624,1324753
5,13390041,13508796,13607076,13687806,13753586,13806716,13849220,13882869,13
909203,13929552,13945056,13956684,13965252,13971440,13975808,13978811,139808
13,13982100,13982892,13983354,13983606,13983732,13983788,13983809,13983815

and then simply do the following...

combination 03 07 19 30 42 49
subtract 01 02 03 04 05 06 respectively to get a new a1...a6
combination 02 05 16 26 37 43

(1) if a1 =0 then goto step 2, else store the number at that position in
level 6 (i.e. level6 number2 = 3246243)
then subtract the number at postion (a1) in level 5 (341550) giving
2904693
(2) if a2 = 1 then goto step 3, else add the number at that position in
level 5 (749706)
the subtract the number at postion (a2) in level 4 (66435) giving
3587964
(3) if a3 = 2 then goto step 4, else add the number at that position in
level 4 (146900)
the subtract the number at postion (a3) in level 3 (11120) giving
3723744
(4) if a4 = 3 then goto step 5, else add the number at that position in
level 3 (14040)
the subtract the number at postion (a4) in level 2 (819) giving 3736965
(5) if a5 = 4 then goto step 6, else add the number at that position in
level 2 (962)
the subtract the number at postion (a5) in level 1 (37) giving 3737890
(6) if a6 = 5 then finished else add the number at that position in level 6
(43) giving 3737933

So the whole thing can be done without multiplication or division ;-)

Where do the numbersin the lookup table com from?
Well, level 1 is trivial
level 2 is 44, (44+43), (44+43+42), (44+43+42+41) ....
level 3 is sum(44:1), [sum(44:1) + sum(43:1)], [sum(44:1) + sum(43:1) +
sum(42:1)
I'm sure you get the drift from the above as levels 4 to 6 take up to much
room to explain, lol

Thx again,

mori

 Quote: with the proviso that C(x,y) = 0 when y > x. To go from sequence number to combination I guess you just find the largest a1, a2, a3 etc. in order such that the partial sum of the above expression is less than or equal to the required sequence number.
moriman
science forum beginner

Joined: 06 Apr 2006
Posts: 26

Posted: Tue Jul 18, 2006 5:53 pm    Post subject: Re: Stumped with figuring a formula...

"Dana" <ddelouis@bellsouth.net> wrote in message
news:3rLug.9357\$Bx.2280@bignews5.bellsouth.net...
 Quote: So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 Your test data checks with a math program: RankKSubset[{2, 4, 19, 30, 42, 49}, 49] 1996088 UnrankKSubset[3456789, 6, 49] {3, 5, 11, 35, 43, 44} Here's one way. It's done with code, but perhaps the pattern can be seen on this Excel Spreadsheet for [{2, 4, 19, 30, 42, 49}. =COMBIN(49,6) -COMBIN(49-2+1,6) =COMBIN(47,5) - COMBIN(47-2+1,5) =COMBIN(45,4) - COMBIN(45-15+1,4) =COMBIN(30,3) - COMBIN(30-11+1,3) =COMBIN(19,2) - COMBIN(19-12+1,2) =49-42-1 =SUM(A1:A6)

Hi Dana

Having checked the above (it's not what I came up with before) I found it
does indeed supply the correct answer
Unfortunately (as with Matt's reply) it would be difficult to implement as
the program I'm writing is in assembly language which doesn't have a
factorial function and as I'm using a double-word limit (4294967295) each
calculation would have to check that I haven't exceeded this limit. I'm
doing it this way for speed as scanning through 13983816 combinations is a
sloooooooow process even with an assembly language program on a fast poot :(

Anyway, I managed to re-invent the wheel and rediscover the way I had
implemented it before
Here's the method I'm using (if you don't program yourself, espescially in
assembly, you'll probably find it hard to believe the processor speed issue
between division, multiplication, subtraction and addition, but division is
*incredibly* slow compared to multiplication which is also slow as compared

I have the following 'lookup table'
level1:
1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,2
9,30,31,32,33,34,35,36,37,38,39,40,41,42,43
level2:
44,87,129,170,210,249,287,324,360,395,429,462,494,525,555,584,612,639,665,69
0,714,737,759,780,800,819,837,854,870,885,899,912,924,935,945,954,962,969,97
5,980,984,987,989
level3:
990,1936,2839,3700,4520,5300,6041,6744,7410,8040,8635,9196,9724,10220,10685,
11120,11526,11904,12255,12580,12880,13156,13409,13640,13850,14040,14211,1436
4,14500,14620,14725,14816,14894,14960,15015,15060,15096,15124,15145,15160,15
170,15176,15179
level4:
15180,29370,42614,54955,66435,77095,86975,96114,104550,112320,119460,126005,
131989,137445,142405,146900,150960,154614,157890,160815,163415,165715,167739
,169510,171050,172380,173520,174489,175305,175985,176545,177000,177364,17765
0,177870,178035,178155,178239,178295,178330,178350,178360,178364
level5:
178365,341550,490545,626296,749706,861636,962906,1054296,1136547,1210362,127
6407,1335312,1387672,1434048,1474968,1510928,1542393,1569798,1593549,1614024
,1631574,1646524,1659174,1669800,1678655,1685970,1691955,1696800,1700676,170
3736,1706116,1707936,1709301,1710302,1711017,1711512,1711842,1712052,1712178
,1712248,1712283,1712298,1712303
level6:
1712304,3246243,4616997,5838756,6924764,7887362,8738030,9487428,10145436,107
21193,11223135,11659032,12036024,12360656,12638912,12876248,13077624,1324753
5,13390041,13508796,13607076,13687806,13753586,13806716,13849220,13882869,13
909203,13929552,13945056,13956684,13965252,13971440,13975808,13978811,139808
13,13982100,13982892,13983354,13983606,13983732,13983788,13983809,13983815

and then simply do the following...

combination 03 07 19 30 42 49
subtract 01 02 03 04 05 06 respectively to get a new a1...a6
combination 02 05 16 26 37 43 (where a1=02, a2 = 05, a3=16 etc.)

(1) if a1 =0 then goto step 2, else store the number at that position in
level 6 (i.e. level6 number2 = 3246243)
then subtract the number at postion (a1) in level 5 (341550) giving
2904693
(2) if a2 = 1 then goto step 3, else add the number at that position in
level 5 (749706)
the subtract the number at postion (a2) in level 4 (66435) giving
3587964
(3) if a3 = 2 then goto step 4, else add the number at that position in
level 4 (146900)
the subtract the number at postion (a3) in level 3 (11120) giving
3723744
(4) if a4 = 3 then goto step 5, else add the number at that position in
level 3 (14040)
the subtract the number at postion (a4) in level 2 (819) giving 3736965
(5) if a5 = 4 then goto step 6, else add the number at that position in
level 2 (962)
the subtract the number at postion (a5) in level 1 (37) giving 3737890
(6) if a6 = 5 then finished else add the number at that position in level 6
(43) giving 3737933

So the whole thing can be done without multiplication or division ;-)

Where do the numbersin the lookup table com from?
Well, level 1 is trivial
level 2 is 44, (44+43), (44+43+42), (44+43+42+41) ....
level 3 is sum(44:1), [sum(44:1) + sum(43:1)], [sum(44:1) + sum(43:1) +
sum(42:1)
I'm sure you get the drift from the above as levels 4 to 6 take up to much
room to explain, lol

Thx again,

mori

 Quote: (Returns 1996088) Good Luck. -- HTH. :>) Dana DeLouis "moriman" wrote in message news:DJGdnT1zdYGbRSfZRVnytQ@bt.com... Hi, This is something I need to do for a lottery related project I'm working on. I figured this years ago (changed poot and didn't keep a copy, sheesh) but here goes.. In a 6 from 49 draw without replacement there are 13983816 combinations. Imagine we call the first combination 01 02 03 04 05 06 combination number 0 then 01 02 03 04 05 43 would be combination number 37 and the final combination 44 45 46 47 48 49 would be combination number 13983815. I want to be able to calculate the correct combination given a combination number and vice versa. So given combination 02 04 19 30 42 49 I would be able to calculate that it was combination number 1996088 or given combination number 3456789 I would be able to calculate that the relevant combination was 03 05 11 35 43 44 I know the way I proceeded before was to subtract 01 02 03 04 05 06 from the combination which left combination number 0 = 00 00 00 00 00 00 combination number 37 = 00 00 00 00 00 37 combination number 1996088 = 01 02 16 26 37 43 combination number 3456789 = 02 03 08 31 38 38 combination number 13983815 = 43 43 43 43 43 43 but I can't remember how I came up with the formalu for converting combination number to combination and vice versa. To help any who want to have a go, here are some important conversions and a few others at the end for checking... (best viewed maximized) combination normal adjusted number combination combination (with 01 02 03 04 05 06 subtracted) 0000000000 01 02 03 04 05 06 00 00 00 00 00 00 0000000043 01 02 03 04 05 49 00 00 00 00 00 43 0000000044 01 02 03 04 06 07 00 00 00 00 01 01 0000000989 01 02 03 04 48 49 00 00 00 00 43 43 0000000990 01 02 03 05 06 07 00 00 00 01 01 01 0000015179 01 02 03 47 48 49 00 00 00 43 43 43 0000015180 01 02 04 05 06 07 00 00 01 01 01 01 0000178364 01 02 46 47 48 49 00 00 43 43 43 43 0000178365 01 03 04 05 06 07 00 01 01 01 01 01 0001712303 01 45 46 47 48 49 00 43 43 43 43 43 0001712304 02 03 04 05 06 07 01 01 01 01 01 01 0013983815 44 45 46 47 48 49 43 43 43 43 43 43 and the few testers 0006000000 05 07 11 37 38 44 04 05 08 33 33 38 0007000000 06 07 17 32 39 41 05 05 14 28 34 35 0008000000 07 09 11 15 28 37 06 07 08 11 23 31 0009000000 08 12 15 17 29 45 07 10 12 13 24 39 Thanks for any help anyone can offer, mori -- -------------------------------------------------------------------------- -- ------------------------------------------- There are 10 types of people in the world; those who understand binary and those who don't :)

 Display posts from previous: All Posts1 Day7 Days2 Weeks1 Month3 Months6 Months1 Year Oldest FirstNewest First
 Page 1 of 1 [9 Posts]
 The time now is Tue Mar 19, 2019 9:37 am | All times are GMT
 Jump to: Select a forum-------------------Forum index|___Science and Technology    |___Math    |   |___Research    |   |___num-analysis    |   |___Symbolic    |   |___Combinatorics    |   |___Probability    |   |   |___Prediction    |   |       |   |___Undergraduate    |   |___Recreational    |       |___Physics    |   |___Research    |   |___New Theories    |   |___Acoustics    |   |___Electromagnetics    |   |___Strings    |   |___Particle    |   |___Fusion    |   |___Relativity    |       |___Chem    |   |___Analytical    |   |___Electrochem    |   |   |___Battery    |   |       |   |___Coatings    |       |___Engineering        |___Control        |___Mechanics        |___Chemical

 Topic Author Forum Replies Last Post Similar Topics Newton's formula kunzmilan@atlas.cz Math 0 Thu Jul 13, 2006 11:12 am formula for 1/1+1/2+1/3+1/4+1/5......+1/(L-1) NILS BÖRJESSON Math 2 Tue Jul 11, 2006 7:59 pm ? algorithm to fill out the gap of Sherman-Morrison formula Cheng Cosine num-analysis 7 Sun Jul 09, 2006 5:13 pm Mathematical formula to compare integer sequence Abstract Dissonance Math 13 Tue Jun 27, 2006 8:09 pm application of Poisson's summation formula Bart num-analysis 2 Mon Jun 26, 2006 8:58 am