Arrays 如何生成包含来自另一个数组的元素的多个数组?

Arrays 如何生成包含来自另一个数组的元素的多个数组?,arrays,ruby,Arrays,Ruby,使用Ruby,我正在尝试 生成一个随机数数组 创建一个新的二维数组,该数组包含x个数组,其中填充了来自原始数字列表的x个样本 这就是我所拥有的 a = 1000.times.map{rand(100)}.to_a b = 5.times.map{a.sample} #=> [3, 96, 23, 45, 41] 我基本上希望能够生成我在b,x中所做的次数 这可能吗 谢谢大家的评论 我目前没有安装Rails,所以这里有一个纯Ruby解决方案 a = (0..1000).to_a.map

使用Ruby,我正在尝试

  • 生成一个随机数数组

  • 创建一个新的二维数组,该数组包含x个数组,其中填充了来自原始数字列表的x个样本

这就是我所拥有的

a = 1000.times.map{rand(100)}.to_a
b = 5.times.map{a.sample}
#=> [3, 96, 23, 45, 41]
我基本上希望能够生成我在b,x中所做的次数

这可能吗


谢谢大家的评论

我目前没有安装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]]

只需将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}}

做你想做的事

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

这正是我想要的。非常感谢。安德鲁,谢谢你在我的回答上留下的评论,我后来删除了。请注意,如果OP的数组
a
在程序中的其他地方使用,那么答案是不正确的,但这完全是错误的。例如,如果第一个数组包含1000个
1
(尽管可能不太可能),
b
总是只有
1
,而我只是在最初指定的间隔内生成随机值。