Foros > Visual Basic: Algoritmo DIFICIL! Combinatoria y Sucesiones.

  1. comeundone

    Mensajes [1] - Enviado el Viernes 02 de Marzo de 2007 a las 15:11hs

    Tengo una La siguiente estructura:

    Private Type ItemCaja
    BolaRoja as boolean
    BolaVerde as boolean
    BolaAzul as boolean
    end type

    y el siguiente vector:

    Cajas(1 to 3) as ItemCaja


    Como puede ver, la idea es que ItemCaja pueda tomar diferentes valores booleanos!
    El usuario es quien (mediante CheckBox) tilda en True cada ItemCaja, dado que que
    el usuario predice: "la Caja 1 creo que va a tener una bola roja o verde... azul seguro que no".
    Lo mismo hace con las otras cajas, va prediciendo que Bola puede guardar la Caja...

    Ejemplo:

    Caja 1, puede tener BolaRoja ? BolaVerde
    Cajas(1).BolaRoja = True
    Cajas(1).BolaVerde = True
    Cajas(1).BolaAzul = False

    Caja 2, cree que solo va a tener BolaRoja
    Cajas(2).BolaRoja = True
    Cajas(2).BolaVerde = False
    Cajas(2).BolaAzul = False


    Caja 3, cree que solo va a tener BolaAzul o BolaVerde
    Cajas(2).BolaRoja = False
    Cajas(2).BolaVerde = True
    Cajas(2).BolaAzul = True


    El programa deber?a mostrar en un textbox o en un archivo, todas
    las posibles combinaciones que se pueden dar.
    Siguiendo el Ejemplo:

    Caja1 = Roja Caja2 = Roja Caja3 = Verde
    Caja1 = Roja Caja2 = Roja Caja3 = Azul
    Caja1 = Verde Caja2 = Roja Caja3 = Verde
    Caja1 = Verde Caja2 = Roja Caja3 = Azul



    El GRAN problema =) por lo cual estoy aqu?... es que no se trata de 3 Cajas! Fue solo un ejemplo =(
    Seguramente el sistema tenga 20 Cajas!

    No se si hacer ciclos anidados o bien funciones recursivas.
    Alguien tiene alguna idea y me puede ayudar?
    Gracias,

  2. diegob

    Mensajes [1] - Enviado el Viernes 23 de Marzo de 2007 a las 17:36hs

    Hola!


    Yo usaria un algoritmo recursivo, por ejemplo :


    Private Type ItemCaja
    BolaRoja As Boolean
    BolaVerde As Boolean
    BolaAzul As Boolean
    End Type

    Const MaxLevel =?20


    Const vRed = "1"
    Const vGreen = "2"
    Const vBlue = "3"

    Dim Caja(1 To 20) As ItemCaja


    Private Sub Recorrer(levelNow As Integer, strCombinacion As String)

    If levelNow <> MaxLevel Then

    If Caja(levelNow).BolaAzul = True Then
    Recorrer levelNow + 1, strCombinacion & vBlue
    End If

    If Caja(levelNow).BolaVerde = True Then
    Recorrer levelNow + 1, strCombinacion & vGreen
    End If

    If Caja(levelNow).BolaRoja = True Then
    Recorrer levelNow + 1, strCombinacion & vRed
    End If

    Else

    If Caja(levelNow).BolaAzul = True Then
    AppendFile strCombinacion & vBlue
    End If

    If Caja(levelNow).BolaVerde = True Then
    AppendFile strCombinacion & vGreen
    End If

    If Caja(levelNow).BolaRoja = True Then
    AppendFile strCombinacion & vRed
    End If

    End If
    End Sub


    AppendFile es una funcion que guardaria en un archivo la combinacion que se le pasa como parametro, por ejemplo para? "Caja1 = Roja Caja2 = Roja Caja3 = Verde " strcombinacion tendria el valor "112", la funcion append file transformaria 112 a "Caja1 = Roja Caja2 = Roja Caja3 = Verde " y guardaria esta en un archivo.


    ?Se entendio? porque no soy muy bueno explicando :p.


    Espero que te sirva.


    ?


    ?


    ?


responder

Para poder responder a este tema tenes que ingresar. Si no tenes una cuenta podes registrarse gratis..

publicidad

API DE FACEBOOK
GOOGLE CALENDAR API
GOOGLE MAPS API