Ruby 创建一个包含100个事物的散列,每个值具有随机值

Ruby 创建一个包含100个事物的散列,每个值具有随机值,ruby,iterator,hash,Ruby,Iterator,Hash,我正在构建一个包含100个项目的散列,我还有一个随机数生成器,可以生成100个介于0和100之间的随机值 我想按连续顺序遍历我的数字0..100,并将它们分配给散列的键 hash = {} (0..100).each {|e| puts e} #just prints out the values @numbers = 100.times.map{ 0+Random.rand(0..100)} 然后我想迭代100个随机数,并将它们分配给散列值 hash = {} (0..100).each {

我正在构建一个包含100个项目的散列,我还有一个随机数生成器,可以生成100个介于0和100之间的随机值

我想按连续顺序遍历我的数字0..100,并将它们分配给散列的键

hash = {}
(0..100).each {|e| puts e} #just prints out the values
@numbers = 100.times.map{ 0+Random.rand(0..100)}
然后我想迭代100个随机数,并将它们分配给散列值

hash = {}
(0..100).each {|e| puts e} #just prints out the values
@numbers = 100.times.map{ 0+Random.rand(0..100)}
这就是我到目前为止得到的。任何帮助都将不胜感激。谢谢

hash = {}
100.times {|n| hash[n]=rand(101)}
第一行将初始化空哈希(如上所述)。第二行指定0到99作为散列的键,并指定0到100之间的随机值

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

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


有了这个,你可以多次得到相同的数字。如果我理解正确的话,他只想要1到100之间的每个数字一次。@Misha:没错。我无法从这个问题中确定重复值是否可以接受。如果不是,那么您的解决方案是正确的。