我正在构建一个包含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)}
这就是我到目前为止所得到的。任何帮助将非常感激。谢谢!
答案 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
次。