我在 Ruby 中有多个长度可变的数组,长度从 1 到 40 不等:
@items 是一个典型的数组,其长度可以从 1 到 40,例如:
我想随机将数组分成长度为1、2或3的小数组,得到如下结果(例如)。
@items 是一个典型的数组,其长度可以从 1 到 40,例如:
@items = [1, 2, 3, 4, 5, 6]
我想随机将数组分成长度为1、2或3的小数组,得到如下结果(例如)。
@items = [[1, 2],[3],[4,5,6]]
或者
@items = [[1],[2, 3],[4],[5,6]]
等等
我知道你可以使用@items.each_slice(3)来拆分数组......其中3是固定长度。但是我想随机拆分长度不同的大型数组为大小为1、2或3的数组... 最好的方法是什么?
Kernel#rand
只接受一个 fixnum max,而不是一个范围。@items.push(items.shift(1+rand(3))) until items.empty?
可以在旧版本的 Ruby 中使用。 - dbenhur