JavascriptProva

lunedì 30 dicembre 2013

Mescolamento e ordinamento di un ArrayList per ordinare con disposizione casuale dei valori pari

L'ordine dovrebbe essere:
  • mescola l'array di partenza
  • ordina l'array di partenza
così facendo, quelli che hanno pari preferenza vengono messi in ordine casuale.
Creo una funzione per stampare sulla finestra immediata gli array.
    Sub mostra(ByVal arr As ArrayList)
        For n = 0 To arr.Count - 1
            Debug.Print(arr(n).nome & " " & arr(n).turni)
        Next
        Debug.WriteLine("")
    End Sub
Ecco, quindi adesso provo con le mie due procedure di rimescolamento e ordinamento.
         'Rimescolamento casuale della matrice di partenza
        Dim r As New Random
        Dim x As Integer
        Dim temp As persona
        For n = 0 To matrice.Count - 1
            x = r.Next(matrice.Count - n) + n
            temp = matrice(n)
            matrice(n) = matrice(x)
            matrice(x) = temp
        Next


        'ordinamento della matrice
        matrice.Sort()

        mostra(matrice)

Avendo tutti e tre gli elementi la stessa preferenza, di 50, il risultato dovrebbe essere assolutamente casuale.
Mario 0
Giuseppe 0
Luigi 0

Luigi 0
Mario 0
Giuseppe 0

Giuseppe 0
Luigi 0
Mario 0

Giuseppe 0
Mario 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Luigi 0
Giuseppe 0

Giuseppe 0
Mario 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Luigi 0
Mario 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Giuseppe 0
Mario 0
Luigi 0

Giuseppe 0
Mario 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Giuseppe 0
Luigi 0
Mario 0

Luigi 0
Mario 0
Giuseppe 0

Mario 0
Giuseppe 0
Luigi 0

Giuseppe 0
Mario 0
Luigi 0

Giuseppe 0
Mario 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Giuseppe 0
Luigi 0
Mario 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Luigi 0
Giuseppe 0

Luigi 0
Giuseppe 0
Mario 0
credo che non ci sia nessuna sequenza preferenziale...

Adesso impostiamo una differenza di preferenze, dando a Mario una preferenza di 20. Come risultato, la disposizione casuale dovrebbe applicarsi solo a Giuseppe e Luigi, mentre Mario dovrebbe venire sempre per primo...
Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Mario 0
Giuseppe 0
Luigi 0

Sembra funzionare...

Adesso diamo anche a Luigi una preferenza di 20, prevedendo che debba risultare un ordinamento casuale di Mario e Luigi, con Giuseppe sempre per ultimo...
Mario 0
Luigi 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Luigi 0
Mario 0
Giuseppe 0

Mario 0
Luigi 0
Giuseppe 0
Sì... fin qui sembra che ci siamo...

Nessun commento:

Posta un commento