如何创建一个二维数组,其中第一列是 i 和 j 之间的整数,第二列是小于 n 的随机数
就像是a = [[6,4],[7,3],[8,1],[9,1],[10,3],[11,2]]
我知道(i..j).to_a
创建我的第一列并rand(n)
创建我的第二列。
如何创建一个二维数组,其中第一列是 i 和 j 之间的整数,第二列是小于 n 的随机数
就像是a = [[6,4],[7,3],[8,1],[9,1],[10,3],[11,2]]
我知道(i..j).to_a
创建我的第一列并rand(n)
创建我的第二列。
使用可枚举#map
i, j = 6, 11
(i..j).map { |x| [x, rand(10)] }
# => [[6, 8], [7, 6], [8, 4], [9, 9], [10, 0], [11, 3]]
你快到了。使用 amap
将您中的每个项目转换i..j
Range
为Array
具有两个条目的 a:
i,j,n = 4,8,10
a = (i..j).map { |x| [x,rand(n)] }
另一个答案(被海报删除)几乎是正确的,只是缺少一些计算。它在没有评论的情况下得到了相当严厉的否决,我在这里重新发布,对数学进行更正,以便 OP 有一些替代方案:
i, j, n = 6, 11, 10
Array.new( j - i + 1 ) { |x| [ x + i, rand(n)] }
替代答案:
i=10
j=20
n=10
[(i..j).to_a , Array.new(j-i+1){rand(n)} ].transpose