Risultati da 1 a 9 di 9

Discussione: Disposizioni con ripetizioni



  1. #1
    L'avatar di undiva
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Magenta
    Età
    78
    Messaggi
    8
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Disposizioni con ripetizioni

    Sto facendo delle analisi sulle probabiltà del gioco di Testa o Croce [pile ou face in francese].
    Avrei la necessità di analizzare tutte le possibili combinazioni di T/C in 20 tiri.
    Si tratta di 2^20 combinazioni, pari a 1.048.576 combinazioni.
    Siamo al limite delle possibilità di excel: abbiamo raggiunto il limite massimo delle righe!
    Ho iniziato a sviluppare manualmente gli oltre un milione di righe: una fatica improba!
    Ho calcolato che, lavorando due ore al giorno, impiegherei due/tre mesi!

    Per rendere più presentabile il risultato ho pensato di disporre i risultati in gruppi di 64 colonne.
    N.B.Per poter utilizzare il foglio anche per altri scopi, ho utilizzato le sigle V/P in luogo di T/C.
    Allego immagine del primo gruppo di 64 colonne, come esempio.

    Esiste una formula che possa automatizzare la creazione delle 1.048.576 combinazioni?

    Grazie a chi vorrà aiutarmi.

    Paolo
    Excel 2013
    File Allegati File Allegati

  2. #2

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2814
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    981

    Re: Disposizioni con ripetizioni

    Prova con questa routine:
    Non ci vorranno 2/3 mesi ma impiegherà molto tempo

    Codice: 
    Sub Genera()
    Dim TC As Variant
    Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
    Dim f As Integer, g As Integer, h As Integer, i As Integer, j As Integer
    Dim k As Integer, l As Integer, m As Integer, n As Integer, o As Integer
    Dim p As Integer, q As Integer, r As Integer, s As Integer, t As Integer
    Dim y As Long
    
    
    TC = Array("T", "C")
    
    
    Application.ScreenUpdating = False
    For a = 0 To 1: For b = 0 To 1: For c = 0 To 1: For d = 0 To 1: For e = 0 To 1
        For g = 0 To 1: For h = 0 To 1: For i = 0 To 1: For j = 0 To 1: For k = 0 To 1
            For l = 0 To 1: For m = 0 To 1: For n = 0 To 1: For o = 0 To 1: For p = 0 To 1
                For q = 0 To 1: For r = 0 To 1: For s = 0 To 1: For t = 0 To 1: y = y + 1
                    Cells(y, 1) = TC(a)
                    Cells(y, 2) = TC(b)
                    Cells(y, 3) = TC(c)
                    Cells(y, 4) = TC(d)
                    Cells(y, 5) = TC(e)
                    Cells(y, 6) = TC(f)
                    Cells(y, 7) = TC(g)
                    Cells(y, 8) = TC(h)
                    Cells(y, 9) = TC(i)
                    Cells(y, 10) = TC(j)
                    Cells(y, 11) = TC(k)
                    Cells(y, 12) = TC(l)
                    Cells(y, 13) = TC(m)
                    Cells(y, 14) = TC(n)
                    Cells(y, 15) = TC(o)
                    Cells(y, 16) = TC(p)
                    Cells(y, 17) = TC(q)
                    Cells(y, 18) = TC(r)
                    Cells(y, 19) = TC(s)
                    Cells(y, 20) = TC(t)
                Next: Next: Next: Next: Next
            Next: Next: Next: Next: Next
        Next: Next: Next: Next: Next
    Next: Next: Next: Next
    Application.ScreenUpdating = True
    End Sub
    End Sub
    Si riempiranno 1.048.576 righe per 20 colonne.

  3. I seguenti utenti hanno dato un "Like"


  4. #3
    L'avatar di undiva
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Magenta
    Età
    78
    Messaggi
    8
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Disposizioni con ripetizioni

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    Prova con questa routine:
    Non ci vorranno 2/3 mesi ma impiegherà molto tempo

    Si riempiranno 1.048.576 righe per 20 colonne.
    Grazie per la risposta.

    Purtroppo ricevo questo errore: vedi allegato VB_Errore2.pdf
    Non capisco da cosa possa dipendere.

    ------

    Visto che sei anche "Esperto di Formule" avevo trovato a questo link https://sites.google.com/site/e90e50...o-combinatorio l'immagine di un foglio (vedi allegato disp_due.pdf) perfetto per le mie esigenze.

    Peccato che le formule scritte in quella pagina risultano tutte non valide. In particolare questa:
    =MATR.PRODOTTO(1+RESTO(INT((RIF.RIGA(A1)-1)/(n^(RIF.COLONNA(SCARTO($A$1;;;;k))-1)));n);10^(RIF.RIGA(SCARTO($A$1;;;k))-1))

    Se possiamo usare le formule, possiamo evitare di usare in VB.
    Riusciresti a sistemare la formula in modo da ottenere il risultato illustrato in disp_due.pdf?
    Grazie.

    Paolo
    File Allegati File Allegati

  5. #4
    L'avatar di dracoscrigno
    Clicca e Apri
    Data Registrazione
    May 2016
    Località
    ferrara
    Età
    41
    Messaggi
    2074
    Versione Office
    office pro 2010
    Likes ricevuti
    440
    Likes dati
    241

    Re: Disposizioni con ripetizioni

    un abalisi del genere non credo sia profiquo analizzarla in questi termini ma attraverso le leggi matematiche legate alla combinatorica

    un esempio a caso prelevato da google:
    https://www.google.it/url?sa=t&sourc...wGqQmPRe6NYpQw

  6. #5
    L'avatar di undiva
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Magenta
    Età
    78
    Messaggi
    8
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Disposizioni con ripetizioni

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    ...
    Sono riuscito a far funzionare la routine, eliminando l'ultima riga [End Sub era ripetuto].

    Ho lanciato la routine: vengono create 20 colonne per 524.288 righe.

    Servirebbe un ulteriore aggustamento, se sei ancora disponibile.

    Grazie.
    Paolo
    Ultima modifica fatta da:Canapone; 28/03/17 alle 15:02

  7. #6

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2814
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    981

    Re: Disposizioni con ripetizioni

    Vedendo la routine, noto che manca il ciclo "f". Se non riesci a inserirlo da solo, lo sistemo questa sera io (però provaci)

    Inviato dal mio GT-I9301I utilizzando Tapatalk

  8. #7
    L'avatar di undiva
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Magenta
    Età
    78
    Messaggi
    8
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Disposizioni con ripetizioni

    Vedo solo ora il tuo messaggio.
    Domani mattina (meglio questa mattina, visto che mezzanotte è passata) provo a sistemare la routine; spero di riuscirci.
    Grazie per l'aiuto.

    ciao
    Paolo
    Ultima modifica fatta da:Canapone; 28/03/17 alle 15:01

  9. #8

    L'avatar di Rubik72
    Clicca e Apri
    Data Registrazione
    Dec 2015
    Località
    Cosenza
    Età
    45
    Messaggi
    2814
    Versione Office
    Excel 2013
    Likes ricevuti
    1024
    Likes dati
    981

    Re: Disposizioni con ripetizioni

    Ecco la routine corretta:
    Codice: 
    Sub Genera()
    Dim TC As Variant
    Dim a As Integer, b As Integer, c As Integer, d As Integer, e As Integer
    Dim f As Integer, g As Integer, h As Integer, i As Integer, j As Integer
    Dim k As Integer, l As Integer, m As Integer, n As Integer, o As Integer
    Dim p As Integer, q As Integer, r As Integer, s As Integer, t As Integer
    Dim y As Long
    
    
    TC = Array("T", "C")
    
    
    Application.ScreenUpdating = False
    For a = 0 To 1: For b = 0 To 1: For c = 0 To 1: For d = 0 To 1: For e = 0 To 1
        For f = 0 To 1: For g = 0 To 1: For h = 0 To 1: For i = 0 To 1: For j = 0 To 1
            For k = 0 To 1: For l = 0 To 1: For m = 0 To 1: For n = 0 To 1: For o = 0 To 1
                For p = 0 To 1: For q = 0 To 1: For r = 0 To 1: For s = 0 To 1: For t = 0 To 1
                y = y + 1
                    Cells(y, 1) = TC(a)
                    Cells(y, 2) = TC(b)
                    Cells(y, 3) = TC(c)
                    Cells(y, 4) = TC(d)
                    Cells(y, 5) = TC(e)
                    Cells(y, 6) = TC(f)
                    Cells(y, 7) = TC(g)
                    Cells(y, 8) = TC(h)
                    Cells(y, 9) = TC(i)
                    Cells(y, 10) = TC(j)
                    Cells(y, 11) = TC(k)
                    Cells(y, 12) = TC(l)
                    Cells(y, 13) = TC(m)
                    Cells(y, 14) = TC(n)
                    Cells(y, 15) = TC(o)
                    Cells(y, 16) = TC(p)
                    Cells(y, 17) = TC(q)
                    Cells(y, 18) = TC(r)
                    Cells(y, 19) = TC(s)
                    Cells(y, 20) = TC(t)
                Next: Next: Next: Next: Next
            Next: Next: Next: Next: Next
        Next: Next: Next: Next: Next
    Next: Next: Next: Next: Next
    Application.ScreenUpdating = True
    End Sub

  10. #9
    L'avatar di undiva
    Clicca e Apri
    Data Registrazione
    Aug 2015
    Località
    Magenta
    Età
    78
    Messaggi
    8
    Versione Office
    Excel 2013
    Likes ricevuti
    0
    Likes dati
    0

    Re: Disposizioni con ripetizioni

    Citazione Originariamente Scritto da Rubik72 Visualizza Messaggio
    ...
    Funziona!

    Un grandissimo grazie.
    Ultima modifica fatta da:Canapone; 28/03/17 alle 15:01

Discussioni Simili

  1. [Risolto] Conta ripetizioni di testo
    Di Varans92 nel forum Domande su Excel in generale
    Risposte: 7
    Ultimo Messaggio: 05/03/17, 15:28
  2. [Risolto] Ripetizioni valori riga
    Di Slim nel forum Domande su Excel in generale
    Risposte: 5
    Ultimo Messaggio: 22/12/16, 18:03
  3. trovare i primi tre numeri maggiori di un elenco con ripetizioni
    Di Allocco nel forum Domande su Excel in generale
    Risposte: 15
    Ultimo Messaggio: 10/07/16, 21:42
  4. Numero di ripetizioni in un determinato intervallo
    Di Slim nel forum Domande su Excel in generale
    Risposte: 8
    Ultimo Messaggio: 04/01/16, 13:45

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •