¿Cómo averiguo todas las combinaciones de un numero con condiciones?

Como puedo hacer un programa que me diga todas las combinaciones, por ejemplo quiero saber todas las combinaciones del numero 143 usando 6 números de los primeros 50 números y que me lo visualice en un archivo. O si alguien conoce un programa que lo haga, también me vale.

1 respuesta

Respuesta
1

No estoy seguro de entender qué es exactamente lo que necesitas, pero si se trata de averiguar todas las combinaciones de sumandos que arrojan un resultado dado, yo tengo hecho algo de esto usando tanto VBA como sólo funciones de hoja de cálculo: http://www.jrgc.es/trucos.htm

Lo que quizás te pueda servir está abajo (Listar todas las combinaciones de sumas posibles...)

Hola, a lo que me refería era en un baremo del 1 al 50 y solo usando seis números sin repetirse, cuantas combinaciones posibles saldrían para obtener el 143, 165 o el 215 por ejemplo y no estoy seguro de lo que me has enviado, creo que si, pero me lo podrías confirmar?

Gracias.

Un saludo.

Si se trata de obtener todas las sumas para 6 números distintos entre el 1 y el 50, el código podría ser:

Public Sub BuscarSumas()
 Dim a As Double, b As Double, c As Double, d As Double, e As Double, f As Double
 Dim dValorBuscado As Double, iÚltimaFila As Long, n As Byte
 dValorBuscado = InputBox("Número a procesar:")
 Application.ScreenUpdating = False
 With Worksheets("Hoja1")
 .Cells.Delete
 For a = 1 To 45
 For b = a + 1 To 46
 For c = b + 1 To 47
 For d = c + 1 To 48
 For e = d + 1 To 49
 For f = e + 1 To 50
 If a + b + c + d + e + f = dValorBuscado Then
 iÚltimaFila = iÚltimaFila + 1
 .Cells(iÚltimaFila, 1).Value = a
 .Cells(iÚltimaFila, 2).Value = b
 .Cells(iÚltimaFila, 3).Value = c
 .Cells(iÚltimaFila, 4).Value = d
 .Cells(iÚltimaFila, 5).Value = e
 .Cells(iÚltimaFila, 6).Value = f
 End If
 Next f
 Next e
 Next d
 Next c
 Next b
 Next a
 End With
 Application.ScreenUpdating = True
End Sub

Si la versión de Excel es anterior a la 2007 podría producirse un error dependiendo del número a procesar, porque muchos números producen más de 65536 combinaciones de sumandos posibles, y ese es el tope de filas en esas versiones de Excel.
Por ejemplo, para el 143 el código encuentra nada menos que 177123 combinaciones posibles.

Hay que tener en cuenta que el número de combinaciones sin repetición posibles para ese conjunto de 50 números en grupos de 6 son 15890700. Como la suma de esos 6 números puede estar entre 21 (1+2+3+4+5+6) y 285 (45+46+47+48+49+50) estamos hablando de 265 posibles resultados, por lo que el promedio de combinaciones posibles para cada número es de casi 59965 (15890700/265), pero lógicamente ese número de combinaciones posibles es mucho menor en los extremos y mayor en el centro (para el 21 y para el 285 tan sólo es posible una combinación mientras que para, por ejemplo el 153 (que está "en el medio") el número de combinaciones posibles es 184.430

El código necesita que haya una hoja en el libro llamada Hoja1, y dicha hoja será borrada cada vez que se ejecute.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas