È soltanto un Pokémon con le armi o è un qualcosa di più? Vieni a parlarne su Award & Oscar!
 
Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

calcolo combinazioni

Ultimo Aggiornamento: 20/05/2018 14:34
Post: 1
Registrato il: 18/05/2018
Città: MIRANO
Età: 42
Utente Junior
2016
OFFLINE
18/05/2018 20:35

salve a tutti sto cercando una formula per calcolare delle combinazioni semplici non ripetitive di 90 elementi praticamente dal numero 1 al 90, mi servono tutte le combinazioni formate da 6 elementi fino ad esaurire tutti i 90 numeri alla fine dovrebbero uscre 622.614.630 combinazioni... so chè è un numero molto alto... in excel ci stanno? non sono molto esperto di excel... grazie a tutti
Post: 3.481
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
18/05/2018 21:54

In Excel ci sono 1.048.576 righe
6 elementi in 10 numeri = 210
6 elementi in 20 numeri = 38.760
6 elementi in 30 numeri = 593.775
6 elementi in 35 numeri = errore finite le righe
Se non sbaglio =(90*89*88*87*86*85)/ (5*4*3*2*1) .... =3.735.687.780

EDIT, intanto mi correggo
=(90*89*88*87*86*85)/(6*5*4*3*2*1)= 622.614.630 righe
Per i più bravi. Mi farebbe piacere vedere, come fareste per questo "quesito" di 594 colonne. Interessa pure la velocità del codice (non quella del PC), ..un codice che fà meno operazioni possibili?

[Modificato da raffaele1953 19/05/2018 16:05]
Excel 2013
Post: 3.485
Registrato il: 28/06/2011
Città: AGORDO
Età: 70
Utente Master
2013
OFFLINE
20/05/2018 14:34

Scrivere in A1:A90 i numeri (per 594 colonne, ci metterà alcune ore). Io non l'ho eseguito per intero
Arrivato alla riga 1048576, appare un MSG, premere CTRL+ALT+Pause Stamp/Fine per fermare il VBA (oppure eliminate subito la riga)
vb
Sub Combina()
Dim a, b, c, d, e, f, rg, Cc
rg = 1
Cc = 2
Columns("B:XFD") = ""
    diff = ""
    Iniz = Time
Application.Calculation = xlCalculationManual
For a = 1 To 85
For b = a + 1 To 86
    For c = b + 1 To 87
        For d = c + 1 To 88
            For e = d + 1 To 89
                For f = e + 1 To 90
If rg > 1048576 Then
    Cc = Cc + 1
    rg = 1
    '.........Al Msg, premere CTRL+ALT+Pause Stamp/Fine per fermare
    MsgBox "Inizio nuova colonna "
End If
Cells(rg, Cc) = Cells(a, 1) & "-" & Cells(b, 1) & "-" & Cells(c, 1) & "-" & Cells(d, 1) & "-" & Cells(e, 1) & "-" & Cells(f, 1)
rg = rg + 1
                Next
            Next
        Next
    Next
Next
Next
Application.Calculation = xlCalculationAutomatic
  Fine = Time
    diff = Format(Fine - Iniz, "hh:mm:ss")
    MsgBox ("Tempo impiegato   " & diff)
End Sub
Excel 2013
Vota: 15MediaObject5,0013 1
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
calcolo e scrittura combinazioni (19 messaggi, agg.: 08/05/2020 01:58)
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 05:00. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com