From: Ari Brown Date: 2007-04-24T11:16:42+09:00 Subject: Re: [SPAM] Re: Shuffle Method On Apr 22, 2007, at 11:15 PM, eden li wrote: > Why not just do a random sort instead? >>> some_array = ['cat', 'dog', 'fun', 'zoo'] > => ['cat', 'dog', 'fun', 'zoo'] >>> some_array.sort { rand(3) - 1 } > => ["zoo", "dog", "fun", "cat"] I wanted to write my own method to better understand how it works. Plus because it WAS fun, until it decided it didn't want to work. P.S. = why rand(3) - 1? Why not just some other rand(x)? >> --------------------------------------------------------------| >> SOURCE 1 >> --------------------------------------------------------------| >> some_array= ['cat', 'dog', 'fun', 'zoo'] >> >> def shuffle some_array >> recurssive_shuffle some_array >> end >> >> def recurssive_shuffle some_array >> n = some_array.length >> helper_array = [] >> new_array = [] >> while n != 0 >> r = rand(n) >> while some_array.length != (r + 1) >> helper_array.push some_array.pop >> end >> new_array.push some_array.pop >> n = (n - 1) >> helper_array.each do |item| >> some_array.push item >> end >> end >> puts new_array >> end >> >> shuffle some_array >> --------------------------------------------------------------| >> SOURCE 2 >> --------------------------------------------------------------| >> some_array = ['cat', 'dog', 'fun', 'zoo'] >> >> def shuffle some_array >> recurssive_shuffle some_array >> end >> >> def recurssive_shuffle some_array >> n = some_array.length >> helper_array = [] >> new_array = [] >> while n != 0 >> r = rand(n) >> while some_array.length != (r + 1) >> helper_array.push some_array.pop >> puts 'Array' >> puts helper_array >> puts >> end >> new_array.push some_array.pop >> n = (n - 1) >> helper_array.each do |item| >> some_array.push item >> end >> end >> puts new_array >> end >> >> shuffle some_array >> >> ---------------------------------------------------------------| >> ~Ari >> "I don't suffer from insanity. I enjoy every minute of it" --1337est >> man alive > > > ---------------------------------------------------------------| ~Ari "I don't suffer from insanity. I enjoy every minute of it" --1337est man alive