Entre el 1 y el 9 no habrá ninguno porque solo hay una cifra
Entre el 10 y el 99:
La primera cifra puede ser cualquiera menos el 0 eso son 9 posibilidades, la segunda puede ser cualquiera menos la primera, son 9 posibilidades también.
Luego entre 10 y 99 hay 9·9 = 81 números
·
Entre el 100 y el 999.
La primera cifra puede ser cualquiera menos el 0, son 9 posibilidades.
Las otras dos pueden ser:
1) Iguales y distinta de la primera: 9 posibilidades
2) Una como la primera y otra distinta: 2·9 = 18 posibilidades
Luego el total de números ente 100 y 999 es:
9(9+18) = 243
·
Entre el 1000 y 1999
La primera cifra es siempre 1. Las otras 3 pueden ser:
1) Todas iguales y distintas de 1: son 9 posibilidades
2) Una con 1 y las otras dos con otra repetidas. Como la del 1 puede estar en tres lugares son 3·9 = 27 posibilidades
3) Dos con la cifra 1 y la otra distinta. Como la distinta puede ocupar tres lugares son 3·9 = 27 posibilidades
Luego entre 1000 y 1999 hay 9+27+27 = 63 números
·
Entre 2000 y 2013 los recontamos a mano
2000, 2002
·
Luego en total son:
81+243 + 63 +2 = 289
Y ahora sí, ahora ya me coincide con lo que decía el programa.
Esta es la macro de Excel:
Sub CifrasDistintas()
If [D2] <= 0 Or [D3] <= 0 Or [D4] <= 0 Or [D2] > [D3] Then
resp = MsgBox("Falta algún dato o está mal", vbCritical + vbOKOnly, "Error Fatal")
Exit Sub
End If
Dim c(20), cifras, CifrasDis, fila, i, j, LimInf, LimSup, n, SigCifra As Integer
Dim Esta(10) As Boolean
Columns(1).Clear
cifras = 1
SigCifra = 10
fila = 0
LimInf = [D2]
LimSup = [D3]
CifrasDis = [D4]
contador = 0
For i = LimInf To LimSup
distin = 0
For j = 0 To 9
Esta(j) = False
Next
n = i
If n = SigCifra Then
cifras = cifras + 1
SigCifra = SigCifra * 10
End If
For j = 1 To cifras
c(j) = n Mod 10
n = (n - c(j)) / 10
If Not Esta(c(j)) Then
distin = distin + 1
Esta(c(j)) = True
If distin > CifrasDis Then Exit For
End If
Next
If distin = CifrasDis Then
fila = fila + 1
Cells(fila, 1) = i
End If
contador = contador + 1
Next
MsgBox ("Han sido " & fila & " números")
End Sub
Aquí tienes el enlace para poder descargar el fichero Excel con esa macro
https://drive.google.com/file/d/0B3nG6r7qbZZ_QUhxV1A0WTJybVE/view?usp=sharing
Puede ser que no funcione le click y tengas que copiarla en la barra del direcciones del navegador.
Y eso es todo, saludos.
·
·