【发布时间】:2016-07-03 09:38:26
【问题描述】:
需要创建一个总和应该等于期望值的数组。
inp = [1,2,3,4,5,6,7,8,9,10]
sum = 200
输出:
out = [10,10,9,1,3,3,3,7,.....] whose sum should be 200
or
out = [10,7,3,....] Repeated values can be used
or
out = [2,3,4,9,2,....]
我试过了,
arr = [5,10,15,20,30]
ee = []
max = 200
while (ee.sum < max) do
ee << arr.sample(1).first
end
ee.pop(2)
val = max - ee.sum
pair = arr.uniq.combination(2).detect { |a, b| a + b == val }
ee << pair
ee.flatten
有什么有效的方法吗。
【问题讨论】:
-
这是个好问题。到目前为止,您尝试过什么?
-
@sagarpandya82,我已经添加了
-
@falsetru,这不是一个重复的问题。这里可以在输出中使用重复的值,这在任何问题中都不存在。从这个问题中删除重复的单词。
标签: ruby-on-rails ruby ruby-on-rails-4