View Single Post
  #7   Report Post  
Posted to microsoft.public.excel.programming
Dana DeLouis Dana DeLouis is offline
external usenet poster
 
Posts: 947
Default Calculate Last Digits

Hi. Interesting challenge from a timing point of view. It appears you
posted a solution. Are you looking to verify the solution?
I used another program and got slightly different answers. Here's what I
show:

{6}, 0}
{5, 1}, 396}
{4, 2}, 3,960}
{4, 1, 1}, 39,600}
{3, 3}, 3,963}
{3, 2, 1}, 317,082}
{3, 1, 1, 1}, 924,791}
{2, 2, 2}, 105,684}
{2, 2, 1, 1}, 2,773,289}
{2, 1, 1, 1, 1}, 6,929,822}
{1, 1, 1, 1, 1, 1}, 2,885,229}

Note that 6 has no solution. Suppose we had an ending value of 1.
Then
{1,11,21,31,41,51}
is the only possible solution However, such a sequence does not exists
since the max size is 49.
Hence, no 6's.

The only solutions I have that matches yours a
(5,1), (4,2), and (4,1,1)

There are 10 categories of last digit :-


Your "Pattern" is also known as the "Integer Partitions" of the number 6, of
which there are 11.
As pointed out, you were missing "6". If you copied the solution from
somewhere else, it was probably because they left it out since there are
none.

--
HTH
Dana DeLouis


"Paul Black" wrote in message
ps.com...
Sorry guys,

Charlie you are quite right, I left out the 600000 category, my
appologies.
Basically, there are 13,983,816 combinations of 6 numbers. EACH 6
number combination has a last digit. The program will ideally
calculate each 6 numbers last digit category and keep a count. These
will then be listed.

Thanks in Advance.
All the Best.
Paul

On Oct 5, 6:24 pm, Charlie wrote:
Definitely strange, but I do see one pattern: All the digits add up to
6.
Subtract one from the right-most 1-digit and add one to the left-most
1-digit
to keep the total at 6, and so on. But the list is missing 600000.
Other
than that I'm lost.



"Peter T" wrote:
I've narrowed it down to a few different interpretations of what you
might
mean. But you win - I give up!


I'm curious now to see if someone else can understand <g


Regards,
Peter T


"Paul Black" wrote in message
roups.com...
Hi peter,


They are 6 number combinations. So for 6 numbers from 49 numbers
there
are 13,983,816 total combinations.
111111 could be numbers 01 02 03 04 05 06, making ALL 6 last digits
different.
321000 could be numbers 01 11 21 30 40 49.


The full list of categories are :-
111111
211110
221100
222000
311100
321000
330000
411000
420000
510000


The program will hopefully calculate the the total combinations for
ALL the categories and list them one under the other.


Thanks in Advance.
All the Best.
Paul


On Oct 5, 10:59 am, "Peter T" <peter_t@discussions wrote:
I don't follow this at all


"111111 means there are 2,887,500 combinations with all last digits
different."


Why ?


What's a combination ?
What's a category ?


321000 means there are 316,800 combinations where 3 of the last
digits
are the same, 2 of the last digits are the same (but a different
last
digit to the 3) and 1 last digit (but a different last digit to
the 3
or 2).


I defy any one to make sense of that !


Why is 6930000 more than 2887500, seems out of sequence ?


In passing, looks like you'll be dealing with numbers over 32k. If
potentially so you should declare them 'As Long' to avoid overflows
(As
Integer in VB/VBA is virtually redundant in 32bit systems). Also
FWIW,
no
need to disable screen updating for the sake of populating just two
cells.


Regards,
Peter T


"Paul Black" wrote in message


oups.com...


Hi everyone,


I am trying to loop through ALL the combinations and count the
number
of occurances of the last digit for each of the combinations.
There are 10 categories of last digit :-


111111 2887500
211110 6930000
221100 2772000
222000 105600
311100 924000
321000 316800
330000 3960
411000 39600
420000 3960
510000 396
Total = 13983816


111111 means there are 2,887,500 combinations with all last
digits
different.
321000 means there are 316,800 combinations where 3 of the last
digits
are the same, 2 of the last digits are the same (but a different
last
digit to the 3) and 1 last digit (but a different last digit to
the 3
or 2).


Here is what I have so far :-


Option Explicit
Dim A As Long, B As Long, C As Long, D As Long, E As Long, F As
Long


Sub LastDigit()
Dim i As Integer
Dim LastDigit As Integer
Dim DigitCounts(0 To 9) As Integer ' This will hold counters for
each
digit 0-9
Dim nDupl As Integer
Const minVal As Integer = 1 ' The minimum value in ANY
combination
Const maxVal As Integer = 49 ' The maximum value in ANY
combination


Application.ScreenUpdating = False


For i = 0 To 9
DigitCounts(i) = 0
Next i


For A = minVal To maxVal - 5
For B = A + 1 To maxVal - 4
For C = B + 1 To maxVal - 3
For D = C + 1 To maxVal - 2
For E = D + 1 To maxVal - 1
For F = E + 1 To maxVal


For i = 0 To 4
LastDigit = i - 10 * Int(i) / 10
DigitCounts(LastDigit) = DigitCounts(LastDigit) + 1
Next i


nDupl = 0


For i = 0 To 9
If DigitCounts(i) 1 Then nDupl = nDupl +
DigitCounts(i)
Next i


Next F
Next E
Next D
Next C
Next B
Next A


ActiveCell.Offset(0, 5).Value = nDupl
ActiveCell.Offset(1, 0).Select


Application.ScreenUpdating = True
End Sub


Any help will be greatly appreciated.
Thanks in Advance.
All the Best.
Paul- Hide quoted text -


- Show quoted text -- Hide quoted text -


- Show quoted text -