Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361

    generazione combinazioni booleane

    Ciao a tutti

    Devo generare le combinazioni booleane, tipo x 2 bit

    00
    01
    10
    11

    Il numero dei bit è variabile (ma oviamente al momento dell'algoritmo lo conosco)

    ho scritto del codice

    codice:
    For i = 1 To ncombinazioni (2 ^ nbit)
       subnt = ""
       For t = 0 To nbit
          if ?? ><=mod?? then
          subnt = 1 o 0 & subnt      
       Next
       Set mItem = ListView1.ListItems.Add(, , i)
       mItem.ListSubItems.Add , , subnt
    Next
    Ma non mi viene propio come far generare le varie combinazioni.
    So che gli 1 (e zeri) vengono ripetuti ciclicamente per 2 ^ (posizione bit).
    Ma non posso dimensionare una variabile che controlli le variazioni per ogni bit, xchè non so quanti sono.....
    Qualcuno ha qualche idea????

  2. #2
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    cosa dovresti realizzare? Un elenco delle combinazioni in base al numenro di bit passato?

  3. #3
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212

    Re: generazione combinazioni booleane

    Originariamente inviato da gaullo
    Ma non posso dimensionare una variabile che controlli le variazioni per ogni bit, xchè non so quanti sono.....
    Qualcuno ha qualche idea????
    come no? Se per esempio sono 2 bit non devi "ripartire" ogni 2 combinazioni?

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    pensandoci bene, potrei usare un array, ridimensionandolo secondo il numero di bit
    .....

  5. #5
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    Originariamente inviato da gaullo
    pensandoci bene, potrei usare un array, ridimensionandolo secondo il numero di bit
    .....
    stavo proprio provando a vedere se si poteva fare un array... magari multidimensionale...

  6. #6
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    ma usi vb6? non potresti creare una stringa a lunghezza fissa impostando la lunghezza al numero di bit? (non so se accetta una variabile)

  7. #7
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    anche questa è una soluzione.

    si uso vb6

    ora provo un po'

  8. #8
    Utente di HTML.it L'avatar di cik
    Registrato dal
    Jul 2003
    Messaggi
    449
    questa funzione converte un valore (Value) in binario restituendolo in una stringa lunga N_bit
    codice:
    Private Function BoolStr(ByVal Value As Long, ByVal N_bit As Integer) As String
        If N_bit = 1 Then
            If Value = 1 Then
                BoolStr = "1"
            Else
                BoolStr = "0"
            End If
            Exit Function
        End If
        If Value >= 2 ^ (N_bit - 1) Then
            BoolStr = "1" + BoolStr(Value - 2 ^ (N_bit - 1), N_bit - 1)
        Else
            BoolStr = "0" + BoolStr(Value, N_bit - 1)
        End If
    End Function
    puoi farti un array lungo 2^n e riempirlo con un ciclo
    S'i fosse foco, arderei 'l mondo

  9. #9
    Utente di HTML.it
    Registrato dal
    Feb 2002
    Messaggi
    361
    è ancora + semplice.......


    conosco il numero di combinazioni.....
    ho una function che mi converte i numeri in binario.....

    quindi con un for da 1 a n° combinazioni semplicemente traduco in binario la variabile del for che si incrementa di 1!!!!!!


    Grazie per le dritte.....

    :quote: :quote: :quote: :metallica

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.