Newsgroup: it.hobby.lotto
Titolo: Per Pulvirenti e DevilD - indicizzazione di vettori

Posto, in notevole ritardo sull'evolversi del thread sul trattamento di
vettori contenenti cinquine,
ma sperando serva ancora il contributo, la soluzione proposta dal mio amico
Saltafossi,
bravo in matematica ma ritroso ad affacciarsi nulla rete.
Saluti,
milton
La soluzione proposta da Devil D. e formalmente corretta, ma tanto vale
usare la seguente
routine, veramente semplice  (intendendo ordinati i numeri componenti la
cinquina):
  Dim conta as long
  Dim n1 as integer, n2 as integer, n3 as integer, n4 as integer, n5 as
integer
  Dim i as integer, j as integer, k as integer, m as integer, n as integer
  conta=0
  for i=1 to 86
   for j=i+1 to 87
    for k=j+1 to 88
     for m=k+1 to 89
       for n=m+1 to 90
        conta=conta+1
        if i=n1 and j=n2 and k=n3 and m=n4 and n=n5 then
          ...............
        endif
       next n
      next m
     next k
    next j
   next i
Ecco poi le formule di indice per soli AMBI e TERNI (sono dell'opinione che
gia' quella dei
terni sia scarsamente utile e ritengo che  l'indicizzazione debba aversi con
una formula
esplicita e non mediante un algoritmo):
indice di ambo = 90*(n1-1) - n*(n-1)/2 + n2-n1
indice di terno = [90*90*(n1-1)/2 - 90*(n1*n1-1)/2 + n1*(n1*n1-1)/6] +
+ [90*(n2-2)-(n2-1)*(n2-2)/2+91-n2 - 90*n1+n1*(n1+1)/2] + (n3-n2)
(salvo errori di battitura)
Saluti,
Saltafossi

    next i
ma scusa...
tu pensi che questa routine sia più efficiente (più rapida nel calcolo) di
quella esposta da Devil ?
Io penso di no!
Già mi lamentavo di quella che era troppo lenta immaginiamoci se si possono
accettate più di 21 milioni di confronti (43 milioni di cinquine / 2 = media
di confronti) per ogni cinquina che si vuole individuare!! :-(((
La soluzione migliore per ottenere dei calcoli efficienti è nelle tabelle di
look-up, se invece si vuole una formula che calcoli la posizione
saltuariamente va bene quella di Devil, ma mai utilizzerei questo algoritmo
sopra esposto!
Ciao
P.S. Comunque ti ringrazio per la tua partecipazione alla discussione, vedrò
di porre tra qualche giorno un altro quesito.
--
Alessandro Pulvirenti
ale...@cedss.it
Sito Lottovelox: 
http://www.cedss.it/lottovelox/

    next i
Visivamente ti sembrerà più semplice, e per questo pensi sia più veloce.....
Però il "tuo" metodo è legato alla cinquina, mi spiego:
se inseriamo la cinquina 1-2-3-4-5 tale sistema effettua un solo ciclo
(velocissimo non c'è che dire), ma se inserisco la cinquina 86-87-88-89-90,
tale programmino effettua 43949268 cicli (accendi il PC e..... Buonanotte!)
Mentre nel primo caso il mio programma eseguirebbe 0 cicli ed una somma, nel
secondo caso 85 cicli ed una somma!!! Vedi la differenza?
Prendiamo l'estrazione di ieri per esempio. Sulla ruota di Roma è uscito:
RM     76-85-70-59-82
che ordinata in crescente diventa: RM   59-70-76-82-85
Bene il tuo programma impiegherebbe 43774115 cicli, il mio 80!!!
Spero che ti sia chiaro....
Bye Bye
DEVIL D.

Bene, vedo che nonostante il ritardo l'argomento e' ancora d'interesse ed il
dibattito puo' servire a qualcuno.
Il confronto e' come sempre una panacea.
Giro le vostre osservazioni all'amico Saltafossi.
Saluti,
milton
milton ha scritto nel messaggio ...

