177 messaggi dal 15 dicembre 2005
Gentilissimi,
potreste suggerirmi una funzione che mi presenti di volta in volta l'alfabeto random?

Ho prova con altre funzioni ma non mi permette quello di cui ho bisogno.

Saluti e grazie
Sinceramente non ho capito cosa intendi per "alfabeto random". Puoi spiegare meglio cosa intendi fare?

Matteo Casati
GURU4.net
177 messaggi dal 15 dicembre 2005
Gentilissimo,
avrei necessità di avere semplicemente questo:

ad esempio l'alfabeto è di 3 lettere A, B e C.

Ogni volta che accedo le lettere devono avere un ordine sparso ad esempio C, B, A, poi C, A, B etc.

Spero di essere stato chiaro stavolta.
Intanto ti ringrazion tanto per l'attenzione.

Io con la classe Random non ci sono riuscito...

Saluti
vaccarasso ha scritto:
Ogni volta che accedo le lettere devono avere un ordine sparso

Capito! In pratica ti serve una funzione di "Shuffle". Di seguito una possibile implementazione general-purpose che, data una lista generica di oggetti (List<T>) ne crea una copia con gli elementi "rimescolati":
public static List<T> Shuffle<T>(List<T> list)
{
    List<T> l = new List<T>(list);
    Random random = new Random();
    for (int i = l.Count - 1; i > 1; --i)
    {
        int pos = random.Next(0, i);
        T item = l[i];
        l[i] = l[pos];    // move random num to end of list.
        l[pos] = item;
    }
    return l;
}

Nel tuo caso ti basta creare una lista con i caratteri dell'alfabeto che ti serve e passarla alla funzione.
HTH

Matteo Casati
GURU4.net
177 messaggi dal 15 dicembre 2005
Gentilissimo e grazie per il suggerimento.

PS: Se hai già pronta la versione VB potresti inviarmela? Se devi perdere tempo a riscriverla lascia stare, già sei stato molto cortese.

Saluti e di nuovo
177 messaggi dal 15 dicembre 2005
Gentilissimi,
ho trovato in vb un sito che me ne presenta diversi esempi di funzioni Shuffle

http://www.visual-basic.it/articoli/dcNumberLib.htm

Saluti
301 messaggi dal 31 maggio 2006
ciao


Se hai già pronta la versione VB potresti inviarmela? Se devi perdere tempo a riscriverla lascia stare, già sei stato molto cortese


guarda qua

http://www.developerfusion.com/tools/convert/csharp-to-vb/

Public Shared Function Shuffle(Of T)(ByVal list As List(Of T)) As List(Of T) 
    Dim l As New List(Of T)(list) 
    Dim random As New Random() 
    For i As Integer = l.Count - 1 To 2 Step -1 
        Dim pos As Integer = random.[Next](0, i) 
        Dim item As T = l(i) 
        l(i) = l(pos) 
        ' move random num to end of list. 
        l(pos) = item 
    Next 
    Return l 
End Function 

Modificato da gghi il 28 novembre 2008 11.04 -
177 messaggi dal 15 dicembre 2005
Grazie, sei gentilissimo.

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.