Ruby Array to Histogram :Как сгруппировать числа по диапазону?

Я пытаюсь сгруппировать массив целых чисел в хеш на основе того, где отдельные значения попадают в диапазон. В основном я хочу преобразовать массив в гистограмму с фиксированной шириной -.

Пример:

values = [1,3,4,4,4,4,4,10,12,15,18]
bin_width = 3

Мне нужно сгруппировать значения массива в гистограмму на основе диапазона -, где они попадают в ведро шириной 3 -единиц, например:

{'0..2'=>[1,3],'3..5'=>[4,4,4,4,4],'6..8'=>[],'9..11'=>[10]....

Есть ли простое однострочное решение (, может быть что-то вродеvalues.group_by{|x| #range calc})это будет работать здесь?

7
задан thoughtpunch 31 July 2012 в 13:40
поделиться