相关疑难解决方法(0)

如何将Ruby数组拆分(块)成X个元素的一部分?

我有一个阵列

foo = %w(1 2 3 4 5 6 7 8 9 10)
Run Code Online (Sandbox Code Playgroud)

如何将其拆分或"分块"为更小的数组?

class Array
  def chunk(size)
    # return array of arrays
  end
end

foo.chunk(3)
# => [[1,2,3],[4,5,6],[7,8,9],[10]]
Run Code Online (Sandbox Code Playgroud)

ruby arrays

167
推荐指数
2
解决办法
11万
查看次数

如何在Ruby中块化数组

在Ruby 1.8.6中,我有一个数组,比如100,000个用户id,每个用户id都是一个int.我想在这些用户ID上执行一段代码,但我想以块的形式执行.例如,我想一次处理100个.我怎样才能尽可能简单地实现这一目标?

我可以做类似下面的事情,但可能有一个更简单的方法:

a = Array.new
userids.each { |userid|
  a << userid
  if a.length == 100
    # Process chunk
    a = Array.new
  end
}
unless a.empty?
  # Process chunk
end
Run Code Online (Sandbox Code Playgroud)

ruby arrays

60
推荐指数
2
解决办法
3万
查看次数

如何将数组拆分为n等于或接近相等的数组?

我有一个大型数组,我想将其均匀地分成n个数组.

  • 我有一个包含100个元素的数组.我想将它平均分成4个数组.这将给我4个阵列,每个25个元素.
  • 我有一个包含100个元素的数组.我想将它平均分成3个数组.由于我无法将其均匀地分割为子数组,因此我需要类似于33个元素的2个数组和34个元素的一个数组.
  • 我有一个包含2个元素的数组.我想将它平均分成4个数组.由于我无法均匀地拆分它并且某些数组将是空的,所以我想要2个1个数组和2个空数组的数组.

我尝试使用each_slice,但只根据传递给它的数字参数将数组切成小部分.

我怎样才能做到这一点?

ruby arrays

0
推荐指数
1
解决办法
192
查看次数

将数字拆分为相等的部分或最接近的部分

我有一个随机数,我想把它分成几个部分(加数),条件是一个部分不能超过20,部分必须尽可能彼此接近.

例如,如果我的随机数为41,则加数应为14,14,13.如果随机数为60,则加数应为20,20,20.如果随机数为21,则加数应为11和10,依此类推.

我的代码是在Ruby(Rails)中,所以我最欣赏一个答案,它在Ruby中提供了一个有效的实现,尽管也欢迎使用伪代码或其他编程语言.

这是我发现的数组,但我真的需要用数字来做这件事:" 将数组拆分成红宝石中的相等部分 "

ruby math ruby-on-rails

-3
推荐指数
1
解决办法
1877
查看次数

标签 统计

ruby ×4

arrays ×3

math ×1

ruby-on-rails ×1