2015-10-30 60 views
2

只使用红宝石我想如何生成包含另一个数组元素的多个数组?

  • 产生随机数

  • 阵列创建充满样品的X量从原来的号码列表阵列的新的2维数组包含x量。

这是我...

a = 1000.times.map{rand(100)}.to_a 
b = 5.times.map{a.sample} 
#=> [3, 96, 23, 45, 41] 

我基本上要能够产生什么样我的B,乘以x量一样。

这可能吗?

谢谢大家的意见!

回答

0

一个班轮做你想做什么。

3.times.map {2.times.map {rand 1000} } 
#=> [[267, 476], [109, 950], [345, 137]] 
+0

这正是我所期待的。谢谢!! – jslice

0

我目前没有安装Rails,所以这里是一个纯粹的Ruby解决方案。

a = (0..1000).to_a.map! { rand(100) } 
x = 2 
b = (0..x).to_a.map! { a.sample(x) } 
# [[83, 73], [55, 93], [57, 18]] 
1

只是包装你B的定义在另一个地图:

a = 1000.times.map{rand(100)} # to_a is unnecessary here, map returns an array 
b = 5.times.map{5.times.map{a.sample}} 
+1

安德鲁,谢谢你留在我的答复,我随后删除的评论。请注意,如果OP的数组“a”在程序中的其他地方使用,则只有您正确答案是不正确的,但这只是明显的错误。例如,如果第一个数组包含1,000'1'(不太可能如此),那么'b'总是只有'1',而我只是在最初指定的时间间隔内生成随机值。 –

相关问题