P
Paul Black
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
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