Randomizzazione degli elementi di un array
Domanda
Ho una matrice @number = [1,2,3,4,5,6,7,8,9]
Ora, voglio randomizzare il contenuto dell'array...qualcosa come ad esempio: [5,3,2,6,7,1,8]
Per favore guidami come procedere.
Soluzione
Utilizzare il metodo shuffle
...
irb(main):001:0> [1,2,3,4,5].shuffle
=> [3, 4, 2, 5, 1]
Altri suggerimenti
il comando shuffle
restituisce una versione randomizzato di un array
es:
[1,2,3].shuffle => [2,3,1]
[1,2,3,4,5,6,7,8,9].sort_by {rand}[0,9]
=> [5, 7, 3, 8, 9, 4, 2, 1, 6]
Se stai usando la vecchia versione di Ruby...funzionerà
def randomize(array)
b = []
array.length.downto(1) { |n|
b.push array.delete_at(rand(n))
}
b
FINE
A = [1,2,3,4,5] b = randomizza (a) stampa b
loop n times
i = random array index
j = random array index
swap elements i and j
end
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow