Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - combinazioni ridotte superenalotto [VB6]
Forum - Visual Basic 6 - combinazioni ridotte superenalotto [VB6]

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
jigen80 (Normal User)
Newbie


Messaggi: 18
Iscritto: 26/02/2009

Segnala al moderatore
Postato alle 14:15
Giovedì, 26/02/2009
Questo topic è stato chiuso dal moderatore

Ciao a tutti,
ho creato un applicazione in vb6 capace di calcolare le 622.614.630 combinazioni del superenalotto semplicemente indentando 6 cicli FOR.
Premettendo che non sono un "seper esperto" nè di VB6 (sono autodidatta e mi diletto) nè di calcolo combinatorio (ho qualche nozione) vorrei porvi qualche domanda alla luce di calcoli da me fatti che ora vi espliciterò per chiarezza.
Vorrei generare una routine in grado di ridurre il sistema di n-1, n-2 ed n-3, cioè, per intenderci, fare in modo che, giocando un TOT di numeri ed ammettendo che la sestina vincente rientri fra questi TOT numeri mi venga assicurata MATEMATICAMENTE la garanzia di aver fatto, ripettivamente, ALMENO un 5, un 4 ed un 3.
Dal calcolo delle probabilità so per certo che per far ciò le combinazioni totali dovrebbero essere, giocando tutti e 90 i numeri:
5-->1.235.346,488
4-->11.906,954
3-->326,715
Prescindendo dal fatto che il numero delle combinzioni risultanti deve essere per forza un INTERO, come posso fare a generare queste combinazioni, sempre per indentazioni di cicli FOR?
So che il problema è un pò un "casotto" ma vi ringrazio comunque in anticipo per le risposte, anche negative.

PM
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 15:28
Giovedì, 26/02/2009
non ti ho capito bene....
vuoi controllare se nella sestina sono usciti un 5 un 4 e un 3?

e perchè dici "cicli FOR" quando ne basta 1?

PM
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 16:05
Giovedì, 26/02/2009
I cicli si dicono "anniddati", non indendati ...

Spiega un po' meglio il problema, magari facendo un esempio con dei numeri forniti in input ...

Ultima modifica effettuata da theprogrammer il 26/02/2009 alle 18:02
PM
Avatar
jigen80 (Normal User)
Newbie


Messaggi: 18
Iscritto: 26/02/2009

Segnala al moderatore
Postato alle 17:56
Giovedì, 26/02/2009
ok, cercherò di spiegarmi meglio.
Tutte le sestine possibili giocando TUTTI E 90 i numeri sono generate con questi 6 cicli FOR "annidati":

for n1=1 to 85
  for n2=a1+1 to 86
    for n3=n2+1 to 87
      for n4=n3+1 to 88
        for n5=n4+1 to 89
          for n6=n5+1 to 90
            .
            .
            .
     next n6
        next n5
      next n4
    next n3
  next n2
next n1

Ora, supponiamo che io avessi già creato una SUB SPOGLIO che mi consente di controllare la mia sestina con tutte le possibili sestine generate con il codice di cui sopra.
Sicuramente allora una qualsiasi sestina rappresenterebbe una combinazione vincente poichè ho generato tutte le combinazioni possibili (622614630).
Quello che vorrei fare è cercare di "ridurre" queste combinazioni totali avendo però la garanzia che, inserendo la mia generica sestina, è MATEMATICO che io realizzi un 5 (per il numero teorico di combinazioni a garanzia 5 si veda il post precedente).
Analogamente poi vorrei ancora effettuare altre riduzioni in modo tale da ottenere sistemi integrali a garnzia 4 e garanzia 3.
Spero di essere stato un pò più chiaro.
Grazie mille dell'attenzione.
Aspetto news.

PM
Avatar
GrG (Member)
Guru^2


Messaggi: 3430
Iscritto: 21/08/2007

Segnala al moderatore
Postato alle 19:55
Giovedì, 26/02/2009
lol io sono un pò duro a capire...spero che almeno theprogrammer ti abbia capito xD...
Da quello che ho capito...
il tuo programma genera tantissime combinazioni di possibili "estrazioni" (cioè sestine) e tu grazie a calcoli matematici vorresti ridurre il numero di queste combinazioni?

