【发布时间】:2019-09-20 00:10:07
【问题描述】:
所以我制作了一个随机数生成器,它应该计算数字的频率并按排序顺序显示它们。我正在尝试使用 .sort 但我无法弄清楚将它放在哪里以按顺序对哈希值进行排序。到目前为止我所拥有的:
MIN_VALUE = 1
count = 0
puts "Enter a number of random integers to generate"
resp = gets.to_i
p "number of integers generated is #{resp}"
puts "Now enter the maximum value the integers can be"
max_value = gets.to_i
p "max value is set to #{max_value}"
size = Array.new(resp)
while (count < resp)
int_value = (rand(MIN_VALUE..max_value))
size.push(int_value)
count = count + 1
end
puts size
freq = Hash.new(0)
size.each { |x| freq[x] += 1 }
freq.map{ |key, value| "#{key}x#{value}" }.join(',')
freq.each do |key,value|
puts "Frequency of #{key} is: #{value}"
end
非常感谢任何帮助!
【问题讨论】:
-
How to sort a Ruby Hash by number value? 的可能重复项。使用
freq.sort_by {|k,v| -v}进行降序排序。
标签: ruby