View Single Post
Old 08-12-2007, 23:49   #2
marco.r
Senior Member
 
Iscritto dal: Dec 2005
Città: Istanbul
Messaggi: 1817
Ti serve in pratica una permutazione dei numeri da uno a 90

un metodo semplice e' quello di partire con un array con i valori da 1 a 90, cominciare dalla prima posizione e scambiarla con un'altra a caso (e ottieni il primo valore). Poi passi alla posizione successiva e fai uguale e cosi' via per tutte le posizioni.
Non so il C#, ti offro una versione python che dovrebbe darti cmq l'idea di come funzioni:
Codice:
def tombola_casuale():
     estrazioni = range(1,91)
     for i in range(89):
             j = random.randint(i,89)
             estrazioni[i],estrazioni[j] = estrazioni[j],estrazioni[i]
             yield estrazioni[i]
     yield estrazioni[89]
Se non vuoi star li' a usare gli iteratori in C#, semplicemente invece di ritornare il valore man mano calcola tutto l'array e ritornalo alla fine, e userai l'array risultante per le estrazioni.
__________________
One of the conclusions that we reached was that the "object" need not be a primitive notion in a programming language; one can build objects and their behaviour from little more than assignable value cells and good old lambda expressions. —Guy Steele
marco.r è offline   Rispondi citando il messaggio o parte di esso