elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Programa para hacer combinaciones de numeros
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: 1 [2] Ir Abajo Respuesta Imprimir
Autor Tema: Programa para hacer combinaciones de numeros  (Leído 24,708 veces)
Maxi46

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Programa para hacer combinaciones de numeros
« Respuesta #10 en: 15 Mayo 2014, 20:53 pm »

Exacto, en el link que yo dejé (http://underc0de.org/foro/dudas-generales-121/programa-que-haga-combinaciones/), hay algo similar pero solo hace 8 combinaciones yo necesito que me dé las 28.


En línea

Maxi46

Desconectado Desconectado

Mensajes: 5


Ver Perfil
Re: Programa para hacer combinaciones de numeros
« Respuesta #11 en: 15 Mayo 2014, 23:43 pm »

Ya lo solucione con una macro en excel.


En línea

zapato

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Programa para hacer combinaciones de numeros
« Respuesta #12 en: 7 Mayo 2015, 22:27 pm »

hola muy buenas me gustaria saber si algun programa o alguna aplicacion que me de los casi 14 millones de combinaciones que hay en la bonoloto en un listado que pueda imprimir o poder trabajar luego con ese listado soy muy negado para esto de la informatica gracias espero vuestra ayuda
En línea

zapato

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Programa para hacer combinaciones de numeros
« Respuesta #13 en: 7 Mayo 2015, 22:34 pm »

hola muy buenas maxi46 me puedes decir como puedo hacerlo con una macro gracias
En línea

pkj

Desconectado Desconectado

Mensajes: 59



Ver Perfil
Re: Programa para hacer combinaciones de numeros
« Respuesta #14 en: 19 Mayo 2015, 01:19 am »

Aqui os dejo una solucion (o eso creo) en VB6. No sera la mas rápida pero parece que cumple su cometido.
Hace 6 años estuve experimentando con esto (por gusto) y consegui hacer una busqueda de combinaciones ordenadas (sin repeticiones).

En principio solo podias pedir grupos de N numeros, usando los numeros del 1 al X. Siempre desde el 1 en adelante.
Con un pequeño cambio que se me ha ocurrido mientras lo revisaba, ahora puedes pedir grupos de N numeros, usando los numeros de una lista, vayan seguidos o no, y esten ordenados o no lo esten.
Vamos, que ahora admite cualquier cosa.
De hecho puedes usar palabras en lugar de numeros, y se crearan todas las combinaciones posibles (siempre sin repeticiones).
El resultado lo devuelve en una matriz de cadena.

En fin, solo necesita un form con un listbox y un commandbutton.
Echad un ojo al command1 para ver como se usa y yasta.
Dejo los comentarios que puse en su dia por si os sirven de algo (a mi me dejan loco :P)

Código:
Option Explicit

Dim Parar As Integer

Private Sub Form_Load()
  Parar = 1
End Sub

Private Sub Command1_Click()
  On Local Error Resume Next
  If Parar = 0 Then Parar = 1: Exit Sub

  ' valores a insertar
  Static TamGrupos As Integer ' Tamaño de los grupos
  Static ListaDeNumeros As String ' lista de numeros separados por comas
  If ListaDeNumeros = "" Then ListaDeNumeros = "1,18,23,24,28,35,47"
  If TamGrupos = 0 Then TamGrupos = 3
  ' podemos pedirselos al usuario:
  Dim Respuesta As String
  Respuesta = InputBox("¿Que tamaño deben tener los grupos?", "Tamaño Grupos", TamGrupos)
  If Val(Respuesta) > 0 Then TamGrupos = Respuesta
  Respuesta = InputBox("¿Que números quieres usar? (uno o varios números separados por comas)", "Lista de números", ListaDeNumeros)
  If InStr(1, Respuesta, ",") Or Val(Respuesta) > 0 Then ListaDeNumeros = Respuesta
  
  Dim Matriz() As String ' matriz donde recibiremos la lista
  CreaGrupos TamGrupos, ListaDeNumeros, Matriz
  
  'Aqui manipulas la matriz como quieras
  ' por ejemplo pasandola a un listbox
  List1.Clear
  List1.Visible = False
  Dim F As Long
  For F = 0 To UBound(Matriz)
    List1.AddItem Matriz(F)
    DoEvents
  Next F
  List1.Visible = True

End Sub


Private Function CalculaTotal(ByVal TamGrupos As Integer, ByVal MaximoValor As Integer)' As Long
  Dim C1 As Double
  Dim C2 As Double
  Dim F As Double
  On Local Error Resume Next
  C1 = 1
  C2 = 1
  For F = 1 To TamGrupos
     C1 = C1 * F
  Next F

  For F = MaximoValor To (MaximoValor - (TamGrupos - 1)) Step -1
     C2 = C2 * F
  Next F
  CalculaTotal = C2 / C1

End Function


Private Sub CreaGrupos(ByVal TamGrupos As Integer, ByVal TopeOListaDeNumerosSeparadosPorComas As String, ByRef ListaDevuelta() As String)
' Busqueda de combinaciones.
' Dados los numeros de TopeOListaDeNumerosSeparadosPorComas,
' saca todos los grupos no repetidos de "TamGrupos" numeros
' y los devuelve en la matriz Lista()
' Por repetido se entiende que "1,2,3" es igual que "1,3,2", igual que "2,1,3", etc...
' Ejm: 1,2,3,4 de 2 en 2 = 6 combinaciones
' 1,2 - 1,3 - 1,4 - 2,3 - 2,4 - 3,4
' Opcionalmente, en lugar de una lista de números puedes poner un solo número.
' En ese caso la listadenumeros seran los números desde el 1 hasta el que pongas.

  Dim F As Double
  Dim Linea As String
  Dim Num As Double
  Dim Total As Double
  Dim Ap() As Double
  Dim MaximoValor As Long

  Dim MatrizDeNumeros() As String
  On Local Error Resume Next
  MatrizDeNumeros = Split(TopeOListaDeNumerosSeparadosPorComas, ",")
  MaximoValor = UBound(MatrizDeNumeros) + 1

  If TamGrupos < 1 Then
    MsgBox "Los grupos deben tener al menos un elemento."
    GoTo Fin
  End If
  
  If MaximoValor = 1 And Val(MatrizDeNumeros(0)) > 0 Then
    MaximoValor = Val(MatrizDeNumeros(0))
    ReDim MatrizDeNumeros(MaximoValor - 1)
    For F = 1 To MaximoValor
      MatrizDeNumeros(F - 1) = F
    Next F
  End If
  
  If MaximoValor < 1 Or TamGrupos > MaximoValor Then
    MsgBox "Tiene que haber al menos " & TamGrupos & " valores en TopeOListaDeNumerosSeparadosPorComas"
    GoTo Fin
  End If
  
  Total = CalculaTotal(TamGrupos, MaximoValor)
  
  ReDim Ap(TamGrupos)
  
  ReDim ListaDevuelta(Total - 1) As String
  Dim Contador As Long
  Contador = -1
  
  Parar = 0

' Cogemos las primeras
  For F = 1 To TamGrupos
    Ap(F) = F
  Next F
  
OtraVez:
  'Preparo la linea con la combinacion
  Linea = ""
  For F = 1 To TamGrupos - 1
    Linea = Linea & MatrizDeNumeros(Ap(F) - 1) & " , "
  Next F
  Linea = Linea & MatrizDeNumeros(Ap(TamGrupos) - 1)
  
  ' Guardo la combiancion
  Contador = Contador + 1
  ListaDevuelta(Contador) = Linea
  
  'Label4.Caption = Contador + 1 ' Muestro el progreso
  
  DoEvents
  If Parar = 1 Then GoTo Fin

  Num = TamGrupos + 1

Repetir1:
  Num = Num - 1  ' Cogemos la apuesta(num) (en principio la ultima)
  
 'La aumentamos...
  Ap(Num) = Ap(Num) + 1
  
  ' si es mayor de la cuenta...
  If Ap(Num) > (MaximoValor - (TamGrupos - Num)) Then
    
    ' si es la ap(1) se acaba
    If Num = 1 Then GoTo Fin
    
    ' ...aumentamos la anterior
    GoTo Repetir1
  End If

' Si no llega a su limite se mira si alguna ha llegado
' a su maximo
' Si NUM no apunta a la ultima AP() es que
' alguna ap() ha llegado a su maximo
  ' entonces reiniciamos todas las siguientes...
  If Num <> TamGrupos Then
    For F = Num + 1 To TamGrupos
      '....dandoles el valor de la anterior + 1...
      Ap(F) = Ap(F - 1) + 1
    Next F
  End If
    
  ' ... Y se da por valida
  GoTo OtraVez

Fin:
  Parar = 1
  
End Sub


Saludos

« Última modificación: 15 Junio 2015, 12:43 pm por pkj » En línea

Páginas: 1 [2] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Problema] Programa para averiguar números pares entre 2 números
Programación Visual Basic
Dreamaker 3 5,847 Último mensaje 21 Mayo 2010, 23:45 pm
por Shell Root
Combinaciones con 54 numeros
.NET (C#, VB.NET, ASP)
mr_marley 3 9,593 Último mensaje 27 Noviembre 2011, 01:56 am
por mr_marley
Combinaciones letras o numeros « 1 2 »
.NET (C#, VB.NET, ASP)
luis456 11 9,020 Último mensaje 8 Febrero 2014, 11:43 am
por luis456
Combinaciones numericas por posicion con numeros guias « 1 2 3 »
.NET (C#, VB.NET, ASP)
luis456 26 19,833 Último mensaje 28 Septiembre 2014, 16:13 pm
por luis456
formar combinaciones de 7 y 8 numeros con 25 numeros « 1 2 ... 5 6 »
.NET (C#, VB.NET, ASP)
luis456 51 31,616 Último mensaje 31 Octubre 2014, 17:48 pm
por luis456
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines