2

テストのコンテキストでは、配列の要素の特定の割合を取得する必要があります。

私のリクエストの仕様は、このテストで説明できます。

def test_percent_elements
  array = [1,2,3,4,5,6,7,8,9,10]

  assert_equal([], array.percent_elements(0))
  assert_equal([1], array.percent_elements(1))
  assert_equal([1], array.percent_elements(10))
  assert_equal([1,2], array.percent_elements(11))
  assert_equal([1,2,3,4,5], array.percent_elements(50))
  assert_equal([1,2,3,4,5,6,7,8,9,10], array.percent_elements(100))
end

Rubyでこれを解決する最良の方法はどれですか?

4

2 に答える 2

7

私は書くだろう:

class Array
  def percent_elements(percent)
    take((size * percent / 100.0).ceil)
  end
end
于 2013-03-26T16:38:08.290 に答える
0

私の実際のアプローチはこれです:

class Array
  def percent_elements(percent)
    total = self.length
    elements = ((total * percent) / 100.to_f).ceil
    self[0, elements]
  end
end
于 2013-03-26T16:29:11.200 に答える