ruby - 将 ruby​​ 中的数组拆分为多个随机大小的较小数组的最佳方法是什么

标签 ruby arrays random slice

我有多个 ruby​​ 数组,长度从 1 到 40 不等:

@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 的数组大小......实现此目的的最佳方法是什么?

最佳答案

items, @items = @items.dup, []
@items.push(items.shift(rand(1..3))) until items.empty?

关于ruby - 将 ruby​​ 中的数组拆分为多个随机大小的较小数组的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15513108/

相关文章:

ruby-on-rails - Ruby on Rails 教程 : Defining a hash with symbol keys

python - 如何为 scikit-learn 播种随机数生成器?

C 试图修复无限循环

javascript - 比较 JavaScript 中的对象数组

c - 使用数组计算数字的百分比

python - Numpy:为矩阵的每一列选择特定行的值

mysql - 使用两个参数排序时优化 MySQL 随机性

ruby - 使用私有(private) attr_accessor 时,为什么 self.attribute= 起作用,而 self.attribute 不起作用?

ruby - 使用 JRuby 是否意味着在所有应用程序上复制 Ruby?

iphone - 如何使用 RubyMotion 进行本地化?