E comunque la sestina genera sei numeri casuali? E come, ordinati ad esempio in ordine ascendente o puramente casuali?

PM
Avatar
jigen80 (Normal User)
Newbie


Messaggi: 18
Iscritto: 26/02/2009

Segnala al moderatore
Postato alle 20:07
Giovedì, 26/02/2009
Scusami GrG, se non sono ancora stato chiaro.
Il mio programma genera TUTTE le possibili sestine, in modo che una qualunque sestina di prova generi sicuramente un 6.
Le sestine generate non sono propriamente casuali. Ad esempio si parte con:
1-2-3-4-5-6
1-2-3-4-5-7
1-2-3-4-5-8
1-2-3-4-5-...90

poi, alla fine dell'ultimo ciclo for, continua così

1-2-3-4-6-7
1-2-3-4-6-8
1-2-3-4-6-9
1-2-3-4-6-...90

e via dicendo.

Quindi, ricapitolando, con il mio programmino genero tutte le combinazioni possibili in maniera tale che una QUALSIASI combinazione di prova, ad esempio estratta a caso dalla tombola, sia CERTAMENTE presente nelle combinazioni da me generate. Ho creato così un sistema che si dice "a garanzia 6", o "integrale".
Quello che vorrei fare è generare, allo stesso modo, un certo numero di combinazioni tali che, una generica sestina, estratta sempre a caso dalla tombola, mi dia la CERTEZZA di fare 5. Vorrei cioè realizzare un "sistema a garanzia 5", o altrsì detto "ridotto di n-1". Logicamente, creare un sistema del genere mi serve perchè SICURAMENTE genererei un numero di combinazioni che sono sicuramente inferiori a quelle del sistema a garanzia 6. Per la precisione, un sistema a garanzia 5 mi dovrebbe fornire, all'uscita di quei 6 for annidiati un numero di ombinazioni pari a circa 1.235.347 contro le 622.614.630 attualmente generate.
Spero ora di essere stato chiaro...altrimenti non saprei proprio più come spiegarmi.
Perdonami per la mia esigua capacità espressiva.
Grazie comunqe per l'attenzione.

PM
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 20:10
Giovedì, 26/02/2009
Ti ho capito ... ma il fatto e' che non ho esperienza di questo tipo di problemi e non so come si genera un

ridotto n-1


PM
Avatar
jigen80 (Normal User)
Newbie


Messaggi: 18
Iscritto: 26/02/2009

Segnala al moderatore
Postato alle 20:19
Giovedì, 26/02/2009
Ti ringrazio lo stesso per l'interessamento Theprogrammer.
Resto comunque in attesa di proposte in merito sperando che qualcuno che ne capisca più di me e te un giorno si faccia sentire
:heehee:
Mille grazie ancora per il supporto, a presto.

PM
Avatar
jigen80 (Normal User)
Newbie


Messaggi: 18
Iscritto: 26/02/2009

Segnala al moderatore
Postato alle 20:27
Giovedì, 26/02/2009
A chiunque potesse servire posto l'esempio di calcolo combinatorio che potrebbe meglio chiarire le idee:

Qual è la probabilità di fare "5"?
Io gioco una sestina, ad esempio 10, 20, 30, 40, 50, 60, e "spero che la nella sestina vincente ci siano 5 fra i miei numeri".
I casi possibili sono le sestine non ordinate costruibili coi 90 numeri 1, 2, ... 90, cioè (90|6) mentre i casi favorevoli sono tanti quante le sestine costruibili utilizzando 5 fra i miei 6 numeri, insieme con 1 degli 84 numeri che non ho giocato, cioè (6|5), ovvero 6x84 (6 = numero dei modi in cui, fra i miei 6 numeri, posso sceglierne 5).
La probabilità richiesta è pertanto 6x84/(90|6)=0,000000809 e dunque le combinazioni possibili sono 0,000000809^-1 = 1235347 circa

(Se possedete una calcolatrice TEXAS Instrument l'operazione (90|6) può essere effettuata nel seguente modo:
90 3rd nCr 6

Grazie ancora a tutti

PM
Pagine: [ 1 2 3 4 ] Precedente | Prossimo