Il sito di Yahoo Answers verrà chiuso il 4 maggio 2021 (ora della costa est degli USA) e dal 20 aprile 2021 (ora della costa est degli USA) sarà in modalità di sola lettura. Non verranno apportate modifiche ad altre proprietà o servizi di Yahoo o al tuo account Yahoo. Puoi trovare maggiori informazioni sulla chiusura di Yahoo Answers e su come scaricare i tuoi dati in questa pagina di aiuto.

Marco ha chiesto in Matematica e scienzeMatematica · 1 decennio fa

Excel come generare le combinazioni senza ripetizione?

Qualcuno sa come riempire un foglio excel con tutte le combinazioni senza ripetizione una volta inseriti in due celle n e k con k<n

Aggiornamento:

Simplicius la funzione combinazione(n,k) restituisce solo il numero delle combinazioni, volevo la visualizzazione delle combinazioni possibili ad esempio

5 elementi presi 3 alla volta deve visualizzare

1 2 3

1 2 4

1 2 5

....

3 4 5

1 risposta

Classificazione
  • 1 decennio fa
    Risposta preferita

    Una funzione excel che fa quello che vorresti che io sappia non c'è ma questo non ci impedisce di risolvere il problema, semplicemente ce la scriviamo struttando l'ambiente VBA di escel. Per generare le combinazioni ho solo riadattata in VBA l'algoritmo per generare le combinazioni di n elementi presi r alla volta

    Function comb(k)

    col(k) = col(k - 1)

    While col(k) < n - r + k

    col(k) = col(k) + 1

    If k < r Then

    comb (k + 1) '// richiama ricorsivamente la funzione comb()

    Else

    '// stampa a video il vettore col()

    nr = nr + 1

    For i = 1 To r

    Cells(nr, i) = col(i)

    Next

    End If

    Wend

    End Function

    e viene richiamata quando premi il pulsante genera con

    Private Sub CommandButton1_Click()

    Foglio1.Range("a4:o20000").ClearContents

    nr = 3

    k = 1

    r = Cells(2, 2)

    n = Cells(1, 2)

    comb (k)

    End Sub

    Trovi una copia del foglio excel al link

    http://www.naxa.it/cri/ya/combinazioni.xls

    Dal foglio potrai vedere, entrando in modalità sviluppo, il codice completo che potrà essere certamente migliorato, così com'è non è a prova di idiota, nel senso che qualunque valora inserisci nelle celle b1 e b2 lo accetta, potrai aggiungere la validazione dei dati immessi e cerca di non usare valori che generano milioni di combinazioni poiché non ha dimensioni illimitate.

    Ciao.

Altre domande? Fai una domanda e ottieni le risposte che cerchi.