使用每个值的随机值创建100个事物的哈希值

时间:2012-07-28 05:51:57

标签: ruby iterator hash

我正在构建一个包含100个项目的哈希,并且我还有一个随机数生成器,可以生成0到100之间的100个随机值。

我想按顺序迭代我的数字0..100并将它们分配给哈希的键。

然后我想迭代100个随机数并将它们分配给哈希值。

hash = {}
(0..100).each {|e| puts e} #just prints out the values
@numbers = 100.times.map{ 0+Random.rand(0..100)}

这就是我到目前为止所得到的。任何帮助将非常感激。谢谢!

2 个答案:

答案 0 :(得分:5)

h = {}
a = (1..100).to_a
100.times { |i| h[i+1] = a.delete_at(Random.rand(a.size)) }

或者:

keys = (1..100).to_a
vals = keys.shuffle
hash = Hash[keys.zip(vals)]

答案 1 :(得分:4)

hash = {}
100.times {|n| hash[n]=rand(101)}

第一行将初始化空哈希(如上所述)。第二行指定0到99作为哈希的键,以及0到100之间的随机值。

times是属于Integer类的方法。给定一个块,它将传递每个连续的整数n次。