new files
This commit is contained in:
parent
3af7344581
commit
86c034bb8b
1364 changed files with 21352 additions and 0 deletions
21
Task/Knuth-shuffle/Ruby/knuth-shuffle-1.rb
Normal file
21
Task/Knuth-shuffle/Ruby/knuth-shuffle-1.rb
Normal file
|
|
@ -0,0 +1,21 @@
|
|||
class Array
|
||||
def knuth_shuffle!
|
||||
j = length
|
||||
i = 0
|
||||
while j > 1
|
||||
r = i + rand(j)
|
||||
self[i], self[r] = self[r], self[i]
|
||||
i += 1
|
||||
j -= 1
|
||||
end
|
||||
self
|
||||
end
|
||||
end
|
||||
|
||||
r = Hash.new(0)
|
||||
100_000.times do |i|
|
||||
a = [1,2,3].knuth_shuffle!
|
||||
r[a] += 1
|
||||
end
|
||||
|
||||
r.keys.sort.each {|a| puts "#{a.inspect} => #{r[a]}"}
|
||||
9
Task/Knuth-shuffle/Ruby/knuth-shuffle-2.rb
Normal file
9
Task/Knuth-shuffle/Ruby/knuth-shuffle-2.rb
Normal file
|
|
@ -0,0 +1,9 @@
|
|||
class Array
|
||||
def knuth_shuffle!
|
||||
(length - 1).downto(1) do |i|
|
||||
j = rand(i + 1)
|
||||
self[i], self[j] = self[j], self[i]
|
||||
end
|
||||
self
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue