假设有这样1组数据:
data = [10,11,23,14,45,23,4,5,20,34,29,42,52,7,57]
其最大值为57,而最小值为3,现在想将其分为5组,每组的取值范围为11。即数值在0-11为1组,数值在11-22为另外1组,以此类推。
现在希望得到类似如下的结果:
[10, 11, 4, 5, 7]
[23, 14, 23, 20]
[34, 29]
[45, 42]
[52, 57]
如何使用最少的for或while循环实现上述的结果。
假设有这样1组数据:
data = [10,11,23,14,45,23,4,5,20,34,29,42,52,7,57]
其最大值为57,而最小值为3,现在想将其分为5组,每组的取值范围为11。即数值在0-11为1组,数值在11-22为另外1组,以此类推。
现在希望得到类似如下的结果:
[10, 11, 4, 5, 7]
[23, 14, 23, 20]
[34, 29]
[45, 42]
[52, 57]
如何使用最少的for或while循环实现上述的结果。
#!/usr/bin/ruby
data.each.inject({}) { |h,n| (h[n/11] ||= []) && h[n/11] << n && h }.sort.to_h.each_value { |val| p val }
给出的需求分类标准有点问题, 所以根据需求可以自己改一下.
4 回答4.5k 阅读✓ 已解决
1 回答3.3k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.2k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
如果真像你说的0-11,11-22这样类推出去,你给出的结果是错误的