programacion procedimientos numeros métodos matrices ejemplo con comparacion codigo basica asignacion ruby arrays random shuffle

numeros - procedimientos en ruby



¿Cómo ordenar aleatoriamente(codificar) una matriz en Ruby? (5)

¡La biblioteca de extensiones de Ruby Facets tiene un módulo Random que proporciona métodos útiles que incluyen el orden shuffle y la shuffle! a un grupo de clases principales que incluyen Array , Hash y String .

Solo ten cuidado si estás usando Rails ya que experimenté algunos desagradables enfrentamientos en la forma en que su monopatching chocó con Rails ...

Me gustaría tener mis elementos de la matriz codificados. Algo como esto:

[1,2,3,4].scramble => [2,1,3,4] [1,2,3,4].scramble => [3,1,2,4] [1,2,3,4].scramble => [4,2,3,1]

y así sucesivamente, al azar


Código de la gema Backports para solo la matriz para Ruby 1.8.6. Ruby 1.8.7 o superior está integrado.

class Array # Standard in Ruby 1.8.7+. See official documentation[http://ruby-doc.org/core-1.9/classes/Array.html] def shuffle dup.shuffle! end unless method_defined? :shuffle # Standard in Ruby 1.8.7+. See official documentation[http://ruby-doc.org/core-1.9/classes/Array.html] def shuffle! size.times do |i| r = i + Kernel.rand(size - i) self[i], self[r] = self[r], self[i] end self end unless method_defined? :shuffle! end


Construido ahora:

[1,2,3,4].shuffle => [2, 1, 3, 4] [1,2,3,4].shuffle => [1, 3, 2, 4]


Para ruby ​​1.8.6 (que no tiene shuffle incorporado):

array.sort_by { rand }


Para ruby ​​1.8.6 como el ejemplo de sepp2k, pero aún desea usar el método "shuffle".

class Array def shuffle sort_by { rand } end end [1,2,3,4].shuffle #=> [2,4,3,1] [1,2,3,4].shuffle #=> [4,2,1,3]

aclamaciones