我試圖根據各個值落在一個範圍內的位置將一個整數數組分組爲一個散列。基本上我想要將數組轉換爲固定寬度的直方圖。Ruby Array to Histogram:如何按範圍對數字進行分組?
實施例:
values = [1,3,4,4,4,4,4,10,12,15,18]
bin_width = 3
我被它們落入3單位寬桶像這樣數組值成基於範圍的historgram需要組:
{'0..2'=>[1,3],'3..5'=>[4,4,4,4,4],'6..8'=>[],'9..11'=>[10]....
是有一個簡單的一行解決方案(可能類似於values.group_by{|x| #range calc}
)可以在這裏工作?
問題:1)我想3應該是3..5。 2)爲什麼使用字符串而不是真正的範圍?3)你還需要空的範圍? – tokland 2012-07-31 14:16:10
應該沒有癡迷寫單行。爭取只涉及表達式的解決方案(就是這樣,使用功能性方法)是的,擔心任務可以節省幾條線,不。 – tokland 2012-07-31 14:30:07